Советник работает по-разному в тестере стратегий и в реальном времени

 

Здравстуйте, уважаемые форумчане.

Я самоучка, написал советник (844 строки кода). 

Общая схема такая:

1. Настройки советника (ввод переменных input)
2. Внутренние переменные советника (не вводятся пользователем)
3. void OnTick(void) {...}, включающий: 
  • а) другие внутренние переменные советника, которые обновляются при каждом проходе OnTiick соответственно
  • б) высчитывание значений индикаторов через iCustom
  • в) торговые критерии/критерии открытия ордеров (распознавание сигналов индикаторов buy/sell)
  • г) логика по учету ордеров, открытие/закрытие ордеров, стоимость ордеров (лоты)

4. кастомные функции, использующиеся в OnTick

5. функция обработки ошибок (switch(Error) case X : Alert(...))

Отлаживаю соответственно через тестер стратегий, для вывода значений переменных использую Print(); В настройках тестера устанавливаю модель "Все тики".

В тестере стратегий работает как надо. Однако при запуске советника на демо-счете в реальном времени, почему-то работает совершенно не так, как работает в тестере стратегий. Если потом запустить советник в ТС на тех же датах, на которых он работал в реальном времени - все правильно работает. С чем это может быть связано? Есть предположения, мысли? 

Буду благодарен за любые идеи, советы. 

 
sidez0r:

Здравстуйте, уважаемые форумчане.

Я самоучка, написал советник (844 строки кода). 

Общая схема такая:

1. Настройки советника (ввод переменных input)
2. Внутренние переменные советника (не вводятся пользователем)
3. void OnTick(void) {...}, включающий: 
  • а) другие внутренние переменные советника, которые обновляются при каждом проходе OnTiick соответственно
  • б) высчитывание значений индикаторов через iCustom
  • в) торговые критерии/критерии открытия ордеров (распознавание сигналов индикаторов buy/sell)
  • г) логика по учету ордеров, открытие/закрытие ордеров, стоимость ордеров (лоты)

4. кастомные функции, использующиеся в OnTick

5. функция обработки ошибок (switch(Error) case X : Alert(...))

Отлаживаю соответственно через тестер стратегий, для вывода значений переменных использую Print(); В настройках тестера устанавливаю модель "Все тики".

В тестере стратегий работает как надо. Однако при запуске советника на демо-счете в реальном времени, почему-то работает совершенно не так, как работает в тестере стратегий. Если потом запустить советник в ТС на тех же датах, на которых он работал в реальном времени - все правильно работает. С чем это может быть связано? Есть предположения, мысли? 

Буду благодарен за любые идеи, советы. 

без кода советника даже и мельчайших мыслей не может быть, так причин множество.
 
sidez0r:

...

В тестере стратегий работает как надо. Однако при запуске советника на демо-счете в реальном времени, почему-то работает совершенно не так, как работает в тестере стратегий. Если потом запустить советник в ТС на тех же датах, на которых он работал в реальном времени - все правильно работает.

А что не так-то? Работа в тестере подтверждается реальным временем, значит всё в порядке. 

Если советник оптимизировался на историии, а потом сливает на неоптимизированном участке или на реале, то беда в стратегии, а не в тестере.

 
Vitalie Postolache:

А что не так-то? Работа в тестере подтверждается реальным временем, значит всё в порядке. 

Если советник оптимизировался на историии, а потом сливает на неоптимизированном участке или на реале, то беда в стратегии, а не в тестере.

На одном и том же участке на графике в реальном времени открывает неправильно, а через ТС правильно.