воскресенье, 3 января 2016 г.

Мультивалютный советник


Изменения с одной стороны минимальны, с другой стороны принципиальны. Принципиальное отличие - отказ от кроссов.
Советник смотрит на CCFp. При пересечении кроссов - разбивает кроссы на составляющие. Приводит их к баксу. Проверяет направление базовых инструментов по индикатору CC. Если направление совпадает - открывает позы.
Все остальное - как в предыдущих версиях.
Описание:
В основе лежит все тот же кластерный индикатор CCFp. В выложенном в вышеуказанном материале индикаторе были небольшие ошибки, я их подкорректировал, кроме того отключил валюту NZD, по причине того, что не со всеми валютами есть кросс-инструмены с NZD.
Подправленный индикатор во вложении. Советник можно цеплять на любой график и любой таймфрейм. Советник будет работать по всем инструментам независимо от того, куда прицеплен, но на том таймфрейме, на котором он стоит.Индикатор, можно вообще не вешать. Главное, чтобы он присутствовал в скомпилированном виде в MetaTrader.
Принцип работы: при пересечении линий валют на индикаторе, открывается соответствующая позиция по кроссовому инструменту. Направление сделки выбирается исходя из того, какая из валют в рассматриваемой паре на данный момент показывает тенденцию к усилению.
Изначально стоп-лоссы и профиты отсутствуют, однако их можно по желанию установить (описание входных параметров ниже).
Присутствует MM. (можно отключить). Расчет лота ведется не на основе процентного соотношения к баллансу, а на основе фиксированного значения Delta. При увеличении баланса на эту величину - размер лота увеличивается на минимальный лот. Минимальный лот необходимо задавать вручную, т.к. не все ДЦ корректно отдают эту переменную. Кроме того необходимо во входных параметрах указать стартовый лот исходя из которого будет расчитыватся текущий.
Изначально задумано фиксирование и/или закрытие позиций трейлингом или противоположным сигналом. Трейлинг можно отключить и вставить жесткие стопы/профиты. Трейлинг реализован немного нестандартно. При достижении заданного порога - закрывается половина лота и подтягивается стоп, остальная половина сопровождается до следующей ступени и опять закрывается половина (если возможно), и так до тех пор, пока не закроется по стопу или не закроется весь лот.
ВАЖНО: при расчете стартового лота необходимо учитываеть, что советник может держать довольно много открытых позиций одновременно. На практике вряд ли такое возможно, но теоретически может быть 6*7=42 одновременно открытых позиции. Учитывайте это при тестировании, чтобы Дядя Коля не пришел в самый интересный момент:)
ВАЖНО: при работе с ДЦ у которого пятизначные котировки (например Alpari) это следует учитывать при задании уровня трейлинга, т.е. надо задавать не 30 пунктов, а соответственно 300. То же самое относится к стопам и профитам. В остальном количество знаков в котировках на работу советника не влияет.
Код достаточно хорошо прокомментирован - разобраться думаю большого труда не составит.
Входные параметры:
step: величина, на которую должны разойтись линии валют на индюке, для появления сигнала;
start_lot: стартовый лот для расчета MM, или если MM отключен - постоянный лот;
min_lot: минимальный лот разрешенный ДЦ;
MM: вкл/откл MM;
delta: величина на которую должен увиличится/уменьшится баланс для изменения размера лота, при включенном MM;
trail: вкл/откл трейлинга;
trailing: уровень трейлинга в пунктах;
stop: стоп-лосс в пунктах (по желанию);
profit: тейк-профит в пунктах (по желанию);
В тестере прогнать невозможно, т.к. мультивалютник... на данный момент стоит в тесте на деме 2 недели на таймфрейме 30. результаты пока неплохие. Но учитывая Новогодние и рождественские праздники и особенности - что либо конкретное говорить пока рано...
Буду благодарен за отзывы и комментарии.