Прошу написать советник для MT4.
В настройках предусмотреть ТП, СЛ, реквот и магик.
Вход по паттерну
Сужающийся треугольник из 3-х свечей, выставляя отложенные стоповые ордера.
Текущая свеча 0, если
if(High[3]>High[2] && High[2]>High[1] && Low[3]<Low[2] && Low[2]<Low[1])
тогда мы ставим две отлоги по ценам:
{
double _bp = High[2];
double _sp = Low[2];
double _lot=CheckLot(Lot); if(_lot==-1) return;
putOrderBuy_stepPoint(_bp, _lot, StopLoss, 0, nameEA);
putOrderSell_stepPoint(_sp, _lot, StopLoss, 0, nameEA);
}
Также для входа прикрутить трендовый индикатор Average Directional Movement Index (ADX), торговля на пересечении +DI и –DI по Элдеру.
Предусмотреть возможность включения/отключения сверки с индикатором (true/false).
Когда подразумевается открытие ордера на бай, то происходит сверка с индикатором, а именно:
Если +DI и ADX выше, чем –DI, и ADX при этом идёт в рост, то отложенный ордер переходит в рыночное исполнение, другая отлога удаляется. Нет — рыночный ордер не открывается, оба отложенных ордера удаляются.
Когда подразумевается открытие ордера на селл, то происходит сверка с индикатором, а именно:
Если -DI и ADX выше, чем +DI, и ADX при этом идёт возрастает, то отложенный ордер переходит в рыночное исполнение, другая отлога удаляется. Нет — рыночный ордер не открывается, оба отложенных ордера удаляются.
В случае, если цена пошла в направлении ТП, используется безубыток и трал.
В настройках для трала: длинна трала (если 0, то нет трала), когда включать трал (например после достижения 40 п прибыли), шаг трала.
В настройках для безубытка: перевод в безубыток при заданном количестве пунктов прибыли (если 0, то нет перевода в безубыток) и минимальная прибыль при переводе в безубыток.
В случае, если ордер открылся, а цена после этого развернулась, не дойдя до безубытка, то используется мартин-сеточник.
В настройках шаг сетки, коэффициент увеличения последующих ордеров и выбор округления (сотые или десятые после запятой).
Перенос ордеров примерно так, без учёта свопов:
count+=OrderLots();
all+=OrderOpenPrice()*OrderLots();
all=NormalizeDouble(all/count,Digits);
tp=NormalizeDouble(all+TakeProfit*Point,Digits);
Комментарии (6)
35 AM2 Сообщений: 16278 - Андрей
19 Kashtan Сообщений: 739 - Игорь
эти моменты поясняйте на скринах:
35 AM2 Сообщений: 16278 - Андрей
Можно немного упростить задачу. Чуть-чуть переформулируем.
В случае, когда цена зацепила отложенный ордер селлстоп, происходит сверка с индикатором:
Если -DI выше, чем +DI, а ADX при этом выше обоих DI (как на выделенном моменте на скрине), то отложенный ордер переходит в рыночное исполнение, другая отлога удаляется. Нет — отложенный ордер не переходит в рыночное исполнение, оба отложенных ордера удаляются.
Аналогично и с отлогой байстоп:
Если +DI выше, чем -DI, а ADX при этом выше обоих DI, то отложенный ордер переходит в рыночное исполнение, другая отлога удаляется. Нет — отложенный ордер не переходит в рыночное исполнение, оба отложенных ордера удаляются.
24 ShamanHand Автор Сообщений: 1092 - Наношу добро, причиняю пользу.
35 AM2 Сообщений: 16278 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий