
Моментная индикаторная кроссоверная стратегия (Momentum Indicator Crossover Strategy) - это метод торговли, который сочетает в себе индикаторные движущиеся средние показатели (Exponential Moving Average, EMA) и относительно слабые индикаторы (Relative Strength Index, RSI). Эта стратегия предназначена для использования кроссов двух линий EMA для получения сигналов покупки и продажи, чтобы торговать на финансовых рынках.
В основе этой стратегии лежит система быстрого и медленного пересечения линий EMA. В стратегии определены три линии EMA с различными параметрами:ema1、ema2иema3В частности:ema1Это краткосрочная тенденция.ema2Это среднесрочная тенденция.ema3Представляет собой долгосрочную тенденцию. Когда краткосрочная тенденция пересекает среднесрочную тенденцию, генерируется сигнал покупки; когда краткосрочная тенденция пересекает среднесрочную тенденцию, генерируется сигнал продажи.
Для фильтрации ошибочных диагностических сигналов в политике также определены два дополнительных условия:bodybar1 > bodybar2иclose > entrybar(покупка сигналов) илиclose < entrybar(Продаваемый сигнал) │ Это гарантирует, что соотношение между длинами двух ближайших K-линий соответствует направлению сигнала, и цена прорывает входную точку, чтобы избежать повторного входа │
Кроме того, стратегия в сочетании с RSI evalue, высокая зона RSI используется для определения сигналов перекупа, низкая зона RSI используется для определения сигналов перепродажи. Это помогает избежать ошибочных сигналов в рынке с перегревными и переохлажденными ценами.
Эта стратегия имеет следующие преимущества:
Также существуют следующие риски:
Эта стратегия может быть оптимизирована в следующих направлениях:
Стратегия скрещивания динамических индикаторов объединяет преимущества EMA и RSI, формируя торговые сигналы на основе скрещивания индикаторов. Эта стратегия проста и практична, подходит для начинающих, но также может быть расширена и оптимизирована в соответствии с реальными потребностями, повышая эффективность стратегии. Благодаря строгому управлению рисками эта стратегия может обеспечить стабильную прибыль.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true)
// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100
//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
len3 = input.int(200, minval=1, title='EMA 3')
src3 = input(close, title='Source')
ema3 = ta.ema(src3, len3)
//End of format
//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)
//plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1)
//hline(70, 'Overbought', color=color.red)
//hline(30, 'Oversold', color=color.green)
//End of format
bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')
//plot(ema3, color=color.new(#ffffff, 0), title='EMA 3')
// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)
var entrybar = close // Initialize entrybar with the current close
// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar
plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)
// Define trading logic with custom position size and RSI conditions
if emaCrossoverUp or emaCrossoverUpOccured
strategy.entry('Buy', strategy.long)
entrybar := close // Update entrybar when entering a new buy position
entrybar
if emaCrossoverDown or emaCrossoverDownOccured
strategy.entry('Sell', strategy.short)
entrybar := close // Update entrybar when entering a new sell position
entrybar