Плавающий стоп-левел - страница 3

 

Решил проблему вот таким образом:

   if(LotSize()<MarketInfo(Symbol(),MODE_MINLOT))
     {Print("Trade stop invalid lot size");Comment("Trade stop invalid lot size"); return;}
  
   ticket1=OrderSend(Symbol(),OP_BUY,LotSize(),Ask,Slippage,0,0,CommB,Magic,0,Blue);
   if(ticket1>0)
   {
      PlaySound("WooHoo!.wav");
      if(OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES))
      {
         if(!lock)
         {
            SL=NormalizeDouble(OrderOpenPrice()-(Bollinger(1)-OrderOpenPrice()),Digits());
            if(!OrderModify(ticket1,Ask,SL,0,0,clrNONE))
            {
               Print("Buy order modify error! Too Close!");
               for(int s=0;s<50;s++)
               {
                  SL=NormalizeDouble(OrderOpenPrice()-(Bollinger(1)-OrderOpenPrice())-NormalizeDouble(s*Point(),Digits()),Digits());
                  if(OrderModify(ticket1,Ask,SL,0,0,clrNONE))break;
               }
            }
         }
         else
         {
            P=NormalizeDouble(OrderOpenPrice()-(Bollinger(1)-OrderOpenPrice()),Digits());
            L=OrderSend(Symbol(),OP_SELLSTOP,OrderLots()*2,P,Slippage,0,0,"Lock Sell",Magic,0,clrBeige);
            if(L<=0)
            {
               Print("Lock Order Sell Error ",GetLastError()," Too Close!");
               for(int s=0;s<50;s++)
               {
                  P=NormalizeDouble(OrderOpenPrice()-(Bollinger(1)-OrderOpenPrice())-NormalizeDouble(s*Point(),Digits()),Digits());
                  L=OrderSend(Symbol(),OP_SELLSTOP,OrderLots()*2,P,Slippage,0,0,"Lock Sell",Magic,0,clrBeige);
                  if(L<=0)Print("Lock Order Sell Error ",GetLastError()," Too Close! Price = ",P);
                  if(L>0)break;
               }
            }
         }
      }
   }
   else
   {
      Print("Order Buy Error ",GetLastError());
   }
}

может кому пригодится...

 
Maksim Neimerik:

Это интересная идея, но мне она не подходит так как речь идет о байстоп или селлстоп ордерах и суть в том что они должны выставляться на расстоянии равному расстоянию между верхней и нижней линий канала Боллинжера, но бывают случаи кагда эти линии слишком близко друг к другу... 

Так то-же самое, виртуальный стоп ордер. Когда цена подошла ставиться рыночная позиция. Массив/ы структуры вполне может помочь.

 
Vladislav Andruschenko:

Серьезно. 
Вижу сообщение , вижу лайк.... подсознательно принимаю сообщение с лайком. 

Соцсети завладели разумом?