Многофильтровая прорывная стратегия интеллектуальной торговли на основе скользящей средней

VWAP EMA RSI ADX ATR HTF SMA
Дата создания: 2024-12-20 15:49:05 Последнее изменение: 2024-12-20 15:49:05
Копировать: 0 Количество просмотров: 112
1
Подписаться
1166
Подписчики

Многофильтровая прорывная стратегия интеллектуальной торговли на основе скользящей средней

Обзор

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

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

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

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