Возможно ли реализовать цикл перебора по идентификаторам ?????

 

Всем доброго времени суток, несколько раз сталкивался с данной проблемой в мт 4 теперь и в мт 5. Может кто знает как можно организовать цикл перебора по внешним идентификаторам без занесения их значения в массив, что бы не заниматься глупой работой, к примеру имеем :

//--- input parameters -----------------------------------------------

input string   SetOfTradingTools;                  // Настройки торговых инструментов 

input string   Tool1 = "EURUSD";                   // Имя инструмента 1

input uchar    OrderTypeTool1 = 0;                 // Тип ордера интсрумента 1 (0 == no trade; 1 == бай; 2 == селл)

input double   OrderVolumeTool1 = 1;               // Объем для входа по инстументу 1

input string   Tool2 = "GBPAUD";                   // Имя инструмента 2 

input uchar    OrderTypeTool2 = 0;                 // Тип ордера интсрумента 2 (0 == no trade; 1 == бай; 2 == селл)

input double   OrderVolumeTool2 = 2;               // Объем для входа по инстументу 2

input string   Tool3 = "AUDUSD";                   // Имя инструмента 3

input uchar    OrderTypeTool3 = 0;                 // Тип ордера интсрумента 3 (0 == no trade; 1 == бай; 2 == селл)

input double   OrderVolumeTool3 = 3;               // Объем для входа по инстументу 3

input string   Tool4 = "NZDUSD";                   // Имя инструмента 4 

input uchar    OrderTypeTool4 = 0;                 // Тип ордера интсрумента 4 (0 == no trade; 1 == бай; 2 == селл)

input double   OrderVolumeTool4 = 4;               // Объем для входа по инстументу 4 

 

Нужно подсчитать общее количество  позиций по разным инструментам которые необходимо открыть (инструментов будет порядка 20 -25 может больше потому и хочется сделать все раз циклом а не заниматься писаниной глупого кода). Данное количество необходимо для дальнейших манипуляций.  

код не верный но должно быть как то так :

uchar  NPositionsNeedOpen = 0;    

for(int i =  OrderTypeTool1 ; i <= OrderTypeTool4; i ++)

    {

    if  (OrderTypeTooli != 0) NPositionsNeedOpen ++;

    } 

то есть проблема сводится к выделению константной части имени идентификатора  OrderTypeTool и манипуляции переменной частью 1, 2, 3 и т.д. в цикле. 

Заранее спасибо за любую помощь ....  

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
FIRST: то есть проблема сводится к выделению константной части имени идентификатора  OrderTypeTool и манипуляции переменной частью 1, 2, 3 и т.д. в цикле.

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

Здесь достаточно двумерного массива.

 
Mathemat:

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

Здесь достаточно двумерного массива.

  Все равно внешние переменные в массив придется вручную забивать, проще тогда уже конфигурацию в .ини файл писать, а потом оттуда читать и распарсивать.
 

Спасибо за отклик, согласен тут мало переменных, но заказчик хочет что бы в советнике можно было по всем инструментам торговать, в общем ладно буду заниматься глупым прописыванием рутинного кода.
 
FIRST:

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

ini-файл вам в помощь, уже говорили.

Или можно csv-табличку сделать, заполнять в экселе будет удобнее.

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