Strategi Crossover Indikator Momentum adalah pendekatan dagangan berdasarkan gabungan Isyarat Purata Bergerak Eksponensial (EMA) dan Indeks Kekuatan Relatif (RSI).
Inti strategi ini adalah sistem persilangan garis EMA yang cepat dan perlahan.ema1
, ema2
danema3
Antara mereka,ema1
merupakan trend jangka pendek,ema2
mewakili trend jangka sederhana, danema3
merupakan trend jangka panjang. Apabila trend jangka pendek melintasi trend jangka sederhana, isyarat beli dihasilkan. Apabila trend jangka pendek jatuh di bawah trend jangka sederhana, isyarat jual dihasilkan.
Untuk menapis isyarat palsu, strategi juga menentukan dua syarat tambahan:bodybar1 > bodybar2
danclose > entrybar
(untuk isyarat beli) atauclose < entrybar
(untuk isyarat jual). Ini memastikan bahawa dua candlestick baru-baru ini memenuhi arah isyarat, dan harga memecahkan titik kemasukan untuk mengelakkan kemasukan berlebihan.
Di samping itu, strategi ini menggabungkan penunjuk RSI untuk menilai keadaan overbought dan oversold. Kawasan overbought RSI digunakan untuk menentukan isyarat beli berlebihan, sementara kawasan oversold digunakan untuk menentukan isyarat jual berlebihan. Ini membantu mengelakkan isyarat yang salah di pasaran yang terlalu panas dan terlalu sejuk.
Kelebihan strategi ini termasuk:
Risiko strategi ini termasuk:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Strategy Momentum Indicator Crossover mengintegrasikan kekuatan EMA dan RSI dan membentuk isyarat dagangan berdasarkan crossover penunjuk. Strategi ini mudah dan praktikal, sesuai untuk pemula, dan juga boleh diperluaskan dan dioptimumkan mengikut keperluan sebenar untuk meningkatkan prestasi strategi. Dengan pengurusan risiko yang ketat, strategi ini menjanjikan pulangan berlebihan 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