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

SMA EMA RSI ADX ATR DMI
Дата создания: 2025-02-08 15:18:58 Последнее изменение: 2025-02-08 15:18:58
Копировать: 0 Количество просмотров: 372
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

  1. Двойной подтверждение 200-дневного простого скользящего среднего ((SMA) и 21-недельного индекса скользящего среднего ((EMA) используется для определения условий многоглавого рынка
  2. RSI>50 обеспечивает устойчивый рост
  3. Использование условий ADX> 25 для проверки силы тренда
  4. Динамическая стоп-стратегия, основанная на ATR, обеспечивает контроль риска в соответствии с рыночными колебаниями
  5. Использование механизма процентной ставки, обеспечивающего своевременное получение прибыли при достижении ожидаемой прибыли

Стратегические преимущества

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BTCUSDT Daily - Enhanced Bitcoin Bull Market Support [CYRANO]", shorttitle="BTCUSDT Daily BULL MARKET", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)

// Inputs
smaLength = input.int(200, title="SMA Length (Bull Market)")
emaLength = input.int(147, title="EMA Length (21-Week Approximation)")
atrLength = input.int(14, title="ATR Length")
riskATR = input.float(2.0, title="ATR Multiplier for Stop Loss", step=0.1)
takeProfitPercent = input.float(10.0, title="Take Profit (%)", step=0.1)
rsiFilter = input.bool(true, title="Enable RSI Filter")
rsiLength = input.int(14, title="RSI Length")
adxFilter = input.bool(true, title="Enable ADX Filter")
adxThreshold = input.float(25, title="ADX Threshold")

// Date Range Filter
startDate = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
endDate = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")
inDateRange = true

// Moving Averages
sma200 = ta.sma(close, smaLength)
ema21w = ta.ema(close, emaLength)

// ATR Calculation
atr = ta.atr(atrLength)
stopLoss = close - (riskATR * atr)
takeProfit = close * (1 + takeProfitPercent / 100)

// RSI Filter
rsi = ta.rsi(close, rsiLength)
rsiCondition = rsiFilter ? rsi > 50 : true

// ADX Filter
[diplus, diminus, adx] = ta.dmi(14, 14)
adxCondition = adxFilter ? adx > adxThreshold : true

// Entry and Exit Conditions
buyCondition = inDateRange and close > sma200 and close > ema21w and rsiCondition and adxCondition
exitCondition = inDateRange and (close < sma200 or close < ema21w)

// Strategy Execution
if buyCondition
    strategy.entry("BUY", strategy.long, stop=stopLoss, limit=takeProfit)

if exitCondition
    strategy.close("BUY")

// Plot MAs
plot(sma200, title="200-Day SMA", color=color.blue, linewidth=2)
plot(ema21w, title="21-Week EMA", color=color.purple, linewidth=2)

// Background Highlight
bullColor = color.new(color.green, 80)
bearColor = color.new(color.red, 80)
bgcolor(close > sma200 and close > ema21w ? bullColor : bearColor, title="Bull Market Background")