Работа завершена
Техническое задание
Необходимо написать советник по индикатору Donchian Channel с мартингейлом. На картинке наглядное описание входов и выходов, здесь опишу на примере конкретного входа, чтобы было яснее:
EURUSD, H4, 2.12.2013
Цена пробивает канал на самом последнем уровне, направление нижней границы канала восходящее. Как только этот горизонтальный уровень (1,35577) сформировался и свеча закрылась, устанавливается отложенный ордер на продажу. TP в данном примере будет равен 400. Пробив канал, цена не доходит до уровня TP, разворачивается и идет в другую сторону. Здесь включается мартингейл -- на определенном расстоянии от цены входа (допустим, 500 пп) устанавливаются новые ордера на продажу до тех пор, пока цена по одному из них не закроется на уровне 400, т.е. TP. На примере видно, что цена дошла до TP со второй попытки. Остальные уровни на продажу, если они ниже обозначенного уровня, в расчет не принимаются. Если цена доходит до уровня TP, то закрывается по нему и ждем нового сетапа. Со сделками на покупку все зеркально.
Вход как на втором примере мы не рассматриваем, т.к. там не сформировался горизонтальный уровень, цена просто пробила канал вверх.
В советнике также необходимо допустить возможность открытия нескольких ордеров в разные стороны, т.е. ордера на продажу и покупку должны открываться и закрываться независимо друг от друга. Помимо этого, на всякий случай, нужно добавить возможность установки SL и trailing stop.
Если требуются какие-то уточнения, напишите, пожалуйста.
UPD: Поскольку я хочу протестировать стратегию с разных сторон, хотелось бы добавить еще такую функцию.
На рис. 3 видно, что канал шел вниз, образовался горизонтальный уровень (1,34242), цена его пробила, но до TP в 400 пп не дошла и развернулась. Дальше, если бы мы входили с первого ордера и растянули сетку по 500 пп, то цена начала бы спускаться вниз, дошла бы до уровня 1,31742 и ордер закрылся по TP (рис. 4). Я вручную посмотрела на истории и с первого раза, т.е. сразу после пробития канала, цена доходит до TP далеко не всегда. Поэтому я решила добавить возможность тестирования входа с разными отступами от исходного уровня, нарисованного каналом (например, только с уровня "вход +1000 пп" или "вход +2000 пп" с последующим мартингейлом, если цена сразу не доходит до TP. Это позволит немного уменьшить просадку, т.к. иногда бывают такие ситуации, как на рис. 4, цена уходит слишком далеко в противоположную сторону и открывается много ордеров