Цену Тейка знаете, вычислите ?
//+------------------------------------------------------------------+ void SetSLTP(string sy,int type,double sl,double tp,string kom,int mn) { double po; int i,k=OrdersTotal(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { po=MarketInfo(OrderSymbol(),MODE_POINT); if(OrderSymbol()==sy || sy=="") { if(mn<0 || OrderMagicNumber()==mn) { if(kom=="" || StringFind(OrderComment(),kom,0)>-1) { if(OrderType()==type || type==-1) { if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT) { if(sl>0) { if(sl>Bid-(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po) sl=Bid-(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po; } if(tp>0) { if(tp<Ask+(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po) tp=Ask+(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po; } ModifyOrder(-1,sl,tp); } if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT) { if(sl>0) { if(sl<Ask+(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po) sl=Ask+(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po; } if(tp>0) { if(tp>Bid-(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po) tp=Bid-(MarketInfo(OrderSymbol(),MODE_STOPLEVEL)+1)*po; } ModifyOrder(-1,sl,tp); } } } } } } } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void ModifyOrder(double pp=-1,double sl1=0,double tp1=0) { bool fm; double op,os,ot; int dg=(int)MarketInfo(OrderSymbol(),MODE_DIGITS); if(pp<=0) pp=OrderOpenPrice(); if(sl1<0) sl1=OrderStopLoss(); if(tp1<0) tp1=OrderTakeProfit(); pp=NormalizeDouble(pp,dg); sl1=NormalizeDouble(sl1, dg); tp1=NormalizeDouble(tp1, dg); op=NormalizeDouble(OrderOpenPrice(), dg); os=NormalizeDouble(OrderStopLoss(), dg); ot=NormalizeDouble(OrderTakeProfit(), dg); fm=false; if(pp!=op || sl1!=os || tp1!=ot) { fm=OrderModify(OrderTicket(),pp,sl1,tp1,0,clrNONE); RefreshRates(); } } //End
Передаете цену Тейка и Стопа, функция модифицирует всю сетку, только передавать именно цену, а не расстояние.
Пытаюсь написать часть кода, смысл в том что бы открывается одна сделка на покупку с определенным Takeprofit и один отложенный ордер на покупку ниже первой сделки, как только сделка на покупку идет в низ(в минус) открывается отложенный ордер, я бы хотел сделать так что при открытии отложенного ордера, менялся Takeprofit у первой сделки, но почему то у меня это не получается, вот пример кода
Вставляйте код правильно -
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
...
Sergey Golubev, 2020.03.23 16:08
Вставляйте правильно код -
----------------
MQL5.community - Памятка пользователя
Кнопка
предназначена для вставки исходного кода в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования

Пытаюсь написать часть кода, смысл в том что бы открывается одна сделка на покупку с определенным Takeprofit и один отложенный ордер на покупку ниже первой сделки, как только сделка на покупку идет в низ(в минус) открывается отложенный ордер, я бы хотел сделать так что при открытии отложенного ордера, менялся Takeprofit у первой сделки, но почему то у меня это не получается, вот пример кода