Стратегия:

Выставляется сетка лимитных ордеров на заданном расстоянии (Step) друг от друга. Выше цены ставятся ордера SellLimit, ниже BuyLimit. Лот первого от цены ордера  может быть указан параметром (Lots) или задан как процент (RiskPercent) от свободных средств. Ордера которые выставляем далее имеют размер лота умноженный на коэффициент (K_Lot). Максимальный размер лота ограничивается параметром (Max_Lot) . Суть стратегии в том, что цена не может двигаться вечно в одном направлении не откатываясь назад и в том случае, если мы не угадали с направлением входа в рынок, то оно будет усреднено и на ближайшем откате закроестя в плюсе.

Рассмотрим пример торговли.

eurusdh11

На первом скрине советник выставил ордера в обе стороны от текущей цены. Обратите внимание, что при этом советник сразу открыл два встречных ордера Buy и Sell.
eurusdh12Цена прошла вниз и позиция Sell закрылась по тейкпрофиту. При этом открылись несколько Buy позиций. Так как лот Buy ордеров наращивается по ходу движения цены сверху вниз, точка суммарного безубытко серии Buy каждый раз приближается к цене и на небольшом откате цены вверх мы получаем прибыль при закрытии всей Buy серии.

eurusdh13

Далее цена снова проходит достаточно большое расстояние вниз, при этом в профите закрываются несколько последовательных Sell позиций и далее, на очередном откате цены вверх, серия Buy снова закрывается в профите.

После каждого закрытия серии по общему профиту,  соответствующие данному направлению лимитные ордера удаляются и сетка закрытого направления выставляется вновь.

Самым страшным для данного советника может являться длительный безоткатный тренд, который случается при глобальных экономических проблемах. Страховкой от такого безотката является параметр (OrdersNoTP). Он задает кол-во открытых позиций при котором противоположное направление перестает закрываться по профиту и поддерживает просадочное направление. Т.е. если у нас стоит 10 (OrdersNoTP=10) Buy позиций то позиции sell позиции не будут закрываться по профиту.

Тейкпрофит (Takeprofit) выставляется от точки суммарного безубытка направления и его размер может быть изменен советником в соответствии с кол-вом ордеров. Т.е. если стоит (деление_профита = true и Takeprofit=10) то тейкпрофит первого ордера будет 10 п тейкпрофит 2х ордеров будет уже 5 п от точки общего безубытка. Таким образом, чем больше открыто позиций в данном направлении, тем ближе советник подтягивает профит данного направления к текущей цене. Но при этом закрытие всего направления всегда происходит только в плюс!

В советнике есть возможность установить время автоторговли, например (TimeStart= 10,TimeEnd = 22,FridayHourClose = 16). Это значит, что советник будет выставлять новые серии только с 10 утра по 22 вечера все дни кроме пятницы, а в пятницу советник работает только до 16-00)

Видео обзор советника:

Результаты тестирования:

Limit_9_10000_01-02-2013 по 29-10-2013

Limit_9_10000_01-01-2014 по 01-08-2014

Отчет с реального счета:
180314

Советник условно бесплатный. Вы можете использовать его в тестере и на демо счетах без всяких ограничений. Для работы на реальном счете нужен ключ. Подробнее….

На форуме МТ5 по данному советнику есть тема, в которой вы сможете найти  более подробное описание его работы, обсуждение и все сделанные доработки.

Настройки:

extern int     Step           = 20;    //расстояние между открываемыми ордерами в сетке ордеров  
extern double  Lots           = 0.0;   //если=0 то лот будет расчитан как процент от свободных средств по RiskPercent %  
extern double  RiskPercent    = 0.01;  //Lots = AccountBalance() * (RiskPercent / 100.0) / 10000.0 
extern double  K_Lot          = 1.5;   //умножение лота  
extern double  Max_Lot        = 50;    //ограничение размера лота 
extern int     DigitsLot      = 2;     //кол-во знаков после запятой в размере лота (2 - 0,01) (1 - 0,1) 
extern int     OrdersNoTP     = 5;     //кол-во ордеров, после которого запрещаем выставлять тейкпрофит прибыльному паправлению 
extern double  ProfitClose    = 50;    //прибыль в валюте депозита, при которой закрываем все ордера. 
 
extern int     Takeprofit     = 35; 
extern bool    деление_профита = true;   //ТР делится на кол-во колен 
 
extern bool    VirtualTS      = false; //выставлять виртуальный или реальный тралл  
extern int     TrailingStop   = 0;     //если 0 то нет тралла стоплоссов  
 
extern int     OrdersTek      = 3;      //текущее цисло отложек, применяется для снижения нагрузки на ДЦ 
 
extern string   _____________  = "Filter Time"; 
extern int     TimeStart       = 0 ,    //ограничение времени работы советника 
               TimeEnd         = 24,    //не открываем ордера и закрываем отложки если время не между TimeStart и TimeEnd 
               FridayHourClose = 16;    //час закрытия ордеров в пятницу

 

 

Cm-Limit-9
Cm-Limit-9
cm-Limit-9.rar
0.0 B
1644 Downloads
Детали