Эта стратегия рассчитывает индикатор импульса цены, чтобы определить, изменилась ли ценовая тенденция, чтобы поймать возможности перемены цены. Когда восходящий или нисходящий тренд цены замедляется, это указывает на то, что импульс цены изменился. В это время стратегия откроет длинные или короткие позиции.
Стратегия основана в основном на расчете индикаторов импульса. Индикатор импульса отражает скорость и силу изменения цен. В стратегии рассчитываются два индикатора импульса MOM и MOM1.
Формула расчета MOM:
MOM = цена закрытия сегодняшнего дня - цена закрытия N дней назад
Формула расчета MOM1:
Мать1 = сегодня мама - вчера мама
Если MOM > 0 и MOM1 < 0, это означает, что восходящий тренд цены замедлился, и сигнал обратного движения кажется длинным. Если MOM < 0 и MOM1 > 0, это означает, что нисходящий тренд цены замедлился, и сигнал обратного движения кажется коротким.
Основные методы снижения риска:
Эта стратегия рассчитывает индикатор импульса цены, чтобы определить, изменилась ли ценовая тенденция, автоматически переходя на длинный или короткий.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Momentum - Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.2 ) i_len = input(defval = 12, title = "Length", minval = 1) i_src = input(defval = close, title = "Source") i_percent = input(defval = true, title = "Percent?") i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"]) momentum(seria, length, percent) => _mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length] _mom mom0 = momentum(i_src, i_len, i_percent) mom1 = momentum(mom0, 1, i_percent) mom2 = momentum(i_src, 1, i_percent) momX = mom1 if i_mom == "MOM2" momX := mom2 if (mom0 > 0 and momX > 0) strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE") else strategy.cancel("MomLE") if (mom0 < 0 and momX < 0) strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE") else strategy.cancel("MomSE") plot(mom0, color = #0000FF, title = "MOM") plot(mom1, color = #00FF00, title = "MOM1", display = display.none) plot(mom2, color = #00FF00, title = "MOM2")