Эта стратегия использует перекрестные сигналы индикатора RSI и двух линий EMA для определения точек покупки и продажи. Сигнал покупки генерируется, когда цена закрытия падает ниже EMA100 и EMA20, а значение RSI ниже 30. Сигнал продажи генерируется, когда цена закрытия превышает EMA100 и EMA20, а значение RSI выше 70. Основная идея этой стратегии заключается в использовании индикатора RSI для оценки условий перекупки и перепродажи, в сочетании с суждением тренда линий EMA, для того, чтобы захватить низкие и высокие точки колебаний рынка и выполнить операции с низкой покупкой и высокой продажей.
RSI и Dual EMA Crossover Signal Quantitative Strategy - это простая и практичная количественная торговая стратегия. Сочетая индикатор RSI с скользящими средними EMA, он может лучше улавливать максимумы и минимумы на колеблющемся рынке и проводить арбитраж. Однако эта стратегия также имеет некоторые ограничения и риски, такие как неудачи на трендовых рынках, отсутствие мер управления позициями и контроля рисков и т. Д. Поэтому в практическом применении ее необходимо надлежащим образом оптимизировать и улучшить в соответствии с характеристиками рынка и личными предпочтениями для повышения надежности и прибыльности стратегии.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true) // Input parameters rsiLength = input.int(14, "RSI Length") emaCloseLength = input.int(100, "EMA Length (Closing Price)") emaLowLength = input.int(20, "EMA Length (Low Price)") oversoldLevel = input.int(30, "Oversold Level") overboughtLevel = input.int(70, "Overbought Level") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Calculate EMA of closing price emaClose = ta.ema(close, emaCloseLength) // Calculate EMA of low price emaLow = ta.ema(low, emaLowLength) // Determine overbought and oversold conditions isOversold = rsi <= oversoldLevel isOverbought = rsi >= overboughtLevel // Plot RSI and its EMAs plot(rsi, color=color.blue, title="RSI") plot(emaClose, color=color.green, title="EMA 100 (Closing Price)") plot(emaLow, color=color.orange, title="EMA 20 (Low Price)") // Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level buySignal = close < emaClose and close < emaLow and isOversold // Plot buy signals plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) // Strategy entry if (buySignal) strategy.entry("Buy", strategy.long) // Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level sellSignal = close > emaClose and close > emaLow and isOverbought // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short) // Plot sell signals plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit if (sellSignal) strategy.entry("Sell", strategy.short)