Стратегия преодоления окна обратного импульса


Дата создания: 2024-02-23 12:11:32 Последнее изменение: 2024-02-23 12:11:32
Копировать: 0 Количество просмотров: 636
1
Подписаться
1617
Подписчики

Стратегия преодоления окна обратного импульса

Обзор

Reversal Momentum Breakout Strategy - это количественная торговая стратегия, которая использует ценовые перемены и динамические показатели для создания торговых сигналов. Эта стратегия основана на теории первоочередной динамики, которая определяет, находится ли рынок в критической точке перемены, чтобы поймать возможность перемены, отслеживая максимальные и минимальные цены в течение определенного периода.

Стратегический принцип

Эта стратегия основана на расчете максимальных и минимальных цен в течение определенного периода (например, 20 дней), чтобы определить, находится ли рынок в критической точке переворота. Конкретная логика такова:

  1. Вычислите наивысшую цену (window_high) и наименьшую цену (window_low) за последние 20 дней.

  2. Если текущий максимум K-линии выше, чем максимум за последние 20 дней (т.е. появление нового максимума), то входит в период мониторинга обратного отсчета максимума, и счетчик устанавливается на 5 дней.

  3. Если максимальная цена не создает новую высоту, ежедневный счетчик уменьшается на 1 ⋅ Когда счетчик уменьшается на 0, период наблюдения за обратной стороной высоты заканчивается ⋅

  4. Логика определения минимальной цены аналогична, если появляется новая низкая цена, то входит в период обратного мониторинга низкой цены.

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

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

Анализ преимуществ

Стратегия обратного вращения имеет следующие основные преимущества:

  1. Поймать поворотные моменты, подходящие для обратной ситуации. После постоянного роста или падения рынка часто происходит определенный поворот. Эта стратегия может поймать эти поворотные моменты.

  2. Движение впереди, более чувствительный к сравнению. Расчет максимальной и минимальной цены за определенный цикл позволяет более чувствительным образом определить тенденцию и время изменения цены.

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

  4. Разрешается выполнять множественные пошаговые операции. В зависимости от направления торговли выполняются длинные и короткие операции.

  5. Правила относительно просты и легко реализуемы. Стратегия основывается на простых показателях цены и динамики, которые легко переводятся в кодовую реализацию.

Анализ рисков

Основные риски, связанные с ретроспективной стратегией, заключаются в следующем:

  1. Не допускается реверсионное предсказание.

  2. Невозможно всесторонне рассматривать движение большого рынка. Отдельный рывок не обязательно означает рывок большого рынка, он должен сочетаться с анализом большого рынка.

  3. Возврат может быть большим. Если возврат не произойдет, NetDevice может расшириться.

  4. Риск адаптации данных. Стратегии могут быть слишком зависимы от исторических данных, и их эффективность в реальном мире может быть хуже, чем в ретроспективе.

  5. Параметры чувствительны. Настройка параметров, таких как окно времени и обратный счетчик, может повлиять на стабильность стратегии.

Решение риска включает в себя: оптимизацию стратегии остановки убытков, рассмотрение факторов большого риска, корректировку параметров для проверки стабильности и т. Д.

Направление оптимизации

Основными направлениями оптимизации стратегии являются:

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

  2. Выбор акций с хорошим финансовым состоянием, хорошей базовой базой и завышенной ценой.

  3. Оптимизируйте параметры. Регулируйте окно, переверните параметры счетчика, ищите оптимальные параметры.

  4. Добавление стратегии остановки убытков, таких как остановка типа слежения, остановка ширины и т. Д., Контроль максимального отвода.

  5. Добавление машинного обучения. Использование AI-моделей для прогнозирования вероятности ценового разворота, повышение точности сигналов.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("New Highs and Lows Momentum Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

window = input.int(20, title="New Highs and Lows Window", minval=1)
decay = input.int(5, title="Decay", minval=1)
startDate = input(timestamp("1 Jan 2023"), title = "Start Date")
allowShort = input.bool(false, title = "Allow shorting")

var int highDecayCounter = 0
var bool isHighPeriod = false
var int lowDecayCounter = 0
var bool isLowPeriod = false

inTradeWindow = true

window_high = ta.highest(close, window)
window_low = ta.lowest(low, window)

// Logic for Highs
if window_high > ta.highest(close, window)[1]
    highDecayCounter := decay
    isHighPeriod := true
else
    if highDecayCounter > 0
        highDecayCounter := highDecayCounter - 1
    else
        isHighPeriod := false

// Logic for Lows
if window_low < ta.lowest(low, window)[1]
    lowDecayCounter := decay
    isLowPeriod := true
else
    if lowDecayCounter > 0
        lowDecayCounter := lowDecayCounter - 1
    else
        isLowPeriod := false

// Strategy Execution
if inTradeWindow
    if isHighPeriod and highDecayCounter == decay
        strategy.entry("Long", strategy.long)

    if isHighPeriod and highDecayCounter == 0
        strategy.close("Long")

    if isLowPeriod and lowDecayCounter == decay and allowShort
        strategy.entry("Short", strategy.short)

    if isLowPeriod and lowDecayCounter == 0 and allowShort
        strategy.close("Short")

// Plotting
plot(window_high, color=color.green)
plot(window_low, color=color.red)