Momentum Indicator Crossover Strategy adalah pendekatan perdagangan yang didasarkan pada kombinasi sinyal Exponential Moving Average (EMA) dan Relative Strength Index (RSI). Dirancang untuk memanfaatkan sinyal beli dan jual berdasarkan persilangan dua garis EMA, strategi ini menawarkan kesederhanaan dan efektivitas dalam mengelola perdagangan di pasar keuangan.
Inti dari strategi ini adalah sistem crossover dari jalur EMA cepat dan lambat.ema1
, ema2
danema3
Di antaranya,ema1
merupakan tren jangka pendek,ema2
merupakan tren jangka menengah, danema3
menunjukkan tren jangka panjang. Ketika tren jangka pendek melintasi di atas tren jangka menengah, sinyal beli dihasilkan. Ketika tren jangka pendek jatuh di bawah tren jangka menengah, sinyal jual dihasilkan.
Untuk menyaring sinyal palsu, strategi juga mendefinisikan dua kondisi tambahan:bodybar1 > bodybar2
danclose > entrybar
(untuk sinyal beli) atauclose < entrybar
(untuk sinyal jual). Ini memastikan bahwa dua candlestick baru-baru ini memenuhi arah sinyal, dan harga menerobos titik masuk untuk menghindari masuk yang berlebihan.
Selain itu, strategi ini menggabungkan indikator RSI untuk mengevaluasi kondisi overbought dan oversold. Area overbought dari RSI digunakan untuk mendefinisikan sinyal pembelian yang berlebihan, sementara area oversold digunakan untuk mendefinisikan sinyal jual yang berlebihan. Ini membantu menghindari sinyal yang salah di pasar yang terlalu panas dan terlalu dingin.
Keuntungan dari strategi ini meliputi:
Risiko dari strategi ini meliputi:
Strategi dapat dioptimalkan dalam aspek berikut:
Momentum Indicator Crossover Strategy mengintegrasikan kekuatan EMA dan RSI dan membentuk sinyal perdagangan berdasarkan crossover indikator. Strategi ini sederhana dan praktis, cocok untuk pemula, dan juga dapat diperluas dan dioptimalkan sesuai dengan kebutuhan aktual untuk meningkatkan kinerja strategi. Dengan manajemen risiko yang ketat, strategi ini menjanjikan hasil kelebihan yang stabil.
/*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