Техническое задание
Нужна конвертация простенького советника mql4 в mql5
#include <stdlib.mqh> extern int Magic = 1; extern double Lots = 0.1; extern bool Tral = true; extern int TrailingStopLoss = 30; extern double Utral = 150; extern bool Sound = true; int slippage = 3; static int prevtime = 0; double FirstPositionPrice; int order_MgcNum=0, err=0, ticket=0, res; bool result = True; double MyPoint; int init() { if (Digits == 5 || Digits == 3) { TrailingStopLoss=TrailingStopLoss*10; } return(0); } int start() { if (Tral) TrailingPositions(TrailingStopLoss, 1, Magic); int total,cnt,pos,order; string order_comment = Symbol()+", Period "+Period()+", ADX "+Magic; //if (Volume[0]>5) return(0); double i1 = iADX(Symbol(),0,13,0,MODE_PLUSDI,0); double i2 = iADX(Symbol(),0,13,0,MODE_MINUSDI,0); if (i1<i2) { if(CheckExists(OP_SELL)) { total=OrdersTotal(); pos=0; for (cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS); if ((OrderSymbol() == Symbol())&&(OrderMagicNumber()==Magic)) { order=OrderTicket(); pos=1; if (IsTradeAllowed() && (OrderType() == OP_BUY)) { RefreshRates();// Новые Аск и Бид result = OrderClose(order,Lots,Bid,3); if (result)OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,order_comment,Magic,0,Red); if (!result) { err=GetLastError(); } return(0); } } } if ((pos==0) && IsTradeAllowed()) { RefreshRates();// открытие с рынка res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,order_comment,Magic,0,Red); if (res<0) {Alert("Ошибка открытия ордера SELL #", GetLastError()); return (0);} return(0); } } } if (i1>i2) { if(CheckExists(OP_BUY)) { total=OrdersTotal(); pos=0; for (cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS ); if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == Magic)) { order=OrderTicket(); pos=1; if (IsTradeAllowed()&& (OrderType() == OP_SELL)) { RefreshRates();// Новые Аск и Бид result = OrderClose(order,Lots,Ask,3); if(result)OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,order_comment,Magic,0,Lime); if(!result){ err=GetLastError(); } return(0); } } } if ((pos==0) && IsTradeAllowed()) { RefreshRates();// открытие с рынка res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,order_comment,Magic,0,Lime); if (res<0) {Alert("Ошибка открытия ордера BUY #", GetLastError()); return (0);} return(0); } } } return(0); } //---------------------------------------------------------------------------------+ void TrailingPositions(int trailingStopLoss, int trailingStep, int MagicNumber) { double bid = 0; double ask = 0; double X=1; for (int i = 0; i < OrdersTotal(); i++) { if (!(OrderSelect(i, SELECT_BY_POS)) || OrderSymbol() != Symbol() ) { continue; } bid = MarketInfo(OrderSymbol(), MODE_BID); ask = MarketInfo(OrderSymbol(), MODE_ASK); if (OrderType() == OP_BUY&&Bid-OrderOpenPrice()<Utral*Point&&OrderMagicNumber() == MagicNumber) { if (bid - OrderOpenPrice() > X*trailingStopLoss * Point) { if (OrderStopLoss() < bid - (X*trailingStopLoss + trailingStep - 1) * Point || OrderStopLoss() == 0) { OrderModify(OrderTicket(), OrderOpenPrice(), bid - X*trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration(),Aqua); if(Sound == true)PlaySound("ok.wav"); } } } else if (OrderType() == OP_SELL&&OrderOpenPrice()-Ask<Utral*Point&&OrderMagicNumber() == MagicNumber) { if (OrderOpenPrice() - ask > X*trailingStopLoss * Point) { if (OrderStopLoss() > ask + (X*trailingStopLoss + trailingStep - 1) * Point || OrderStopLoss() == 0) { OrderModify(OrderTicket(), OrderOpenPrice(), ask + X*trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration(),Aqua); if(Sound == true)PlaySound("ok.wav"); } } } } } bool CheckExists(int Type) { bool Result = True; for(int i = 0; i < OrdersTotal(); i++) if(OrderSelect(i, SELECT_BY_POS)) if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()) if(OrderOpenTime() >= Time[0]) Result = False; for(i = 0; i < OrdersHistoryTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) if(OrderType() == Type && OrderOpenTime() >= Time[0] && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()) Result = False; } return(Result); }
Откликнулись
1
Оценка
Проекты
327
55%
Арбитраж
17
12%
/
47%
Просрочено
104
32%
Свободен
2
Оценка
Проекты
367
56%
Арбитраж
45
22%
/
56%
Просрочено
188
51%
Свободен
Опубликовал: 1 статью, 6 примеров
3
Оценка
Проекты
8
13%
Арбитраж
1
0%
/
0%
Просрочено
0
Свободен
Опубликовал: 2 примера
Похожие заказы
Нужен программист для написания советника.
100 - 300 USD
Принцип торговли. Торговля происходит от уровней в автоматическом режиме, без участия человека при открытии и закрытии сделок. Первую сделку он открывает при получении сигнала с применением VSA анализа. Сигнал по объемам поступает с биржи СМЕ. Если первая торговая позиция закрывается в плюс, то робот открывает новую сделку. Если котировки пошли в обратную от открытой позиции сторону, то робот включает свой алгоритм
Итак. Есть первый советник, хочу сделать дополнение к нему, но таким образом чтобы это был отдельный советник(ов). Делаю в целях защиты интеллектуальной собственности)) Чтобы был как пазл, один без другого(их) не работал. Вопросы. 1. Это возможно? 2. Что нужно для этого? 3. Какие подводные камни такого подхода? Краткое описание для советника или советников который будет дополнять. 1. Есть индекс, мне нужно чтобы
1. Загальна логіка Треба створити ЕА для MetaTrader 5 на основі індикатора Zig Zag (параметри індикатора стандартні: Depth, Deviation, Backstep) та рівнів Фібоначчі. Детально логіка входу описана в додатку до ТЗ. 2. Відкриття сету ордерів ЕА відкриває сет відкладених ордерів (кількість ордерів від 1 до 5) Для кожного ордеру задається - рівень входу (значення рівня Фібоначчі) - рівень SL
Советник
200+ USD
Советник по мартингейлу на хеджевых счетах на МТ5 Торгуем рыночными ордерами. Торговая панель средней сложности. Более конкретное ТЗ вышлю всем заинтересовавшимся. Оплата и сроки обсуждаемы. Нужен советник по индикатору Во вложении ТЗ. все значения переменные
Информация о проекте
Бюджет
10- USD
Сроки выполнения
до 5 дн.