суббота, 10 сентября 2016 г.

Параметры настройки робота. Версия, отредактированная котами.

Как я писал вчера (Команда сработала), моя трейдерская команда из двух котов внесла свою лепту в программирование робота. Теперь финальная версия советника стала более компактной в области настроек и выглядит не так пугающе.
Часть параметров настройки,относящихся к режиму использования торгового счета, вынесена в область глобальных переменных и настраивается непосредственно в торговом терминале.
В параметрах настройки робота остались только режимы, которые относятся к конкретным торговым инструментам.

2. Параметры настройки робота.

В финальной версии по сути реализован своего рода модульный конструктор, с помощью которого можно собирать практически любую конфигурацию торгового робота, подходящую для текущей ситуации на рынке по любому конкретному торговому инструменту.
Кроме того, за счет изменения типов переменных и режимов их обработки из настроек робота устранены избыточные комбинации характеристик трендов, что сокращает время оптимизации, если для настройки робота будет использоваться оптимизатор стратегий.

2.1. Список параметров и их назначение.

При сбрасывании робота на график торгуемого инструмента появляется диалоговое окно для настройки параметров.



Позиции открываются в направлении движения рынка определяемом условиями фильтрации входов по параметрам принимаемых во внимание трендов.
Позиции закрываются по достижению цели, стопом, трейлинг-стопом или по реверсу, т.е. при формировании условий для торговли в противоположном направлении, а также по развороту локального тренда, если задан соответствующий режим приоритета. Также позиции закрываются по параметрам эквити торгового счета.



Назначение параметров следующее.

1.Группа фильтрации сигналов по параметрам трендов.

FiltrIDayTrendLevel - целое число от 0 до 2. При значении параметра 0 данный тренд при открытии позиций в расчет не принимается. При значении параметра 1 для открытия позиции принимаются во внимание только сигналы в направлении тренда. Значение параметра больше 1 блокирует открытие сделок в направлении тренда если волна четвертого уровня графика М1 больше/меньше границы канала волатильности на диаграмме волн (назначение - предотвратить вход в рынок в зоне возможного окончания импульса (свинга)). Сделки в противоположном направлении открываются без ограничений.
FiltrDailyTrendLevel - целое число от 0 до 2. При значении параметра 0 данный тренд при открытии позиций в расчет не принимается. При значении параметра 1 для открытия позиции принимаются во внимание только сигналы в направлении тренда. Значение параметра больше 1 блокирует открытие сделок в направлении тренда если волна четвертого уровня графика М5 больше/меньше границы канала волатильности на диаграмме волн (назначение - предотвратить вход в рынок в зоне возможного окончания импульса (свинга)). Сделки в противоположном направлении открываются без ограничений.
FiltrLocalTrendLevel  - целое число от 0 до 2. При значении параметра 0 данный тренд при открытии позиций в расчет не принимается. При значении параметра 1 для открытия позиции принимаются во внимание только сигналы в направлении тренда. Значение параметра больше 1 блокирует открытие сделок в направлении тренда если волна четвертого уровня графика М15 больше/меньше границы канала стандартной волатильности - пунктирный канал на диаграмме волн (назначение - предотвратить вход в рынок в зоне возможного окончания импульса (свинга)). Сделки в противоположном направлении открываются без ограничений.
FiltrShortTrendLevel - целое число от 0 до 2. При значении параметра 0 данный тренд при открытии позиций в расчет не принимается. При значении параметра 1 для открытия позиции принимаются во внимание только сигналы в направлении тренда. Значение параметра больше 1 блокирует открытие сделок в направлении тренда если волна четвертого уровня графика Н1 больше/меньше границы канала волатильности на диаграмме волн (назначение - предотвратить вход в рынок в зоне возможного окончания импульса (свинга)). Сделки в противоположном направлении открываются без ограничений.
FiltrMediumTrendLevel - целое число от 0 до 2. При значении параметра 0 данный тренд при открытии позиций в расчет не принимается. При значении параметра 1 для открытия позиции принимаются во внимание только сигналы в направлении тренда. Значение параметра больше 1 блокирует открытие сделок в направлении тренда если волна четвертого уровня графика Н4 больше/меньше границы канала волатильности на диаграмме волн (назначение - предотвратить вход в рынок в зоне возможного окончания импульса (свинга)). Сделки в противоположном направлении открываются без ограничений.
В данной версии признаки краткосрочного и среднесрочного тренда при активных режимах по умолчанию объединяются по ИЛИ(OR), т.е. сделки разрешены, если при прочих положительных условиях хотя бы один из двух старших трендов допускает торговлю в данном направлении.
MajorTrendsANDMode - при параметре true объединение признаков краткосрочного и среднесрочного тренда переключается из режима логического ИЛИ(OR) в режим логического И(AND).


2. Параметр приоритета локального тренда.

TheLocalTrendPriorityMode - при параметре true в советнике задается режим приоритета локального тренда. В этом режиме независимо от значений параметра FiltrLocalTrend всегда учитывается направление движения в рамках локального тренда. Открытие позиций против направления локального тренда блокируется. Позиции открываются в направлении движения рынка по локальному тренду с дополнительными условиями фильтрации входов по параметрам остальных трендов.
Закрытие позиций строго по параметрам локального тренда вне зависимости от направлений движения рынка по остальным трендам. а также по достижению цели, стопом, трейлинг-стопом и режимами закрытия по эквити.


3. Группа настройки вспомогательных режимов.

Long - торгуем/не торгуем лонг.
Short - торгуем/не торгуем шорт.
OnlyOpen - при значении параметра true позиции только открываются и сопровождаются адаптивным или ручным трейлинг-стопом. Закрытие позиций происходит только по достижению уровней ордеров стоп-лосс и тейк-профит, а также трейдером вручную.
CloseManualPosByExpert - при значении параметра true эксперт получает возможность закрытия позиций, ранее открытых или открываемых вручную. Пользоваться с осторожностью и только при отсутствии сделок против тренда, торгуемого роботом, поскольку такие позиции будут сразу же закрыты.
SwitchToSignalSUMM - при значении true для формирования торгового сигнала используется не пересечение нулевой линии волной второго уровня графика М1, а пересечение нулевой линии суммой всех волн графика М1. Использование режима в некоторых случаях улучшает статистику сделок в отсутствие фильтрации по внутридневному и/или дневному трендам.. Использовать после предварительного тестирования.
TheAddSignalsMode - при значении true для формирования торгового сигнала кроме пересечения нулевой линии волной второго уровня графика М1 в направлении торговли используется также разворот волны второго уровня выше/ниже нулевой линии в направлении торговли.Использование режима целесообразно на сильных тренда, когда на откате волна второго уровня не заходит за нулевую линию.


4. Группа настройки параметров риска.

LotsForManualMM - размер лота для торговли фиксированным объемом без AutoMM.
AutoMM - параметр выбора режима автоматического определения размера (объема) позиции, значение true соответствует автоматическому определению размера позиции, значение false - ручной выбор размера позиции, задаваемый параметром LotsForManualMM.
RiskPercForTradeAutoMM - процент риска на сделку при AutoMM=true. Если заданный или рассчитанный размер лота меньше допустимого в торговом терминале, то в советнике автоматически устанавливается минимально допустимый размер лота.
MaxNumberOrdersInMarket - максимальное количество ордеров в рынке по инструменту, открываемых советником.
TotalRiskLimitPerc - максимальный общий риск в процентах по всему портфелю торгуемых инструментов.
TrailingStopAdaptive - включение/выключение режима адаптивного трейлинг-стопа. Адаптивный трейлинг-стоп включается на режиме коррекционного движения по локальному тренду краткосрочному или среднесрочному тренда в порядке убывания приоритета локальный-краткосрочный-среднесрочный.Если какой-либо из трендов не учитывается при открытии сделок, то адаптивный трейлинг-стоп по его параметрам также не включается.
TrailingStopManualSize - размер трейлинг-стопа, задаваемого вручную. Активен, если TrailingStopAdaptive выключен. При значении 0 - ручной трейлинг-стоп отсутствует. Если значение больше 0, но меньше минимально допустимого в торговом терминале, то устанавливается минимально допустимое + 5пп.
AggressiveMode - включение адаптивного мультипликатора риска. В режиме агрессивной торговли, если волна четвертого уровня графика М15 находится внутри границ канала стандартной волатильности на интервале направленного локального тренда (пунктирный канал на диаграмме волн), то количество разрешенных к открытию сделок и риск на каждую сделку удваиваются.
LeverageLimits - задается предельный размер кредитного плеча, в рамках которого советник может открывать позиции. Если заданный размер кредитного плеча больше плеча, предоставленного брокером, то действуют ограничения по кредитному плечу брокера. Например, плечо у брокера 1:500, а вы можете установить 1:25 и советники не будут открывать новые позиции, если набран объем, соответствующий кредитному плечу 1:25. Это впрочем не препятствует ручной догрузке счета.
TheInitialStopsShutDownMode - при значении параметра true не устанавливает начальные значения ордеров стоп-лосс и тейк-профит по открываемым позициям. Кому это может понадобится не знаю. Попросили - сделал.
TheHftCloseMode - при значении параметра true закрывает позиции по инструменту при броске цен против позиции на величину волатильности часового тренда в пределах минуты, а также устанавливает адаптивный трейлинг-стоп при аналогичном броске цен в сторону открытой позиции. Используется для аварийного выхода из рынка при резком росте волатильности, чаще всего вследствие сильной реакции на новости.
TheInvVolatilityBlock - при значении параметра true блокирует открытие новых позиций в случае аномального поведения рынка, когда волатильность часового тренда превышает волатильность по дневному тренду. Действующие позиции в это время уже обычно защищены режимом TheHftCloseMode. Рекомендуется использовать совместно с параметром TheHftCloseMode - ИСКЛЮЧЕН как неактуальный.


