Префикс и суффикс валютных пар.
Мы все привыкли, что в терминале каждая валютная пара имеет название типа EURUSD, однако это не всегда так.
Бывает, что брокер именует пару как то иначе, например EURUSD.m, или EURUSD.z. Брокер так делает из своих соображений, например, как то специально обозначая пару для центовых счетов. Логично предположить, что если в конце названий валютных пар могут дописываться дополнительные символы, то подобные символы могут встречаться и в начале названия валютной пары. Другими словами, ничто не мешает брокеру именовать валютную пар как то так: #.EURUSD.ch В таком случае можно сказать, что “#.” это префикс валютной пары, а ”.ch ” её суффикс.
Для трейдера не имеет особого значения, почему валютная пара именуется именно так, а не иначе, а имеет значение удобная и безотказная работа терминала и установленных инструментов. А вот как раз с последним могут возникать проблемы. Любой инструмент, работающий в окне терминала будет обращаться к тем, или иным функциям MQL. Если обращение будет происходить к функциям, работающими с данными текущего графика, на котором работает инструмент, то ничего страшного не произойдет, т. к. название валютной пары в этом случае не важно. Но как только индикатор, советник, скрипт попытается получить данные с другой валютной пары может последовать сбой. Действительно, предположим , что некий индикатор установлен на графике EURUSD.z, но ему необходимо запрашивать данные с графика USDCHF. У брокера эта валютная пара будет именоваться так: USDCHF.z. Но ведь индикатор об этом не знает, поэтому будет пытаться получить данные от валютной пары, которой нет. Очевидно, что за этим последует. Возможны случаи, когда доступны пары с разными суффиксами/префиксами – USDCHF.z, USDCHF.c, USDCHF и данные все таки окажутся доступными, но полагаться на такое нельзя ни в коем случае. Очевидно, что в зоне риска оказываются советники и индикаторы мультивалютной торговли, торговли корзинами ордеров.
Выход из ситуации представляется довольно очевидным. Имеет смысл вынести строковые переменные префикса и суффикса валютной пары в настройки инструмента и упомянуть об этих настройках в документации. Квалифицированный разработчик не забудет об этой, в общем то банальной особенности.