Разруливание сложной ситуации с помощью усреднения.

cmillion

Гуру форума
cm_ru 161013

Причесал версию 111013, там действительно были некоторые ошибки и ордера могли закрыться с минусом. Так что у кого она стоит, поменяйте ее на предыдущую или установите эту.
Доработки
1) Добавил начальную просадку PercenStart при которой советник начинает работать
2) добавил шаг тралла ток ордера StepModify
3) добвил перевод лок ордера в безубыток NoLoss
4) для тестера добавил открытие ордеров каждый раз как только выставленные разрулились. Теперь можно найти сложный участок по истории и подобрать параметры именно для него.


PHP:
extern double  PercenStart = 0;     //советник работает только в случае если просадка по счету выше заданной 0- откл
extern int     TF          = 15;    //таймфрейм свечей для определения движения цены
extern int     step        = 25;    //расстояние между усредняющими ордерами (не менее)
extern double  k_lot       = 1.5;   //умножение лота усредняющих ордеров
extern double  lot_close   = 0.01;  //лот, который закрываем у убыточной позиции
extern int     MinProfit   = 2;     //минимальный профит в пунктах

extern bool    Lock        = false; //включение лока
extern double  LotPercent  = 25;    //выставляем лок лотом равным проценту от дисбаланса лотов двух направлений
extern double  PercentLoss = 10;    //выставляем лок при достижении просадки в процентах от депо
extern int     StepLock    = 25;    //расстояние от цены до локирующего стоп ордера (0-лок отключен)
extern int     StepModify  = 5;     //мин шаг перемещения лока
extern int     NoLoss      = 5;     //перевод лок ордера в безубыток (в пунктах)
 

Вложения

  • cm_ru 161013.zip
    15,7 КБ · Просмотры: 249

se59

Новичок форума
Добрый день, cmillion!

Извините, может задам глупый вопрос.
Можно ли закрывать убыточный ордер лотом lot_close = 0.01, к примеру, если минимальный лот открытия ордера у брокера равен 0,1. Если такое возможно, то при lot_close * k_lot < 0.1 усредняющий ордер не откроется. Тогда нужно будет вводить новый параметр- начальный лот усредняющих ордеров.
 

cmillion

Гуру форума
Добрый день, cmillion!

Извините, может задам глупый вопрос.
Можно ли закрывать убыточный ордер лотом lot_close = 0.01, к примеру, если минимальный лот открытия ордера у брокера равен 0,1. Если такое возможно, то при lot_close * k_lot < 0.1 усредняющий ордер не откроется. Тогда нужно будет вводить новый параметр- начальный лот усредняющих ордеров.

Вопрос вовсе не глупый, если у брокера шаг лота 0.01 а минимальный лот 0.1 то действительно такая проблема имет место. Это возможно решить в индивидуальным порядке так как сейчас просто большая загрузки. Да и усложнить советник параметрами не хочется
 

cmillion

Гуру форума
НОВАЯ ВЕРСИЯ cm ru 211113

В новой версии добавлена возможность включать выключать закрытие встречными ордерами.
Работает примерно так.
Имеем прибыльный buy лотом 2 и убыточный sell лотом 1 лот разруливателя стоит 0,01
Как только прибыль 0,02 лотов buy превысит убыток 0,01 лота sell, закрываем 0,02 лота buy и 0,01 лота sell.

Изменен принцип установки и отмены лок ордера. Для того чтобы на границе установки не частил с удалениями лока.

Так же добавлена возможность идентифицировать разруливающие ордера. ID
Для совместимости с прошлыми версиями ШВ должно быть = "cm-ru"

Описание переменных


PHP:
PercenStart = 0;     //советник работает только в случае если просадка по счету выше заданной 0- откл 
TF          = 5;    //таймфрейм свечей для определения движения цены 
step        = 20;    //расстояние между усредняющими ордерами (не менее) 
k_lot       = 1.5;   //умножение лота усредняющих ордеров 
lot_close   = 0.05;  //лот, который закрываем у убыточной позиции 
MinProfit   = 5;     //минимальный профит в пунктах 

включение.лока        = false; //включение лока 
LotPercent  = 50;    //выставляем лок лотом равным проценту от дисбаланса лотов двух направлений 
просадка.для.открытия.лока = 25;    //выставляем лок при достижении просадки в процентах от депо 
StepLock    = 25;    //расстояние от цены до локирующего стоп ордера (0-лок отключен) 
StepModify  = 5;     //мин шаг перемещения лока 
NoLoss      = 5;     //перевод лок ордера в безубыток 

ID = "cm-ru21";//идентификатор разруливающих ордеров 

Перекрывать.противоположные = false; //перекрывать убыток прибыльными ордерами
 

Вложения

  • cm ru 211113.rar
    15,8 КБ · Просмотры: 195

M0EStRO

Прохожий
День добрый. Как заставить cm_разруливатель_с_локом 23,07,2013 срабатывать при определенном проценте просадки?
 

cmillion

Гуру форума
День добрый. Как заставить cm_разруливатель_с_локом 23,07,2013 срабатывать при определенном проценте просадки?

Так вот же параметр
PercenStart - советник работает только в случае если просадка по счету выше заданной 0- откл
 

M0EStRO

Прохожий
PercenStart - советник работает только в случае если просадка по счету выше заданной 0- откл
В версии от 23,07,2013 такого параметра нет. А мне она как-то по душе пришлась :) Я понимаю, что на тестер стратегий совсем уж полагаться не стоит, но версия от 23,07,2013 ведет себя постабильнее.
 

cmillion

Гуру форума
В версии от 23,07,2013 такого параметра нет. А мне она как-то по душе пришлась :) Я понимаю, что на тестер стратегий совсем уж полагаться не стоит, но версия от 23,07,2013 ведет себя постабильнее.

Возможно внести такие фкнкции и в старые версии советника, но только в индивидуальном порядке. пишите в скайп или на почту.
 

averkiev

Интересующийся
Уважаемый cmillion, просьба доработать советник, чтобы он не открывал ордера, а закрывал полностью или частично самые удаленные от текущей цены ордера за счет использования накопленной прибыли.
прошу отписаться, насколько это реально
 

cmillion

Гуру форума
Уважаемый cmillion, просьба доработать советник, чтобы он не открывал ордера, а закрывал полностью или частично самые удаленные от текущей цены ордера за счет использования накопленной прибыли.
прошу отписаться, насколько это реально

Если не открывать новые ордера то откуда возьмется прибыль?
Приведите пример того о чем Вы пишите, возморжно проще будет сделать скрипт который закроет все прибыльные на тот момент ордера и откусит часть лота от самого дальнего.
 

averkiev

Интересующийся
Если не открывать новые ордера то откуда возьмется прибыль?
Приведите пример того о чем Вы пишите, возморжно проще будет сделать скрипт который закроет все прибыльные на тот момент ордера и откусит часть лота от самого дальнего.

Спасибо за быстрый ответ.
Это должен быть советник - помощник. Открывать ордера будет основной советник.
Допустим берем обычный мартин, который ушел в просадку. Помощник закрывает самые удаленные в минусе ордера за счет прибыли вновь открытых, без разницы в прибыли они по сел или бай.
 

cmillion

Гуру форума
Спасибо за быстрый ответ.
Это должен быть советник - помощник. Открывать ордера будет основной советник.
Допустим берем обычный мартин, который ушел в просадку. Помощник закрывает самые удаленные в минусе ордера за счет прибыли вновь открытых, без разницы в прибыли они по сел или бай.

Т.е. закрываем не частично а полностью весь удаленный ордер?
Пример, открыты 5 sell и 5 buy цена идет вверх и как только прибыль всех ордеров buy будет равна убытку самого нижнего sell то закрываем все 6 ордеров? Или брать в расчет не все 5 а только прибыльные?
И сразу паралельный вопрос, некоторые советники не любят когда в их работу вмешиваются руками или сторонними советниками. Вы уверены, что Ваш советник не будет вести себя неадекватно после такого закрытия?
 

averkiev

Интересующийся
Т.е. закрываем не частично а полностью весь удаленный ордер?
Думаю вполне устроит закрыть полностью весь удаленный ордер, хотя частичное закрытие тоже интересно было бы попробовать.

Пример, открыты 5 sell и 5 buy цена идет вверх и как только прибыль всех ордеров buy будет равна убытку самого нижнего sell то закрываем все 6 ордеров? Или брать в расчет не все 5 а только прибыльные?

