Berdasarkan strategi silang RSI dan MACD


Tarikh penciptaan: 2024-03-15 15:08:39 Akhirnya diubah suai: 2024-03-15 15:08:39
Salin: 0 Bilangan klik: 895
1
fokus pada
1617
Pengikut

Berdasarkan strategi silang RSI dan MACD

Gambaran Keseluruhan Strategi

RSI dan MACD crossover adalah strategi perdagangan berdasarkan indeks relatif kuat lemah (RSI) dan penunjuk penyebaran runcit rata-rata bergerak (MACD). Strategi ini menggunakan isyarat silang RSI dan MACD untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Isyarat membeli dihasilkan apabila RSI menembusi ke atas dari kawasan oversold dan apabila MACD columnar dari negatif. Isyarat jual dihasilkan apabila RSI menembusi ke bawah dari kawasan oversold dan apabila MACD columnar dari negatif.

Strategi ini juga memperkenalkan dua rata-rata bergerak indeks ((EMA) sebagai penanda pengesahan tambahan. Persaingan antara EMA yang lebih pendek (seperti EMA 10 hari) dan EMA yang lebih lama (seperti EMA 20 hari) juga boleh digunakan untuk mengesahkan isyarat yang dihasilkan oleh RSI dan MACD. Isyarat pembelian lanjut disahkan apabila harga berada di atas dua EMA; Isyarat jual lanjut disahkan apabila harga berada di bawah dua EMA.

Prinsip Strategi

  1. Mengira RSI: Mengira nilai RSI menggunakan fungsi ta.rsi ((() dari perpustakaan Ta-Lib. RSI adalah penunjuk dinamik yang digunakan untuk mengukur besarnya perubahan harga dalam tempoh masa yang diberikan.

  2. Hitung indikator MACD: Menggunakan fungsi ta.macd (() dari perpustakaan Ta-Lib untuk mengira garis MACD, garis isyarat dan carta bertiang. MACD adalah indikator trend-following yang diperolehi daripada perbezaan dua purata bergerak.

  3. Mengira EMA: Menggunakan fungsi ta.ema () dari perpustakaan Ta-Lib untuk mengira EMA 10 hari dan EMA 20 hari. EMA adalah purata bergerak bertimbangan yang lebih sensitif terhadap perubahan harga terkini.

  4. Tentukan syarat beli: Apabila RSI melangkaui ke atas dari kawasan oversold (di bawah 40 secara lalai) dan apabila carta MACD berbalik dari negatif, ia menghasilkan isyarat beli. Ini menunjukkan bahawa harga mungkin akan naik.

  5. Syarat jual didefinisikan: apabila RSI melangkau ke bawah dari kawasan overbought (default 60 ke atas) dan apabila MACD column graph bertukar positif ke negatif, ia menghasilkan isyarat jual. Ini menunjukkan bahawa harga mungkin akan turun.

  6. Menggunakan EMA sebagai pengesahan: Apabila harga berada di atas EMA 10 dan 20 hari, isyarat beli lebih lanjut disahkan; Apabila harga berada di bawah EMA 10 dan 20 hari, isyarat jual lebih lanjut disahkan.

  7. Mencatatkan isyarat: isyarat beli dengan tanda segitiga ke atas hijau pada carta, isyarat jual dengan tanda segitiga ke bawah merah.

Kelebihan Strategik

  1. Gabungan pelbagai petunjuk: Strategi ini menggabungkan tiga petunjuk teknikal yang biasa digunakan, RSI, MACD dan EMA, untuk memberikan isyarat perdagangan yang lebih dipercayai.

  2. Pengesanan Trend: Indeks MACD membantu mengenal pasti perubahan trend harga, membolehkan strategi menyesuaikan diri dengan keadaan pasaran yang berbeza.

  3. Pengesahan pergerakan: RSI menyediakan pengesahan pergerakan harga yang membantu mengecualikan isyarat palsu.

  4. Mudah digunakan: Strategi menggunakan pengiraan petunjuk dan definisi isyarat yang mudah, mudah difahami dan dilaksanakan.

  5. Kebolehan beradaptasi: Dengan menyesuaikan parameter RSI dan MACD, anda boleh mengoptimumkan strategi untuk menyesuaikan diri dengan pasaran dan jenis perdagangan yang berbeza.

Risiko Strategik

  1. Sensitiviti parameter: prestasi strategi mungkin lebih sensitif terhadap pilihan parameter RSI dan MACD. Parameter yang tidak sesuai boleh menyebabkan penurunan kualiti isyarat.

  2. Penangguhan isyarat: Oleh kerana MACD adalah berdasarkan pengiraan purata bergerak, mungkin terdapat beberapa kelewatan isyarat.

  3. Pasaran goyah: Dalam keadaan pasaran goyah, RSI dan MACD mungkin menghasilkan isyarat silang yang kerap, yang menyebabkan perdagangan berlebihan dan kehilangan dana.

  4. Kurangnya penutupan: Strategi ini tidak mempunyai syarat penutupan yang jelas dan mungkin menanggung risiko yang lebih besar semasa turun naik harga yang teruk.

Arah pengoptimuman

  1. Memperkenalkan penapis trend: sebelum menghasilkan isyarat membeli atau menjual, pastikan harga berada dalam trend naik atau turun yang jelas. Ini boleh dilakukan dengan menilai arah purata bergerak jangka panjang atau menggunakan penunjuk trend.

  2. Pilihan parameter pengoptimuman: mencari kombinasi parameter RSI dan MACD yang terbaik untuk meningkatkan kebolehpercayaan dan ketepatan isyarat dengan mengkaji semula dan mengoptimumkan data sejarah.

  3. Menambah Stop Loss dan Stop Stop: Tetapkan tahap Stop Loss dan Stop Stop yang sesuai untuk setiap perdagangan untuk mengehadkan potensi kerugian dan melindungi keuntungan. Anda boleh menggunakan kaedah seperti peratusan atau ATR untuk menentukan kedudukan Stop Loss dan Stop Stop.

  4. Pertimbangkan jumlah urus niaga: memasukkan indikator jumlah urus niaga ke dalam strategi untuk mengesahkan keberkesanan perubahan harga. Peningkatan jumlah urus niaga dapat mengesahkan kekuatan trend, sementara penurunan jumlah urus niaga mungkin menunjukkan bahawa trend akan berbalik.

  5. Gabungan dengan Indikator Lain: Pertimbangkan untuk memasukkan Indikator Teknikal Lain seperti Brinband, Indikator Random, dan sebagainya ke dalam strategi untuk memberikan pengesahan dan penapisan tambahan.

ringkaskan

RSI dan MACD crossover strategi adalah strategi perdagangan yang menggabungkan indeks yang agak kuat dan lemah, rata-rata bergerak yang berdekatan dengan penunjuk penyebaran dan rata-rata bergerak indeks. Strategi ini menghasilkan isyarat beli dan jual dengan mengenal pasti RSI dan MACD crossover, dan menggunakan EMA sebagai pengesahan tambahan.

Kelebihan strategi ini ialah ia menggabungkan pelbagai petunjuk yang biasa digunakan, dapat menyesuaikan diri dengan keadaan pasaran yang berbeza, dan mudah difahami dan dilaksanakan. Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko, seperti kepekaan parameter, kelewatan isyarat, dan kekurangan peraturan berhenti yang jelas.

Untuk memperbaiki strategi, anda boleh mempertimbangkan untuk memperkenalkan penapis trend, memilih parameter yang optimum, menambah hentian dan hentian, mempertimbangkan jumlah perdagangan, dan menggabungkannya dengan petunjuk teknikal lain. Pengoptimuman ini dapat meningkatkan kebolehpercayaan, ketepatan, dan keupayaan pengurusan risiko strategi.

Secara keseluruhan, strategi persilangan RSI dan MACD menyediakan kerangka perdagangan berdasarkan momentum dan trend. Dengan pengoptimuman dan pengurusan risiko yang betul, strategi ini boleh menjadi alat yang berkesan untuk mengenal pasti peluang perdagangan yang berpotensi. Walau bagaimanapun, dalam aplikasi praktikal, pedagang perlu menyesuaikan dan menguji strategi mengikut keutamaan risiko dan matlamat perdagangan mereka sendiri untuk memastikan ia sesuai dengan gaya perdagangan dan persekitaran pasaran mereka sendiri.

Kod sumber strategi
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('RSIand macd bull and bear', overlay=true)

// Input parameters
length = input.int(14, title='RSI Length', minval=1)
overbought = input.int(60, title='RSI Overbought Level', minval=0, maxval=100)
oversold = input.int(40, title='RSI Oversold Level', minval=0, maxval=100)

ema30_length = input(10, title='EMA RSI')
ema50_length = input(20, title='EMA MACD')

// Calculate EMAs

ema30 = ta.ema(close, ema30_length)
ema50 = ta.ema(close, ema50_length)

// Calculate RSI
rsiValue = ta.rsi(close, length)

// Calculate MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)

var float buyPrice = na

// Buy condition: EMA 3 crosses above EMA 30 and price is above EMA 50
buyCondition =  rsiValue > oversold and ta.crossover(hist,0) or ta.crossover(rsiValue,oversold) and hist>0
if (buyCondition)
    // buyPrice := close
    strategy.entry('Buy', strategy.long)

// Exit long position when close is below EMA30 and below the low of the previous 3 candles after the buy entry0
//exitLongCondition = close < ema30 and close < ta.lowest(low, 3) and close < buyPrice
//if (exitLongCondition)
  //  strategy.close('BuyExit')

// Sell condition: EMA 3 crosses below EMA 30 and price is below EMA 50
sellCondition = rsiValue < overbought and ta.crossunder(hist,0) or ta.crossunder(rsiValue, overbought) and hist<0
if (sellCondition)
    strategy.entry('Sell', strategy.short)

// Exit short position when close is above EMA30 and above the high of the previous 3 candles after the sell entry
//exitShortCondition = close > ema30 and close > ta.highest(high, 3)
//if (exitShortCondition)
  //  strategy.close('SellExit')

// Plot EMAs on the chart


// Change color of EMA 50 based on MACD histogram
ema50Color = hist > 0 ? color.new(color.green, 0) :  hist<0 ? color.new(color.red, 0) : color.new(color.black, 0)
plot(ema50, color=ema50Color, title='EMA 50 Colored')

// Change color of EMA 30 based on RSI trend
ema30Color = rsiValue > oversold ? color.new(color.green, 0) : rsiValue<overbought ? color.new(color.red, 0) : color.new(color.black, 0)
plot(ema30, color=ema30Color, title='EMA 30 Colored')

// Highlight Buy and Sell signals on the chart
// bgcolor(buyCondition ? color.new(color.green, 90) : na)
// bgcolor(sellCondition ? color.new(color.red, 90) : na)

// Plotting Buy and Sell Signals on the Chart until strategy exit
barcolor(strategy.position_size > 0 and rsiValue > overbought ? color.new(color.yellow, 0) : strategy.position_size < 0 and rsiValue < oversold ? color.new(color.black, 0) : na)
// plotshape(buyCondition,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green,textcolor = color.white, transp = 0, size = size.tiny)
// plotshape(sellCondition, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,textcolor = color.white, transp = 0, size = size.tiny)

plotshape(buyCondition, color=color.green, style=shape.triangleup, size=size.small, location=location.belowbar, text="Buy")
plotshape(sellCondition, color=color.red, style=shape.triangledown, size=size.small, location=location.abovebar, text="Sell")