Помогите разобраться с кодом скрипта

 
extern int    DistSL     = 35;   // StopLoss в пунктах
extern int    DistTP     = 35;   // TakeProfit в пунктах
extern int    Slippage   = 7;    // Проскальзывание
extern bool   StopLoss   = false; // Ставить или нет
extern bool   TakeProfit = false; // Ставить или нет
extern int    magic    = 777 ; 
void start() 
  {
   string Symbols = "EURUSD,GBPUSD,AUDUSD,USDJPY,USDCAD,USDCHF,NZDUSD"; 
   int    Total, i, Pos, Error, MinLotDgts;
   int    Result;
   double MinLot = MarketInfo(Symbols, MODE_MINLOT);   
   double SL = 0, TP = 0, Stake, BuyLots = 0, SellLots = 0;   
   Total = OrdersTotal();
   if(Total > 0) // Если есть ордера
     {
       for(i = Total - 1; i >= 0; i--) 
         {
           if(OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES) == true)  
             {
               Pos = OrderType();                    // 
               Stake = OrderLots();                  //
               if((OrderSymbol() == Symbols) &&
                  (Pos == OP_BUY || Pos == OP_SELL)) // 
                 {                                   // 
                   if(Pos == OP_BUY) 
                       BuyLots = BuyLots + Stake;    //
                   else 
                       SellLots = SellLots + Stake;  //
                 }
             }
         }
       if(MinLot < 0.1) 
           MinLotDgts = 2;
       else
           if(MinLot < 1.0) 
               MinLotDgts = 1;
           else 
               MinLotDgts = 0;
       Stake = NormalizeDouble(BuyLots - SellLots, MinLotDgts);
       if(Stake != 0) // Если есть что ЛоКировать
         {
           if(Stake > 0) // ЛоКируем продажей
             {
               RefreshRates();
               if(StopLoss == true) 
                   SL = NormalizeDouble(Ask + DistSL*Point, Digits);
               if(TakeProfit == true) 
                   TP = NormalizeDouble(Bid - 2*DistTP*Point, Digits);
               Result = OrderSend(OrderSymbol(), OP_SELL, Stake, Bid, Slippage, SL, TP, "Lock",magic);
             }
           else // ЛоКируем покупкой
             {
               RefreshRates();
               Stake = -Stake;
               if(StopLoss == true) 
                   SL = NormalizeDouble(Bid - DistSL*Point, Digits);
               if(TakeProfit == true) 
                   TP = NormalizeDouble(Ask + 2*DistTP*Point, Digits);
               Result = OrderSend(OrderSymbol(), OP_BUY, Stake, Ask , Slippage, SL, TP, "Lock",magic);
             }
           if(Result <= 0) 
             { 
               Error = GetLastError(); 
               Alert("_Open_LOCK: LastError = ", Error); 
             }
           else 
               Error = 0;
         }
       else 
           Alert("_Open_LOCK: BuyLots = SellLots");
     }
   
  }
Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
NormalizeDouble - Преобразование данных - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Здравствуйте.Подскажите что не так в коде.Скрипт должен локировать и сумировать общий обьем сделок,по каждой валютной паре.Открыто 5 сделок евро доллор по 1 лоту в бай, он открывает 1 сделку 5 лотами в сел,и так по каждой валютной паре,не в зависимости на какую пару он был установлен.
 

в этом коде всё не так 

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

ошибка которая сразу бросается в глаза : OrderSymbol() == Symbols .. у вас Symbols - это строка содержащая перечисление string Symbols = "EURUSD,GBPUSD,AUDUSD,USDJPY,USDCAD,USDCHF,NZDUSD"; а OrderSymbol() - имя отдельной пары; условие никогда не будет верным

 
Maxim Kuznetsov #:

в этом коде всё не так 

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

ошибка которая сразу бросается в глаза : OrderSymbol() == Symbols .. у вас Symbols - это строка содержащая перечисление string Symbols = "EURUSD,GBPUSD,AUDUSD,USDJPY,USDCAD,USDCHF,NZDUSD"; а OrderSymbol() - имя отдельной пары; условие никогда не будет верным

Здравствуйте.Спасибо за совет.Именно про учебник и ресурсы бесплатных сайтов.Почитал книги свежих годов,и понял что иду не в том направлении.