5. Мэджик-идентификатор.

Magic - мэджик-идентификатор обеспечивает возможность настройки различных копий роботов для одновременной работы на одном инструменте с разными конфигурациями параметров для различных типов торгуемых трендов. Значение по умолчанию 112358. Селекция позиций при их обработке экспертом производится по символу и мэджик-идентификатору. При желании трейдер может задавать свои значения идентификатора для работы различных версий советника с различными параметрами.


6. Глобальные переменные.

В область глобальных переменных вынесена настройка параметров, общих для всех инструментов торгового счета.
В дополнение к уже имеющимся возможностям организовано взаимодействие отдельных копий робота, действующих на различных инструментах, в единую систему, позволяющую реализовать блокировку работы всех копий роботов при достижении параметром эквити целей профита, стоп-лосс или максимально допустимого убытка убытка по торговому счету.
С помощью системы глобальных переменных задаются следующие параметры:
- задание уровня начального баланса торгового счета для очередного торгового цикла (начало цикла определяется трейдером);
- задание уровня допустимой абсолютной просадки по счету для очередного торгового цикла;
- задание единого для всех копий роботов уровня целей прибыли для выхода по эквити;
- задание единого для всех копий роботов уровня стоп-лосс для выхода по эквити;
- задание единого для всех копий робота размера трейлинг стопа по эквити, после достижения которого роботы устанавливают скользящий безубыточный уровень выхода из рынка по совокупной прибыли всех открытых позиций;
- параметр уровня безопасной торговли при определении торговых рисков.
Гибкость работы возросла, но и требования к пониманию своих действий и аккуратности в работе со значениями параметров роботов тоже повысились.

Настройка параметров производится в диалоговом окне глобальных переменных, которое вызывается нажатием клавиши F3 или выбором соответствующего пункта в разделе меню Сервис.




6.1. Группа настройки параметров торгового счета.

Заполнять не обязательно, если не используется уровень безопасной торговли, отличный от нулевого.
TheInitialAccountBalance - начальный баланс торгового счета.
AllowedAbsoluteDrawdownLevel -допустимый уровень абсолютной просадки, устанавливаемый SafeTradingModeLevel - уровень безопасной торговли, задается в целых числах от 0 до 2:
0 - процентный риск считается от баланса торгового счета;
1 - процентный риск считается от рискового капитала, равного разнице баланса торгового счета и допустимого уровня абсолютной просадки;
2 и более - процентный риск считается от рискового капитала, равного разнице баланса торгового счета и допустимого уровня абсолютной просадки плюс размер плавающей прибыли относительно начального значения баланса торгового счета, взятой с ее знаком. Т.е на сумму прибыли риски удваиваются. Убыток из суммы риска вычитается в удвоенном размере.


6.2. Группа параметров по коллективной работе роботов с эквити.

Данные параметры рекомендуется задавать на одном из пула роботов, торгующих на счете. Иначе при различных цифрах закрытие позиций будет производится по наименьшему из заданных значений выхода с прибыль. и по наибольшему из заданных значений выхода с убытком.
EquityProfitTarget - уровень целевого профита по эквити в единицах баланса торгового счета. Если ноль, то не включается. При достижении заданного уровня все открытые позиции закрываются, а работа пула роботов блокируется до задания нового уровня целей.
EquityStopLoss - уровень допускаемого плавающего убытка по эквити в единицах баланса торгового счета. При достижении заданного уровня все открытые позиции закрываются, а работа пула роботов блокируется до задания нового уровня.
TrailingStopEquitySizePerc - трейлинг прибыли по эквити. Задается в процентах. В момент запуска терминала, если значение параметра не равно нулю, вычисляется порог включения трейлинга, равный стартовому значению эквити с добавлением размера трейлинга. При достижении порога включается режим слежения и трейлинг-стоп подтягивается вслед за ростом эквити. При развороте рынков и достижении уровня трейлинг-стопа все открытые позиции закрываются по рынку, но работа роботов не блокируется.
Block - параметр блокировки работы роботов. При значении, отличном от нуля, работа роботов блокируется. При загрузке терминала значение параметра автоматически обнуляется и производится проверка, не вышли ли параметры счета за заданные границы по прибыли и убыткам. Если вышли, то блокировка возобновляется.

При смене торгового счета появляется диалоговое окно предупреждений с предложением проверить и при необходимости задать параметры нового торгового счета ("Type F3 anf check the GlobalVariables for new account").



P.S. Если сумма средств на счете меньше или равна нулю, работа советника также блокируется, хотя это в общем-то и не нужно.


Замечания общего характера

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

Вот и все.

Комментариев нет:

Отправить комментарий