[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 297

 
paladin80:
Я был бы склонен думать, что ошибка кроется в самом коде. Необходимо хирургическое вмешательство в сам скрипт.
Вот сам скрипт...
Файлы:
 
Rustbunch:
Вот сам скрипт...
Пользуюсь MT4
 
Rustbunch:
Вот сам скрипт...
Я бы сказал, что трудно оперировать пациента в космическом скафандре. Вы тут выложили скомпилированный файл, а не открытый код (*.mq4). Чё-то я чувствую, что вы взяли где-то готовый скрипт (проверили ли вы его в натуральном виде на работоспособность?), поменяли что-то в коде и он перестал делать то что вам надо. Если оригинальный код нормально себя вёл, ну тогда сами смотрите где и что меняли и проверяйте работоспособность после каждого изменения.
 
как отдельно модифицировать ордера Buy и ордера Sell?
 
paladin80:
Я был бы склонен думать, что ошибка кроется в самом коде. Необходимо хирургическое вмешательство в сам скрипт.

Может смена прокладки поможет
 
GarKain:
как отдельно модифицировать ордера Buy и ордера Sell?
OrderSelect(2563,SELECT_BY_TICKET);
if (OrderType()==OP_BUY && Open[0]>Low[steploss] && OrderStopLoss()<trailstopbuy){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopbuy,OrderTakeProfit(),0,Blue);
return(0);
}
if (OrderType()==OP_SELL && Open[0]<High[steploss] && OrderStopLoss()>trailstopsell){
OrderModify(OrderTicket(),OrderOpenPrice(),trailstopsell,OrderTakeProfit(),0,Blue);
return(0);
}

так что ли?
 
GarKain:
как отдельно модифицировать ордера Buy и ордера Sell?

if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if (OrderType()==OP_BUY) // или OP_SELL
         OrderModify(OrderTicket(), ...);
}  }  }
 
почему не работает закрытие ордера?


if (OrdersTotal()>0){
for(int g=OrdersTotal()-1; g>=0; g--){
OrderSelect(g,SELECT_BY_POS);
if (OrderMagicNumber()==2563 && OrderType()==OP_BUY){
if (Open[0]<=Low[steploss]){
OrderClose(g,1,Bid,3,Red);
return(0);
}
if (GradusEDBuy==true){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
if (OrderMagicNumber()==2563 && OrderType()==OP_SELL){
if (Open[0]>=High[steploss]){
OrderClose(g,1,Ask,3,Red);
return(0);
}
if (GradusEDSell==true){
OrderClose(g,1,Bid,3,Red);
return(0);
}
}
}
 
Скажите, пожалуйста, как бороться с зацикливанием советника и потерей им работоспобности при этом? Пока пользуюсь перезапуском, что очень неудобно. Заранее благодарю.
 
yosuf:
Скажите, пожалуйста, как бороться с зацикливанием советника и потерей им работоспобности при этом?
Убрать зацикливание и настучать по рукам кодеру :)
Причина обращения: