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

Автор:Чао Чжан, Дата: 2024-02-23 12:11:32
Тэги:

img

Обзор

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

Принцип стратегии

Основная логика этой стратегии заключается в определении точек переворота на рынке путем расчета наивысшей и наименьшей цены за определенное время (например, 20 дней).

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

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

  3. Если новый максимум не наблюдается, вычесть счетчик на 1 каждый день.

  4. Логика суждения для самой низкой цены аналогична.

  5. Долгие и короткие позиции принимаются в течение периодов мониторинга перемены.

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

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

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

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

  2. Отслеживание самых высоких и самых низких цен в течение окна может чувствительно идентифицировать тенденции и сроки перемены цен.

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

  4. Разрешает длинные и короткие позиции.

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

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

К основным рискам этой стратегии относятся:

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

  2. Не учитываются общие тенденции на рынке. Отдельные реверсии запасов не обязательно представляют собой реверсии на рынке.

  3. Потенциально большие выводы, которые могут увеличиться без фактических изменений.

  4. Продуктивность может значительно отличаться от обратных тестов.

  5. Чувствительность параметров. Период окна, параметры счетчика и т.д. влияют на стабильность.

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

Руководство по улучшению

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

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

  2. Выбирайте акции со здоровыми фундаментальными показателями и переоценкой.

  3. Оптимизация параметров. Настройка параметров окна и счетчика для поиска оптимальных комбинаций параметров.

  4. Добавьте стратегии стоп-лосса, например, остановки отслеживания, остановки волатильности для контроля максимального снижения.

  5. Увеличить точность предсказаний машинного обучения переворотов цен.

Заключение

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


/*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)

Больше