Как создать мультивалютный советник и протестировать его в тестере?

 
Все привет.
Народ!
Я в программировании чайник и мне необходим совет.

Есть такой код:(часть кода)

    /* ---------------------------------------- Мартингейл на покупку           --------------------------------------*/  
    
    
    
    
    if(!PositionSelect(_Symbol) && stm.hour >= 0 && stm.hour <= 23 && MACD[0] <= macd_param_buy_vol && MACD2[0] <= macd_param_buy_sig && RSI[0] <= rsi_param_buy && STOCHASTIC[0] <= stochastik_param_buy_main && STOCHASTIC2[0] <= stochastik_param_buy_signal)
    {

      // вызываем функцию, подсчитывающую кол-во лотов для стартовой сделки
      double trade_lot = function_trade_lot(AccountInfoDouble(ACCOUNT_BALANCE));
      
      
      if(SendOrderBuy(price_ask, trade_lot, pos_prof_gl, price_bid))
       {
         // первоначальная позиция открыта..
         Print("Первоначальное открытие");
         Print("Час: "        +(string)stm.hour);
         Print("Минута: "     +(string)stm.min);
         Print("Секунда: "    +(string)stm.sec);
       }
     
      }
      
      
      
      else if(PositionSelect(_Symbol) && stm.hour >= 0 && stm.hour <= 23  && position_type == 0)
      {
        // доливка существующей позиции.  
      
      //увеличим размер позиции на коэффициент
      double lot = posVolume * COEF;
      
      double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      
      if(ask <= hist_price - DELTA * _Point)
      {
      
            // -------+ вызов функции формирования торгового запроса +--------- 
            if(SendOrderBuy(price_ask, lot, pos_prof_gl, price_bid))
              {
               Print("Позиция добавлена");
               Print("Час: "        +(string)stm.hour);
               Print("Минута: "     +(string)stm.min);
               Print("Секунда: "    +(string)stm.sec);
              }
       
       }
      
      
      };
      /* ---------------------------------------- Мартингейл на покупку END           --------------------------------------*/ 


Как мне сделать что бы перебиралось множество инструментов и затем создавались позиции только в тех инструментах которые соответствуют определенным критериям..
То есть какие ф-ции отвечают за подобный вызов(не могу ниче найти в инете) ?
+ как вообще это(потом) оформить правильно, что бы это был не ****? )
(я так понимаю, что 20 раз писать одну и туже ф-цию с разными инструментами это не самое оптимальное решение?)
И как потом быть с тестером - оно само должно понять что это мультивалютный советник? )
(там же только какую то 1-ну конкретную валюту выбрать можно для тестирования.)

P.S. Cам верстальщик сайтов.
Имею только базовые(на уровне обезьяны) навыки Javascript и т.п.
(в МQL 5 навыков пока хватает только, что бы мартина написать кое как..)
 

Ютюб 

"mql уроки"