Стратегия отслеживания скользящей средней - это стратегия, основанная на простой скользящей средней. Она использует 200-дневную простую скользящую среднюю, чтобы определить направление тренда цены. Когда цена пересекает пересечение скользящей средней, она идет на длинный. Когда цена пересекает пересечение ниже скользящей средней, она идет на короткий. Эта стратегия отслеживает тенденцию к прибыли.
Стратегия основана на следующих принципах:
Стратегия отслеживает тенденцию, движусь в среднем направлении и совершает обратные сделки, когда происходит перекресток MA, чтобы получить прибыль от тенденции.
Стратегия имеет следующие преимущества:
Существуют также некоторые риски:
Риски могут быть устранены путем следующих оптимизаций:
Стратегия может быть дополнительно оптимизирована в следующих аспектах:
Оптимизируйте параметр периода MA с использованием таких методов, как анализ прохождения, чтобы найти оптимальные параметры.
Добавьте краткосрочный MA для отслеживания как долгосрочных, так и краткосрочных тенденций.
Включить индикаторы тренда, такие как MACD, чтобы улучшить идентификацию обратного тренда.
Добавьте механизмы остановки потери, такие как отслеживание остановки потери, чтобы контролировать однократные потери по сделке.
Испытание прочности на различных продуктах и периодах времени.
Используйте машинное обучение для адаптивной оптимизации параметров.
Стратегия отслеживания скользящих средних - это простая и практичная стратегия отслеживания трендов. Она имеет четкую логику и легко реализуется для улавливания тенденций. Но у нее также есть некоторые недостатки, такие как нечувствительность к краткосрочным коррекциям и слабый контроль рисков. Мы можем оптимизировать стратегию с нескольких аспектов, чтобы сделать ее более надежной, лучше параметризированной и с более сильным управлением рисками. В целом стратегия отслеживания скользящих средних имеет хорошее применение и является важной концепцией трендовой торговли в количественной торговле.
/*backtest start: 2023-09-19 00:00:00 end: 2023-10-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0) /////////////// Time Frame /////////////// testStartYear = input(2012, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// MA 200 ///////////// slowMA = sma(close, input(200)) /////////////// Strategy /////////////// long = close > slowMA short = close < slowMA last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) /////////////// Execution /////////////// if testPeriod() strategy.entry("Long Entry", strategy.long, when=long_signal) strategy.entry("Short Entry", strategy.short, when=short_signal) strategy.exit("Long Ex", "Long Entry") strategy.exit("Short Ex", "Short Entry") /////////////// Plotting /////////////// plot(slowMA, color = long ? color.lime : color.red, linewidth=2) bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80) bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)