Стратегия:

Выставляется сетка лимитных ордеров на заданном расстоянии (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;   //distance between orders opened within a grid of orders
extern double Lots           = 0.0;   //if=0, then lot size will be calculated as a percentage of free margin set in “RiskPercent %” parameter
extern double RiskPercent   = 0.01; //Lots = AccountBalance() * (RiskPercent / 100.0) / 10000.0
extern double K_Lot         = 1.5;   //lot multiplier
extern double Max_Lot       = 50;   //limits a lot size
extern int     DigitsLot     = 2;     //number of decimal places in the lot size (2 - 0,01) (1 - 0,1)
extern int     OrdersNoTP     = 5;     //if this number of orders is exceeded, the Expert Advisor is disallowed to set a take-profit for profitable one-direction orders
extern double ProfitClose   = 50;   //profit in deposit currency, by which all orders will be closed
extern int     Takeprofit     = 35;
extern bool   деление_профита = true;   //take-profit will be divided in a number of open orders
extern bool   VirtualTS     = false; //enables a virtual or a real trailing stop
extern int     TrailingStop   = 0;     //if 0, then stop-losses will not be trailed
extern int     OrdersTek     = 3;     //number of open pending orders; it is used to reduce a load on a dealing center

В обновленной версии 13(14) добавлена торговля стоп ордерами совместно с лимитными.

Cm-Limit-9
Cm-Limit-9
cm-Limit-9.rar
48.7 KiB
2883 Downloads
Детали
Cm-Limit-14
Cm-Limit-14
cm-Limit-14.ex4
49.2 KiB
216 Downloads
Детали