SkdonSeriesMulti
- Эксперты
-
Igor Bulyshev
Умный, красивый, в меру упитанный и талантливый трейдер-программист в полном расцвете сил!!)) - Версия: 6.85
Советник предназначен для долгосрочной (пожизненной) мультивалютной торговли сразу на 28 валютных парах (список пар зафиксирован в коде) на таймфрейме M30. Список валютных пар: EURUSD, GBPUSD, AUDUSD, USDCAD, USDJPY, USDCHF, GBPJPY, EURJPY, AUDCAD, AUDJPY, CHFJPY, EURCHF, EURGBP, NZDJPY, NZDUSD, CADJPY, AUDCHF, AUDNZD, CADCHF, EURAUD, EURCAD, EURNZD, GBPAUD, GBPCHF, CBPCAD, GBPNZD, NZDCAD, NZDCHF.
Его цель – ловить трендовые движения и управлять рисками с помощью специальных механизмов усреднения, блокирующих ордеров и аварийной защиты.
Основная стратегия – трендовая с использованием моего индикатора Skdon2, который на каждом закрытом баре выдаёт сигнал BUY или SELL.
При смене сигнала советник закрывает старые позиции по определённому правилу и выставляет серию из 4 (количество задаётся в настройках) отложенных ордеров (BUYSTOP или SELLSTOP) в направлении нового сигнала.
1. Что делает советник в целом
Он анализирует каждую валютную пару на 30-минутном таймфрейме с помощью собственного индикатора встроенного в код.
Когда индикатор подаёт сигнал на покупку или продажу, советник открывает серию ордеров: один рыночный ордер (сразу по текущей цене) и несколько отложенных (выше рынка для покупки, ниже – для продажи) с заданным в настройках шагом. Количество отложенных ордеров задаётся параметром InpPendingCount (по умолчанию 4, но в тестере принудительно снижается до 2, чтобы избежать ошибок лимита).
Если сигнал меняется на противоположный, советник закрывает старую серию (полностью или частично) и открывает новую в новом направлении.
Таким образом, он следует за трендом, постоянно переворачиваясь при смене сигнала.
2. Режимы работы
Советник имеет три основных режима:
Режим 0 – Normal (обычный). Советник работает в полную силу: открывает новые серии, управляет ими, использует компенсацию и трейлинг. Это основной режим для повседневной торговли.
Режим 1 – Exit market (выход). Новые серии не открываются. Существующие серии продолжают управляться (трейлинг, усреднение, локи), но как только они закроются, новых не будет. Используется, когда вы хотите плавно выйти из рынка, не закрывая всё резко.
Режим ликвидации (автоматический). Включается автоматически, если на какой-либо паре убыток превысил заданный процент от баланса (по умолчанию 5%). При активации:
Запрещается открытие новых серий.
Начинают закрываться только прибыльные серии, чтобы собрать профит и уменьшить общий убыток.
Режим отключается, когда общий убыток станет меньше заданного процента (по умолчанию 4%) или когда не останется ни одного рыночного ордера. После этого нормальная работа возобновляется.
3. Как открываются и закрываются серии
Сигнал индикатора Skdon2 вычисляется на каждом новом баре M30. Если сигнал сменился (например, был «покупать», стал «продавать»), советник считает, что тренд развернулся.
Если серии ещё нет, то при появлении сигнала открывается:
1 рыночный ордер (Buy или Sell) - сразу и несколько отложенных ордеров (Buy Stop или Sell Stop) на расстоянии StepDistance друг от друга. Их количество задаётся параметром PendingCount.
Если серия уже есть, а сигнал изменился на противоположный, то:
Сначала закрываются все отложенные ордера (удаляются).
Затем закрываются рыночные ордера по правилам:
Если общая прибыль серии положительна – закрываются все рыночные ордера серии.
Если общая прибыль отрицательна – закрываются только те ордера, которые в плюсе, а убыточные остаются (чтобы не фиксировать убыток).
После этого открывается новая серия в новом направлении.
4. Компенсационный режим (усреднение и локи)
Когда на какой-то паре накапливается убыток более 2.5% от баланса, советник включает компенсационный режим для этой пары. В нём работают:
Усреднение (Averaging). Находится самый убыточный ордер на этой паре. Когда цена отходит от последнего усредняющего ордера на расстояние AveragingStepPoints, открывается новый ордер в том же направлении, что и убыточный. Это позволяет снизить среднюю цену входа. Лот каждого следующего усреднения увеличивается по коэффициенту-мультипликатору AveragingMultiplier, но дробно (начальный лот берётся как стартовый_лот / FractionSize). Это даёт плавный рост лотов, а не резкий. Как только общая прибыль по этой компенсационной серии (целевой ордер + все усреднения) достигнет целевого значения (стартовый_лот * 250), вся серия закрывается с прибылью.
Локирующие ордера (Locking). Открываются, когда убыток превышает 3% и есть дисбаланс между суммарным объёмом Buy и Sell (разница больше 0.01 лота). Лок-ордер открывается против преобладающего направления (если больше Buy, то открывается Sell, и наоборот). Это частично хеджирует позицию. Лот лока = дисбаланс * LockLotPercent / 100. После открытия лока дисбаланс уменьшается, и следующий лок будет меньшего объёма.
Новые локи открываются только в сторону улучшения предыдущего:
Для Sell-локов – когда цена падает (улучшает Sell-позицию).
Для Buy-локов – когда цена растёт.
Расстояние между локами – LockStepPoints. Это предотвращает частое открытие локов на одном уровне. Локи также управляются трейлинг-стопом (трейлинг-стоп присутствует у всех ордеров на валютной паре на которой активен режим компенсации, кроме усредняющих ордеров).
Трейлинг-стоп (Trailing Stop). Действует только на парах в компенсационном режиме. Для каждого ордера (кроме усредняющих) трейлинг активируется, когда цена прошла от цены открытия не менее TrailingActivation пунктов. Затем стоп-лосс переносится на расстояние TrailingStopDist от текущей цены, но не чаще, чем с шагом TrailingStep. Это позволяет фиксировать прибыль при дальнейшем движении цены.
5. Дополнительные защитные механизмы.
Защита от гэпов (Gap Protection). При открытии нового бара M30 проверяется, не было ли гэпа (резкого скачка цены) между закрытием предыдущего и открытием текущего бара. Если размер гэпа превышает GapThreshold, советник удаляет все отложенные ордера на этой паре, а рыночные ордера закрывает (если общая прибыль положительна – все, если отрицательна – только прибыльные). После «остывания» в течение 40 секунд сигнал пересчитывается и, если он изменился, открывается новая серия.
Закрытие старых убыточных ордеров. Каждые 8 минут проверяются рыночные ордера, которые открыты более 35 часов и находятся в убытке. Для такого «худшего» убыточного ордера советник ищет прибыльные серии на других парах и закрывает их, пока не наберётся достаточно прибыли, чтобы покрыть убыток + небольшой запас. Затем закрывается и сам старый убыточный ордер.
Закрытие противоположных ордеров. Если на одной паре есть прибыльные Buy и убыточные Sell (или наоборот), и прибыль одной стороны покрывает убыток самого убыточного ордера серии с запасом, то прибыльные ордера закрываются вместе с самым убыточным ордером, чтобы сократить общий риск.
6. Информационная панель. На графике отображается панель с двумя блоками:
Левая панель: текущий режим, статус ликвидации, целевая прибыль, список валютных пар в режиме компенсации.
Правая панель: прибыль за последние дни, количество ордеров, объёмы, старые убытки, последние действия торгового робота.
7. Описание всех настроек (входных параметров)
Группа 1: Основные настройки.
Base magic number=100 Идентификатор всех ордеров советника. Если у вас несколько копий на разных счётах, меняйте это число, чтобы они не мешали друг другу.
Work mode=0 0 – нормальный режим; 1 – режим выхода (новые серии не открываются). Используется для ручного завершения работы.
Risk percent=30 Влияет на размер лота. Чем больше число, тем крупнее лот. Например, при 30 базовый лот = баланс * 0.003 / 10000 (эмпирическая формула). Рекомендуется подбирать под ваш риск.
Minimum gap=35 Минимальный размер гэпа в стандартных пунктах, при котором срабатывает защита. Для JPY-пар пункт = 0.01, для остальных = 0.0001.
Pending orders count=4 Сколько отложенных ордеров добавлять к каждому рыночному при открытии серии. Чем больше, тем глубже сетка.
Distance between pendings=15 Шаг между отложенными ордерами в пунктах. Влияет на плотность сетки.
Show info panel=true Показывать информационную панель на графике. Можно отключить для экономии ресурсов и при тестировании.
Группа 2: Режим ликвидации.
Loss % to activate=5.0 Если убыток на любой паре превысит этот процент от баланса, включится режим ликвидации.
Loss % to exit=4.0 Когда общий убыток по всем валютным парам станет меньше этого процента, режим ликвидации отключится.
Группа 3: Компенсация и трейлинг.
Lock lot percent=15.0 Процент от дисбаланса объёмов, который используется для расчёта лота локирующего ордера.
Lock step points=5 Шаг между локирующими ордерами в пунктах. Новый лок открывается только когда цена отойдёт на это расстояние в сторону улучшения.
Averaging step points=20 Шаг между усредняющими ордерами. Новый усредняющий ордер открывается, когда цена пройдёт это расстояние от предыдущего усредняющего ордера.
Averaging multiplier=1.7 Во сколько раз увеличивается лот каждого следующего усреднения. Значение >1 даёт рост лотов.
Trailing activation=18 Сколько пунктов должна пройти цена от открытия, чтобы включился трейлинг-стоп.
Trailing stop distance=15 На каком расстоянии от текущей цены устанавливать стоп-лосс при трейлинге. Должно быть меньше активации, чтобы стоп был в прибыли.
Trailing step=2 Минимальное изменение стоп-лосса при обновлении. Защищает от частых модификаций.
Группа 4: Дробное закрытие.
Profit factor=250.0 Используется во вспомогательном механизме закрытия противоположных ордеров.
Fraction size=5.0 Размер дробной части для усреднений. Первый усредняющий лот = стартовый_лот / FractionSize. Меньше число – крупнее первый усредняющий лот.
8. Важные практические советы.
Начинайте с демо-счёта, чтобы понять поведение советника при ваших настройках.
Убедитесь, что TrailingStopDist всегда меньше TrailingActivation, иначе трейлинг будет ставить стоп-лосс в убыток.
При высокой волатильности увеличьте GapThreshold и шаги (StepDistance, LockStepPoints, AveragingStepPoints), чтобы избежать частых срабатываний.
Для агрессивной торговли увеличьте LockLotPercent и AveragingMultiplier, уменьшите шаги.
Режим ликвидации – это крайняя защита. Если он часто срабатывает, значит, риск слишком высок – уменьшите RiskPercent или увеличьте пороги активации.
Советник полностью автоматический, но требует стабильного интернет-соединения и наличия всех 28 пар в списке символов.
Достоинства советника.
Мультивалютность – 28 валютных пар. Высокая диверсификация снижает зависимость от одной валюты.
Автоматическая очистка портфеля – робот сам ликвидирует старые убытки и встречные позиции, не требуя ручного контроля.
Глобальная цель по прибыли – регулярная фиксация общего результата, что делает кривую прироста капитала более сглаженной.
Высокая отказоустойчивость торговой системы – предусмотрены повторные попытки при ошибках, защита от нехватки баров, проверка торговых разрешений.
Риски и их минимизация
Рыночный (тренд сменяется резко, большие убытки). Частичное закрытие позиций при смене сигнала + глобальная цель + очистка от старых убыточных ордеров. Убыточные ордера не держатся неделями и месяцами.
Гэпы (выходные, важные новости). Специальный защитный алгоритм: при гэпе ≥35 пунктов (порог задаётся в настройках) отложенные ордера по паре закрываются, через 40 секунд (период охлаждения) происходит анализ состояния индикатора и продолжение работы.
Технический сбой (отключение питания, перезагрузка). Все состояния восстанавливаются при перезапуске торговой системы: направление серий считывается из существующих ордеров, состояние индикатора для каждой валютной пары постоянно сохраняется и сравнивается с состоянием после перезапуска всей системы.
Просадка после серии убытков. Благодаря алгоритму достижения глобальной цели и механизму выставления противоположных ордеров, убытки компенсируются за счёт прибыли доминирующих сторон.
Период работы торговой системы: круглосуточно с понедельника по пятницу.
Советник полностью автоматический, не требует ручного вмешательства.
Удачи в торговле!
На скриншотах предоставлены отчёты о тестировании советника на различных валютных парах за 3 года. При тестировании использовались настройки по умолчанию. Прошу также учесть, что это мультивалютный торговый робот и при тестировании в тестере стратегий на отдельно выбранной валютной паре алгоритм закрытия старых убыточных ордеров за счёт прибыли серий ордеров на других валютных парах не работает.
Особенности работы в тестере
Для успешного прохождения тестирования советник автоматически ограничивает количество отложенных ордеров до 2 и общее число открытых ордеров до 30. Это сделано для предотвращения ошибок 148 (превышение лимита ордеров).
