Если не понятен алгоритм, готов разъяснить по конкретным вопросам, еще интересуют предложения по совершенствованию алгоритма и новые идеи. А идеи по "веселым картинкам" - не интересуют.
Код действительно, трудно читаем. А вот то что в визуализации тестера не отрисовывается лайн напрягает не по детски. Я так понял что это баг метаквотов - неотрисовка индикаторов. И как его побороть в коде пока не понял. А без визуализации можно и по логам или в тестере мышкой наводишь на бар а в окошке показываются значения лайна, но намного это тяжелее - оценить корректность работы алгоритма.
По поводу идей. Пока так представляю
возможный вариант. Существует две раздвижки:
1. Раздвижка между осциляторами. Её показывает, например, лайн - необходима для определения 0-точек и
оценочной величины раздвижки.
2. Абсолютная - в валюте - рассчитывается виртуально от 0-точки первой раздвижки до следующей 0-точки необходимыми лотами.
Раздвижка 2 в 0-точке должна схлопываться и иметь экстремумы совпадающие с экструмумами раздвижки первого типа. Но так как это не реально реализовать, то необходима калибровка (такое определение дал SilverKZ и оно мне понравилось) индикатора раздвижки 1-го типа для максимального приближения к этому идеалу. Автоматизировать процесс калибровки - сложно, но можно (в том же тестере например - осуществляя перебор параметров оптимизируя минимум расхождений - но это иногда, а чтоб на лету - тут череп комкать надо).
Имея калиброванный индикатор раздвижки первого типа, собираем статистику за
достаточный период (как определять его длительность пока не ясно). Получаем массив величин раздвижек и результатов их схлопываний (из 2-го индикатора) между 0-точками (из 1-го индикатора). Находим оптимальную раздвижку для входа. Тут кто-как. Можно размер выбрать, когда 80% прибыльных получатся (так MrSerj предлагает), можно от среднеквадратичного отклонения плясать. Много как можно.
А уж потом можно и ММ прикручивать.
NeKolla, поправьте если где ошибся.