Да, нужно брать в расчет не все 5, а только прибыльные.
Т.е. если 5 ордер перекрывает своей прибылью самый удаленный ордер в минусе, то он его закрывает.

И сразу паралельный вопрос, некоторые советники не любят когда в их работу вмешиваются руками или сторонними советниками. Вы уверены, что Ваш советник не будет вести себя неадекватно после такого закрытия?
Протестировал основной советник, закрывал сам ордера. Реагирует как надо, адекватно.
 

cmillion

Гуру форума
закрываем дальние за счет прибыли остальных

Советник закрывает дальний ордер и все прибыльные ордера если его убыток перекрывается прибыльными ордерами плюс CloseProfit в валюте депозита.

Параметры

PHP:
extern int    CloseProfit  = 0;     //закрывать по суммарному профиту
extern int    Magic        = 0;     //-1 все ордера
 

Вложения

  • закрываем дальние за счет прибыли остальных.mq4
    7,8 КБ · Просмотры: 197

averkiev

Интересующийся
Советник закрывает дальний ордер и все прибыльные ордера если его убыток перекрывается прибыльными ордерами плюс CloseProfit в валюте депозита.

Параметры

PHP:
extern int    CloseProfit  = 0;     //закрывать по суммарному профиту
extern int    Magic        = 0;     //-1 все ордера

Не ожидал такой скорости!! сразу чувствуется мастер
Огромное спасибо!
буду пробовать
 

averkiev

Интересующийся
Я только не успел проверить, так что ставьте сначала на демо. Если что то не так, то пишите поправим.

уже немного протестил, закрывает хорошо.
Если можно, прошу внести поправку в код:
extern int Magic = 0; //-1 все ордера
в данной версии, советник закрывает прибыльным ордером по магику.
Возможно ли закрытие по магику только убыточных ордеров любой прибылью.
Т.е. если стоит магик, то любой прибыльный ордер будет закрывать только дальние убыточные ордера с установленным магическим номером.

Либо 2й, более предпочтительный, вариант: добавить параметр "ID = "cm-ru21";//идентификатор разруливающих ордеров", как в советнике "cm ru 211113.ex4".

Заранее спасибо.
 

cmillion

Гуру форума
уже немного протестил, закрывает хорошо.
Если можно, прошу внести поправку в код:
extern int Magic = 0; //-1 все ордера
в данной версии, советник закрывает прибыльным ордером по магику.
Возможно ли закрытие по магику только убыточных ордеров любой прибылью.
Т.е. если стоит магик, то любой прибыльный ордер будет закрывать только дальние убыточные ордера с установленным магическим номером.

Либо 2й, более предпочтительный, вариант: добавить параметр "ID = "cm-ru21";//идентификатор разруливающих ордеров", как в советнике "cm ru 211113.ex4".

Заранее спасибо.

А Ваш советник способен ставить ордера с такими комментариями к ордерам? Иначе просто невозможно будет работа данного советника
 

averkiev

Интересующийся
А Ваш советник способен ставить ордера с такими комментариями к ордерам? Иначе просто невозможно будет работа данного советника

прошу прощения, попался под руку другой советник, поэтому полностью переписываю прошлое сообщение в правильной редакции:


"Если можно, прошу внести поправку в код:
extern int Magic = 0; //-1 все ордера
в данной версии, советник закрывает прибыльным ордером по магику.
Возможно ли закрытие по магику только убыточных ордеров любой прибылью.
Т.е. если стоит магик, то любой прибыльный ордер будет закрывать только дальние убыточные ордера с установленным магическим номером.

Либо 2й, более предпочтительный, вариант: добавить параметр:
"extern int Тикет_ордера_для_закрытия = 0; //если 0 то советник сам выбирает самый дальний ордер", как в советнике "cm_разрул_MO 27,04,13".

или как в одной из редакций:
"string versiy = "cm-разруливание усреднением";
extern bool AllTicket = true; //true все ордера, если false то только выбранные по Ticket
extern double PercentLot = 100; //процент, который закрываем у убыточной позиции
extern int Ticket1 = 123456789;
extern int Ticket2 = 213;
extern int Ticket3 = 0;
extern int Ticket4 = 0;"

"
прошу прощения
Заранее спасибо.
 

cmillion

Гуру форума
C Рождеством Христовым!!!
Желаю любви и счастья !!!
Всего самого наилучшего!!!
 
Верх