Нужен совет - страница 2

 
azfaraon:

Вопрос между какими строчками вписать.

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

А в тот код, что выложен.... наверно никуда.

 
void ManageBuylimit(string symb,double lt,double TP,double SL,int slp,int spd,int magic,string com)
   { double bid =MarketInfo(symb,MODE_BID);
    double point =MarketInfo(symb,MODE_POINT);
    double sprd  =MarketInfo(symb,MODE_SPREAD);
    double Price =OrderStopLoss()-sprd*Point;
    if( sprd <= spd )
    {
     total = OrdersTotal();
     int j, orders;
     for(j=0;j<total;j++)
     {
      OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
      if(OrderMagicNumber() == magic) orders++; //---- an order is opened with
     }                                          //---- same symbol, same magic number
   
     if ( orders >0 )    //---- we can go trading
     {
      if (TP==0) { tp=0; }
      else { tp=Price-TP*point; }
      if (SL==0) { sl=0; }
      else { sl=Price+SL*point; }
      //Print("ticket=OrderSend(",symb,",",OP_SELL,",",lt,",",bid,",",slp,",",sl,",",tp,",",com,",",magic,",",0,",",Red);
       lotlib_OpenPriceLevel = Bid; // вместо Ask - реальное значение уровня открытия позиции 
       lotlib_StopLossLevel = sl; // вместо Ask-StopLoss*Point - реальное значение уровня СтопЛосса позиции
    
            

       ticket=OrderSend(symb,OP_SELLLIMIT,Lot(),Price,slp,sl,tp,com,magic,0,Red);
       
      if( ticket > 0 )
      {
       if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        if( isCloseLastPosByTake() ) {
       for(int i=0;i<OrdersTotal();i++) {
      if((OrderType() >= OP_BUYLIMIT ) && (OrderType() <= OP_SELLLIMIT)) {
         OrderDelete(OrderTicket());

       }
       }
       
        Print("SELL order opened : ",OrderOpenPrice());
       }
      }
      else
      {
       Print("Error opening SELL order : ",GetLastError()); 
      }
     }    //---- if ( orders < 1 )
    }    //---- if( sprd <= spd )
   }     //---- vo
Написал посмотрим будет ли работать .? Проверил не работает . Ошибок не выдал .