Советник проверяет условия в OnTimer раз в 10 секунд, OnTick пустой. Для отладки вывел в журнал bid на каждом срабатывании таймера: в режиме OHLC на M1 пять-шесть вызовов подряд одна цена, потом скачок. На реальных тиках цена меняется почти на каждом вызове. Так и задумано или я где-то накосячил с настройками?
Так и задумано. В OHLC на M1 у тестера на каждую минуту всего четыре цены, таймер срабатывает между ними, а цена стоит. Получается, советник принимает решения по цене, которая обновляется четыре раза в минуту, и входит по ценам, которых на рынке в эту секунду могло и не быть. Для таймерной логики этот режим не подходит, нужны реальные тики или хотя бы «Каждый тик».