Стратегия двойного стимула SMA

Автор:Чао Чжан, Дата: 2024-01-17 15:05:08
Тэги:

img

Обзор

Стратегия двойного SMA Momentum - это стратегия торговли, основанная на техническом анализе, которая генерирует сигналы купли и продажи на основе двух простых показателей скользящей средней (SMA).

Логика стратегии

В стратегии используются два индикатора SMA с короткими и длинными временными окнами - быстрая SMA (длина 9 периодов) и медленная SMA (длина 45 периодов).

Он генерирует сигнал long/buy, когда цена закрытия акции пересекает как быструю, так и медленную линию SMA, что указывает на начало восходящего тренда.

Он генерирует сигнал short/sell, когда цена пересекает ниже обеих линий SMA, что указывает на начало нисходящего тренда.

Уровни стоп-лосса устанавливаются динамически на уровне предыдущего дня (для коротких сделок) и предыдущего дня (для длинных сделок).

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

Основными преимуществами этой стратегии являются:

  1. Использует сочетание краткосрочных и долгосрочных SMA для определения формирующихся среднесрочных тенденций
  2. Адаптивное размещение стоп-лосса снижает риск и позволяет получать прибыль
  3. Легко понять и реализовать
  4. Хорошие результаты на всех рынках и акциях в условиях тренда

Тем не менее, как и все стратегии технического анализа, он может показать низкую производительность на рынках с ограниченным диапазоном и с частыми ложными сигналами.

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

Основными рисками этой стратегии являются:

  1. Склонность к ошибкам и ложным сигналам: поскольку стратегия основана исключительно на перекрестках SMA, она может столкнуться с ошибками и ложными сигналами во время боковых или неуравновешенных рынков, создавая ненужные торговые издержки.

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

  3. Риск чрезмерной оптимизации из-за настройки параметров: обширная оптимизация длин SMA и других параметров для адаптации кривой к историческим данным может привести к плохой производительности в живой торговле.

Возможности для расширения

Некоторые способы, которыми эта стратегия может быть усилена, таковы:

  1. Добавление других индикаторов, таких как RSI для дополнительного подтверждения торговли, чтобы улучшить сроки и точность сигналов

  2. Включение динамических методов размещения стоп-лосса, таких как ATR или люстры, для лучшего адаптации к волатильности рынка

  3. Оптимизация длин SMA на основе исторической волатильности и временных рамок торговли для различных акций

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

Заключение

В целом, стратегия Dual SMA Momentum предлагает простой подход к торговле краткосрочными и среднесрочными тенденциями. Хотя в ее подходе есть основы, уточнения, такие как дополнительные фильтры, динамические остановки и благоразумные оптимизации, могут помочь улучшить корректированную доходность. Используется выборочно во время подъемных и нисходящих тенденций акций, она может улавливать прибыльные движения.


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)


Больше