Осциллятор A/D Kaufman

  1. Название стратегии

  • Название на русском: Осциллятор A/D Kaufman

  • Оригинальное название: TSM AD Oscillator (S)

2. Автор и источник

  • Автор идеи: Perry J. Kaufman

  • Источник: исходник TSM AD Oscillator (S) из набора Kaufman strategies

3. Краткая идея стратегии

Стратегия пытается ловить разворотные участки через положение осциллятора DRF внутри нормализованного диапазона 0..1.

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

4. Используемые данные и таймфрейм

  • Провайдер: BingXPerpetual_Staging

  • Инструмент: btc-usdt

  • Таймфрейм baseline-переноса: 1h

5. Рассчитываемые индикаторы и ряды

  • TSMADOscillator

    • пользовательский индикатор

    • считает DRF по Open, High, Low, Close

  • ATR(20)

    • используется для нормализации размера позиции

  • smoothedADosc

    • рассчитывается формулой экспоненциального сглаживания

6. Правила входа в длинную позицию

Long открывается, если выбранная входная серия осциллятора опускается ниже buyband.

Выбранная серия:

  • сырой ADosc, если entryrule = 1;

  • сглаженный smoothedADosc, если entryrule = 2.

Вход выполняется рыночной заявкой на следующем баре.

7. Правила входа в короткую позицию

Short открывается, если выбранная входная серия осциллятора поднимается выше sellband.

Вход выполняется рыночной заявкой на следующем баре.

8. Начальный стоп-лосс

В исходной авторской логике явного начального stop-loss нет.

В рабочем TSLab-переносе добавлен инженерный защитный стоп, потому что локальный workflow стратегии требует защитный выход уже на первом runnable baseline. Для long используется уровень Close - 2 * ATR(20), для short Close + 2 * ATR(20).

Это отклонение от исходника, а не авторское правило Kaufman.

9. Сопровождение позиции

В базовом переносе сопровождение позиции строится на исходных сигнальных выходах автора плюс добавленном защитном ATR-стопе.

Отдельного трейлинг-стопа, перевода в безубыток и частичного выхода исходник не содержит.

10. Правила выхода

  • exitrule = 1

    • если позиция открыта, она закрывается на закрытии текущего бара

  • exitrule = 2

    • в исходнике long закрывается, когда ADosc > 0

    • в исходнике short закрывается, когда ADosc < 0

В проектной реализации TSLab TSMADOscillator работает в шкале 0..1, поэтому для runnable baseline центр осциллятора трактован как 0.5. Соответственно в TSLab-версии:

  • long закрывается, когда ADosc > 0.5

  • short закрывается, когда ADosc < 0.5

Это инженерное разрешение противоречия между шкалой осциллятора и текстом исходного выхода через ноль.

11. Манименеджмент и размер позиции

Размер позиции считается по формуле:

  • size = investment / (ATR(20) * bigpointvalue)

Это волатильностный размер, а не риск через стоп-лосс.

12. Используемые индикаторы и параметры

  • smooth

  • sellband

  • buyband

  • combine

  • investment

  • entryrule

  • exitrule

  • ATR Period = 20

В текущем runnable baseline по умолчанию активированы:

  • entryrule = 1

  • exitrule = 2

Исходные значения 0/0 из EasyLanguage-кода не открывают и не закрывают позиции, поэтому для рабочего переноса использованы активные режимы.

13. Диапазоны параметров для оптимизации

На следующем этапе разумно оптимизировать:

  • smooth

  • sellband

  • buyband

  • возможно combine

Если стратегия будет дорабатываться до optimization-ready версии, нужно отдельно определить допустимые диапазоны и шаги.

14. Неоднозначности и места для проверки

  • Тело функции TSMADOscillator отсутствовало в исходнике, поэтому перенос combine=1 реализован по текстовому описанию Kaufman.

  • Авторский stop-loss отсутствует; в TSLab baseline добавлен инженерный ATR-стоп для соответствия runnable strategy workflow.

  • Авторский выход exitrule = 2 через ноль конфликтует с принятой шкалой 0..1, поэтому в переносе используется центральный уровень 0.5.

  • Исходные значения entryrule = 0 и exitrule = 0 оставляют систему неактивной; в runnable baseline выставлены 1 и 2.

  • Для криптоперпов на btc-usdt нужно отдельно проверить, насколько корректно трактуется bigpointvalue и фактический размер позиции на этом рынке.

Индикаторы