Количественная стратегия торговли, основанная на прорыве в динамическом скользящем среднем

Автор:Чао Чжан, Дата: 2024-02-18 09:53:48
Тэги:

img

Обзор

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

Принципы

Эта стратегия в основном разработана на основе индикаторных сигналов скользящего среднего показателя Хэлла и правил периодической торговли.

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

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

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

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

Эта стратегия имеет следующие преимущества:

  1. Использование Hull Moving Average в качестве индикатора сигналов входа улучшает точность выхода на рынок и отслеживает возможности тренда.

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

  3. Фиксированные цели прибыли и точки остановки потери могут эффективно контролировать соотношение риск-вознаграждение каждой сделки.

  4. Высокая частота торговли полезна для корректировки позиций и снижения риска одной сделки.

  5. Правила торговли просты и просты в понимании и внедрении, что подходит для алгоритмической количественной торговли.

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Продолжительная консолидация на рынке может привести к большей вероятности попадания в ловушку после входа.

  2. Фиксированные цели прибыли и точки остановки потерь не имеют гибкости и могут выйти из позиции слишком рано или слишком поздно.

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

  4. Частая торговля увеличивает затраты и влияние скольжения.

  5. Неправильные настройки параметров (например, номера периодов) могут повлиять на эффективность стратегии.

Некоторые меры оптимизации могут быть рассмотрены для снижения вышеуказанных рисков:

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

  2. Установка динамических или множественных фиксированных коэффициентов для получения прибыли и стоп-лосса.

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

  4. Снизить частоту торгов соответствующим образом, чтобы уменьшить затраты и скольжение.

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

Руководство по оптимизации

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

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

  2. Попробуйте объединить несколько показателей для разработки более сложных правил входа и выхода.

  3. Разработка адаптивных механизмов получения прибыли и стоп-лосса в соответствии с различными периодами и рыночными условиями.

  4. Включить модели управления рисками для улучшения управления капиталом.

  5. Модуль настройки прав на проектирование, чтобы обрабатывать такие события, как плавное распределение запасов.

  6. Добавить модуль проверки реальной торговли для проверки эффективности стратегии на реальных рынках.

Органическое сочетание машинного обучения, портфеля индикаторов, адаптивного получения прибыли/стоп-лосса, управления рисками и других методов позволяет этой стратегии достичь более сильной стабильности и прибыльности.

Заключение

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


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gnatskiller

//@version=5
strategy("Strategia HMA + LUN/MER", overlay=true)

// Inputs: stoploss %, takeProfit %
stopLossPercentage = input.float(defval=0.8, title='StopLoss %', minval=0.1, step=0.2) / 100
takeProfit = input.float(defval=1.5, title='Take Profit %', minval=0.3, step=0.2) / 100

// Calculate HMA 115
hma115 = ta.hma(close, 115)

// Exit and Entry Conditions - Check current day, session time, and price below HMA 115
isLong = dayofweek == dayofweek.monday  and not na(time(timeframe.period, "1000-1101")) and close < hma115
isExit = dayofweek == dayofweek.wednesday and not na(time(timeframe.period, "1000-1101"))

// Calculate Stoploss and Take Profit values
SL = strategy.position_avg_price * (1 - stopLossPercentage)
TP = strategy.position_avg_price * (1 + takeProfit)

// Strategy Enter, and exit when conditions are met
if isLong
    strategy.entry("Enter Long", strategy.long)
if strategy.position_size > 0 
    if isExit
        strategy.close("Enter Long", comment="Exit")
        strategy.exit("Exit", "Exit", stop=SL, limit=TP)

// Plot Stoploss and TakeProfit lines
plot(strategy.position_size > 0 ? SL : na, style=plot.style_linebr, color=color.red, linewidth=2, title="StopLoss")
plot(strategy.position_size > 0 ? TP : na, style=plot.style_linebr, color=color.green, linewidth=2, title="TakeProfit")

// Plot HMA 115
plot(hma115, color=color.blue, title="HMA 115")


Больше