помогите в написании советника

 

помогите написать совентика, который бы мог удалять отложенные ордера (buy stop, sell stop) в том случае, если график цены пересечет выставленный в ордере уровень стоп-лосса в том случае. когда они еще не сработали - то есть тренд пошел не в ту сторону, в которую предполагалось и чтобы он не сработал необходимо его удалить,

заранее благодарю

 
for(i = 0; i < OrdersTotal(); i++)
 if(OrderSelect(i, SELECT_BY_POS))
  if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() > 1)
     if((OrderType() == OP_BUYSTOP && Bid < OrderStopLoss()) ||
        (OrderType() == OP_SELLSTOP) && Ask > OrderStopLoss())
       OrderDelete(OrderTicket());
Насколько я понял, это касается только стоповых ордеров. Для лимитников пересечение стопа вроде не совсем нужно.
 
Scriptong писал (а) >>
Насколько я понял, это касается только стоповых ордеров. Для лимитников пересечение стопа вроде не совсем нужно.

Подскажите, пожалуйста, как сделать в этом советнике выставлять отложенный ордер с заданным уровнем. Например, цена 151.20, сработал советник, а он

должен выставить 151.0 на покупку.Заранее спасибо, новичок.

Файлы:
 

да, спасибо за код советника, это касается только стоп ордеров, не могли бы вы сделать чтобы был прикрепленный файл а не код??? чтобы можно было бы просто сделать компелляцию и работать?

 
varvarian писал (а) >>
Файлы:
 
varvarian писал (а) >>

т.е. что-то надо изменить в этом блоке

// check for long position (BUY) possibility
if(MacdCurrent<0 && MacdCurrent>SignalCurrent &&
MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>
(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+
TakeProfit*Point,"macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
}
else
Print("Error opening BUY order : ",GetLastError());
return(0);
}
// check for short position (SELL) possibility
if(MacdCurrent>0 && MacdCurrent<SignalCurrent &&
MacdPrevious>SignalPrevious &&
MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,
"macd sample",16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice());

правильно я думаю? или еще где-то?

 
anatolyp писал (а) >>

а советник по отложенникам,...? можете выложить?

 
varvarian писал (а) >>

а советник по отложенникам,...? можете выложить?

Файлы:
 
anatolyp писал (а) >>

я его ставил - там по-моему что то другое....

нужен совентик, который бы мог удалять отложенные ордера (buy stop, sell stop) в том случае, если график цены пересечет выставленный в ордере уровень стоп-лосса, когда они еще не сработали - то есть тренд пошел не в ту сторону, в которую предполагалось и чтобы он не сработал необходимо его удалить

Причина обращения: