Стратегия двойного SMA Momentum - это стратегия торговли, основанная на техническом анализе, которая генерирует сигналы купли и продажи на основе двух простых показателей скользящей средней (SMA).
В стратегии используются два индикатора SMA с короткими и длинными временными окнами - быстрая SMA (длина 9 периодов) и медленная SMA (длина 45 периодов).
Он генерирует сигнал long/buy, когда цена закрытия акции пересекает как быструю, так и медленную линию SMA, что указывает на начало восходящего тренда.
Он генерирует сигнал short/sell, когда цена пересекает ниже обеих линий SMA, что указывает на начало нисходящего тренда.
Уровни стоп-лосса устанавливаются динамически на уровне предыдущего дня (для коротких сделок) и предыдущего дня (для длинных сделок).
Основными преимуществами этой стратегии являются:
Тем не менее, как и все стратегии технического анализа, он может показать низкую производительность на рынках с ограниченным диапазоном и с частыми ложными сигналами.
Основными рисками этой стратегии являются:
Склонность к ошибкам и ложным сигналам: поскольку стратегия основана исключительно на перекрестках SMA, она может столкнуться с ошибками и ложными сигналами во время боковых или неуравновешенных рынков, создавая ненужные торговые издержки.
Уязвимость к внезапным переломам тренда: быстрые переломы после пересечения SMA могут быстро достичь уровней остановки потерь до формирования тренда. Этот риск можно уменьшить путем оптимизации длин SMA или добавления других фильтров.
Риск чрезмерной оптимизации из-за настройки параметров: обширная оптимизация длин SMA и других параметров для адаптации кривой к историческим данным может привести к плохой производительности в живой торговле.
Некоторые способы, которыми эта стратегия может быть усилена, таковы:
Добавление других индикаторов, таких как RSI для дополнительного подтверждения торговли, чтобы улучшить сроки и точность сигналов
Включение динамических методов размещения стоп-лосса, таких как ATR или люстры, для лучшего адаптации к волатильности рынка
Оптимизация длин SMA на основе исторической волатильности и временных рамок торговли для различных акций
Добавление правильных правил управления денежными средствами и размещения позиций для максимизации доходности и ограничения снятия средств
В целом, стратегия 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)