Развитие кода Multi Arbitration 1.000.
Отличия от 1.000:
Запускается советник ТОЛЬКО на PERIOD_M1 (пояснение ниже, смотрите параметр Time frame).
Теперь этот советник торгует сразу по двум символам. Второй символ берется из статического массива ExtArrSymbols:
string ExtArrSymbols[20]= { "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD", "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY", "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY", "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF" }; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit()
Изменен принцип открытия позиций:

Введен параметр Time frame - теперь можно проводить оптимизацию на любом периоде графика. Сам советник работает только в момент появления нового бара на основном символе (на символе, на графике которого запущен советник):
//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- we work only at the time of the birth of new bar static datetime prevtime=0; datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame); if(time_0==prevtime) return; prevtime=time_0;
Здесь переменная InpTimeFrame - это и есть наш входной параметр Time frame. Таким образом, в зависимости от значения входного параметра Time frame мы можем заставить работать советник на любом таймфрейме!
Результаты теста на EURUSD:

Multi Arbitration 1.000
Покупаем (открываем позиции BUY) подешевле, продаем (открываем позиции SELL) подороже.
Stop Loss Take Profit
Если закрытие по Stop loss - удваиваем объём, если по Take profit - ставим минимальный объём. Для определения того, что сделка произошла вследствие срабатывания Stop loss или TakeProfit, используем OnTradeTransaction.
ColorFisher_m11
Осциллятор с использованием обратного преобразования Фишера.
iCCI iMA
Индикатор iMA (Moving Average) от индикатора iCCI (Commodity Channel Index). Аналог выбора Previous Indicator's Data в терминале.