Стратегия Auto KDJ
Обзор
Auto KDJ — это прямая конвертация советника MetaTrader 4 AutoKdj.mq4, написанного senlin ge. Стратегия работает по одному инструменту и анализирует сглаженный стохастический осциллятор KDJ (линии %K, %D и %J). Реализация на StockSharp воспроизводит логику индикатора и параметры управления капиталом из оригинального советника, используя высокоуровневый API: подписку на свечи, привязку индикаторов и автоматические защитные приказы.
Осциллятор KDJ строится на базе стохастика. Сначала рассчитывается сырое значение RSV, затем оно сглаживается в линию %K, ещё раз сглаживается в линию %D, а их разница (буфер KDC в исходном коде) используется для поиска смены импульса. Auto KDJ держит одновременно только одну позицию и сразу выставляет стоп-лосс/тейк-профит, если они включены.
Построение индикатора
- RSV – для каждой завершённой свечи вычисляются максимум и минимум за
KDJ Lengthбаров и считается: [ RSV = \frac{\text - \text}{\text - \text} \times 100 ] - %K – RSV усредняется за
Smooth %Kпериодов. - %D – %K усредняется за
Smooth %Dпериодов. - Сигнал KDJ – анализируется
K - Dи наклон линии %K.
Для реализации используется стандартный индикатор Stochastic, настроенный так, чтобы повторять буферы MetaTrader.
Правила торговли
Расчёт сигналов выполняется только на закрытых свечах. Пока открыта позиция или существует активный приказ на выход, стратегия не открывает новую сделку — так же, как и оригинальный советник.
Условия входа
- Покупка, если:
K - Dпереходит из отрицательной области в положительную; илиK - Dуже положительный и %K растёт (K_current > K_previous).
- Продажа, если:
K - Dпереходит из положительной области в отрицательную; илиK - Dуже отрицательный и %K падает (K_current < K_previous).
Условия выхода
- Закрытие длинной при пересечении
K - Dниже нуля или при развороте %K вниз. - Закрытие короткой при пересечении
K - Dвыше нуля или при развороте %K вверх.
После закрытия позиции фиксируется результат сделки. Серия убыточных сделок влияет на объём следующего входа так же, как параметр DecreaseFactor в MQL-версии.
Управление капиталом
В советнике MT4 присутствует переключатель whichmethod, определяющий сочетание стоп-лосса и тейк-профита, и функция динамического расчёта объёма. В версии для StockSharp эти возможности вынесены в отдельные параметры:
- Флаги SL/TP – независимые булевы параметры включают или отключают каждую защитную ногу. При активации
StartProtectionразмещает защитные приказы и управляет их исполнением. - Риск-менеджмент – объём заявки начинается с
Base Volumeи может быть увеличен, чтобы удовлетворить требуемую долю капиталаMaximum Risk. Потребление маржи аппроксимируется через размер контракта инструмента и заданное плечо, что повторяет формулу MT4AccountFreeMargin * MaximumRisk * Leverage / 100000. - Снижение объёма – после двух и более подряд убыточных сделок следующий объём уменьшается на
volume * losses / DecreaseFactorв полном соответствии с исходным кодом.
Перед отправкой объём нормализуется через VolumeStep, MinVolume и MaxVolume инструмента, чтобы не нарушать биржевые требования.
Параметры
| Параметр | Описание | Значение по умолчанию | Оптимизация |
|---|---|---|---|
| Candle Type | Тип/таймфрейм свечей. | 15-минутные свечи | – |
| KDJ Length | Период расчёта RSV. | 30 | 10 → 60 шаг 5 |
| Smooth %K | Сглаживание линии %K. | 3 | 1 → 10 шаг 1 |
| Smooth %D | Сглаживание линии %D. | 6 | 1 → 15 шаг 1 |
| Stop Loss (pips) | Размер стоп-лосса в пунктах. | 100 | 0 → 300 шаг 10 |
| Take Profit (pips) | Размер тейк-профита в пунктах. | 200 | 0 → 400 шаг 10 |
| Enable Stop Loss | Включить стоп-лосс. | Да | – |
| Enable Take Profit | Включить тейк-профит. | Да | – |
| Base Volume | Базовый объём сделки. | 0.1 | – |
| Maximum Risk | Доля капитала на сделку. | 0.4 | 0.0 → 1.0 шаг 0.1 |
| Decrease Factor | Снижение объёма после убыточных сделок. | 0.3 | 0.0 → 5.0 шаг 0.5 |
| Leverage | Учётное кредитное плечо. | 100 | 10 → 500 шаг 10 |
Практические рекомендации
- Настройте соединение и инструмент в Designer, Shell или Runner.
- Подберите таймфрейм свечей, совпадающий с используемым в MetaTrader.
- Управляйте поведением
whichmethodс помощью булевых параметров:- выключите оба — «без SL и без TP»;
- оставьте включённым только один — частичная защита, как в пунктах 2 и 3 оригинала.
- При необходимости скорректируйте
Base Volume,Maximum Risk,Decrease FactorиLeverageпод условия брокера. - Запустите стратегию; модуль визуализации построит график с ценой, KDJ и совершёнными сделками.
Отличия от оригинала
- Собственный индикатор
kdj.mq4заменён стандартнымStochastic, настроенным на те же параметры, поэтому дополнительные файлы не требуются. - Расчёт объёма использует капитал портфеля, размер контракта и плечо из описания инструмента StockSharp. При необходимости объём можно откорректировать параметрами риска.
- Защитные приказы создаются через
StartProtection, что соответствует передаче SL/TP вOrderSend, но является нативным способом для StockSharp. - Учёт убыточных серий ведётся по фактическим сделкам, а не через перебор всей истории на каждом тике, что ускоряет работу и даёт те же результаты.
Тестирование
Стратегия проверена путём сравнения точек входа/выхода с оригинальной логикой MQL на тестовых данных EURUSD. Рекомендуется дополнительно провести оптимизацию или форвард-тест под ваши торговые условия, чтобы подтвердить корректность работы с конкретным брокером.