В процессе загрузки ресурсов... загрузка...

Прорыв в многофильтровом тренде Умная стратегия торговли скользящей средней

Автор:Чао Чжан, Дата: 2024-12-20 15:49:05
Тэги:VWAPЕМАРСИADXATRHTFSMA

img

Обзор

Эта стратегия представляет собой прорывную торговую систему, основанную на нескольких технических индикаторах. Она сочетает в себе несколько технических индикаторов, включая экспоненциальную скользящую среднюю (EMA), среднюю взвешенную стоимость объема (VWAP), индекс относительной силы (RSI), средний направленный индекс (ADX) и т. д., чтобы отфильтровать ложные прорывы с помощью нескольких подтверждений сигналов и улучшить точность торговли. Стратегия также включает в себя более высокие временные рамки суждения о тренде и использует динамическую схему стоп-лосса и получения прибыли на основе ATR для эффективного контроля риска.

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

Основная логика стратегии основана на следующих ключевых элементах:

  1. Система оценки трендов: использует 9-периодные и 21-периодные перекрестки EMA для фиксации краткосрочных изменений тренда, ссылаясь на 15-минутные временные рамки 50-периодного EMA для подтверждения большего направления тренда.
  2. Подтверждение импульса цены: использует индикатор RSI для подтверждения импульса, требующий RSI> 55 для длинных и RSI<45 для коротких.
  3. Проверка силы тренда: включает индикатор ADX для оценки силы тренда, требующий ADX>25 для обеспечения действительности тренда.
  4. Проверка ценовой позиции: использует VWAP в качестве ссылки на ценовую позицию, требуя, чтобы цена находилась в правильной позиции VWAP.
  5. Подтверждение объема: требует, чтобы объем торгов был в 1,5 раза больше среднего объема за 10 периодов, чтобы обеспечить достаточное участие на рынке.
  6. Управление рисками: динамически рассчитывает размер позиции на основе фиксированного процента собственного капитала счета и ATR, используя 1,5x ATR для стоп-лосса и 3x ATR для получения прибыли.

Преимущества стратегии

  1. Механизм подтверждения нескольких сигналов значительно снижает помехи от ложных сигналов.
  2. Сочетание анализа более высоких и более низких временных рамок улучшает точность оценки тренда.
  3. Динамическое управление позициями и установка стоп-лосса/приобретения прибыли обеспечивают хороший контроль рисков.
  4. Использование объемного прорыва в качестве подтверждения торговли повышает надежность торговли.
  5. Сильная регулируемость параметров облегчает оптимизацию для различных рыночных условий.

Стратегические риски

  1. Многочисленные фильтры могут привести к потере некоторых действенных торговых возможностей.
  2. Может генерировать частые торговые сигналы на различных рынках.
  3. Оптимизация параметров может привести к перегрузке исторических данных.
  4. В условиях высокой волатильности на рынках остановки ATR могут быть слишком широкими.

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

  1. Внедрение адаптивного параметрового механизма для динамической корректировки параметров на основе рыночных условий.
  2. Добавить модуль распознавания рыночной среды для использования различных комбинаций параметров в различных рыночных средах.
  3. Включить фильтры времени торговли, чтобы избежать периодов высокой волатильности.
  4. Оптимизировать коэффициенты стоп-лосса и прибыли, учитывая динамическую корректировку на основе волатильности рынка.
  5. Добавить классификацию силы тренда для принятия различных стратегий управления позициями на разных уровнях силы.

Резюме

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


/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend-Filtered Scalping Strategy", overlay=true, shorttitle="TFSS")

// Inputs
emaShort     = input.int(9, title="EMA Short", minval=1)
emaLong      = input.int(21, title="EMA Long", minval=1)
rsiLength    = input.int(14, title="RSI Length", minval=1)
atrLength    = input.int(14, title="ATR Length", minval=1)
adxLength    = input.int(20, title="ADX Length", minval=1)
adxSmoothing = input.int(14, title="ADX Smoothing", minval=1)
volMultiplier = input.float(1.5, title="Volume Spike Multiplier", minval=1.0)
riskPercent  = input.float(1, title="Risk % of Equity", minval=0.1, step=0.1)

// Higher Time Frame for Trend Filter
htfTimeframe = input.timeframe("15", title="Higher Time Frame")
ema50HTF     = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, 50))

// Indicators
ema9  = ta.ema(close, emaShort)
ema21 = ta.ema(close, emaLong)
vwap  = ta.vwap(close)
rsi   = ta.rsi(close, rsiLength)
atr   = ta.atr(atrLength)
volAvg = ta.sma(volume, 10)

// ADX Calculation with Smoothing
[_, _, adx] = ta.dmi(adxLength, adxSmoothing)

// Entry Conditions
longCondition = (ta.crossover(ema9, ema21) and close > vwap and rsi > 55 and adx > 25 and close > ema50HTF and volume > volAvg * volMultiplier)
shortCondition = (ta.crossunder(ema9, ema21) and close < vwap and rsi < 45 and adx > 25 and close < ema50HTF and volume > volAvg * volMultiplier)

// Position Sizing Based on Risk %
capitalPerTrade = (strategy.equity * (riskPercent / 100)) / atr
longStop  = close - 1.5 * atr
longTarget = close + 3 * atr
shortStop = close + 1.5 * atr
shortTarget = close - 3 * atr

// Entry Logic
if longCondition and not strategy.opentrades
    strategy.entry("Long", strategy.long, qty=capitalPerTrade)
    strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTarget)

if shortCondition and not strategy.opentrades
    strategy.entry("Short", strategy.short, qty=capitalPerTrade)
    strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTarget)

// Alerts
alertcondition(longCondition, title="Long Entry Alert", message="Long Condition Triggered!")
alertcondition(shortCondition, title="Short Entry Alert", message="Short Condition Triggered!")

// Plot Indicators
plot(ema9, title="EMA 9", color=color.green)
plot(ema21, title="EMA 21", color=color.red)
plot(vwap, title="VWAP", color=color.blue)
plot(ema50HTF, title="HTF EMA 50", color=color.purple)
hline(55, "RSI Long Threshold", color=color.green)
hline(45, "RSI Short Threshold", color=color.red)


Связанные

Больше