Стратегия Double SMA Momentum


Дата создания: 2024-01-17 15:05:08 Последнее изменение: 2024-01-17 15:05:08
Копировать: 1 Количество просмотров: 629
1
Подписаться
1617
Подписчики

Стратегия Double SMA Momentum

Обзор

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

Стратегическая логика

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

Когда цена закрытия акции прорывает среднюю линию быстрых SMA и медленных SMA, это означает, что начинается восходящая тенденция, и в это время стратегия генерирует сигнал о покупке/покупке и входит в позиции с большим количеством позиций.

Когда цена опускается ниже двух средних линий SMA, это означает начало нисходящей тенденции, и в это время стратегия генерирует сигнал о повышении / выбытии и входит в позицию о повышении.

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

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

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

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

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

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

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

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

  2. vulnerable to sudden trend reversals: быстрый реверс после входа в рынок может быстро пробить остановку убытков. Этот риск можно снизить, оптимизировав длину SMA или добавив другие фильтры.

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

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

Эта стратегия может быть усилена следующими способами:

  1. Добавление других показателей, таких как RSI, для дополнительного подтверждения для повышения точности сигнала
  2. Лучше адаптироваться к рыночным колебаниям с помощью динамических методов остановки, таких как ATR или навигационный метод остановки
  3. Оптимизация длины SMA в зависимости от исторической волатильности различных акций и диапазона времени торгов
  4. Добавление разумных правил управления капиталом и управлением позициями для максимизации доходов и ограничения вывода

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

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

Исходный код стратегии
/*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)