Strategi perdagangan berdasarkan penunjuk RSI dan MACD


Tarikh penciptaan: 2024-01-31 16:07:31 Akhirnya diubah suai: 2024-01-31 16:07:31
Salin: 0 Bilangan klik: 919
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan penunjuk RSI dan MACD

Gambaran keseluruhan

Strategi ini menggabungkan indeks relatif lemah (RSI) dan penunjuk agregat purata bergerak (MACD) untuk mengenal pasti peluang perdagangan BTC. Berdaganglah apabila RSI lebih rendah daripada 30 dan garis MACD lebih rendah daripada garis isyarat dan histogram MACD lebih kecil daripada 100 dan berdaganglah apabila RSI lebih tinggi daripada 80 dan garis MACD lebih tinggi daripada garis isyarat dan histogram MACD lebih besar daripada 250.

Prinsip Strategi

  1. Menggunakan RSI untuk menentukan sama ada pasaran terlalu jual atau terlalu beli. RSI di bawah 30 dianggap sebagai isyarat terlalu jual dan di atas 80 dianggap sebagai isyarat terlalu beli.

  2. Menggunakan MACD garis MACD dan garis isyarat garpu emas untuk menentukan masa membeli dan menjual. Apabila MACD melalui garis isyarat, ia adalah isyarat membeli; apabila MACD melalui garis isyarat, ia adalah isyarat menjual.

  3. Gabungan isyarat RSI dan MACD membentuk syarat kemasukan untuk strategi tersebut.

  4. Menggunakan Tracking Stop untuk mengunci keuntungan, Tracking Stop dikemas kini secara real-time mengikut kedudukan dan kerugian, dapat mengawal risiko dengan berkesan.

Analisis kelebihan

  1. Strategi ini menggabungkan RSI dan MACD untuk menyaring isyarat palsu secara berkesan.

  2. Indeks RSI dapat menilai fenomena pasaran yang terlalu banyak dibeli dan dijual. Indeks MACD dapat menangkap perubahan trend. Kedua-duanya berfungsi dengan baik.

  3. Menggunakan Tracking Stop boleh menghentikan kerugian mengikut keadaan pasaran dalam masa nyata, memaksimumkan keuntungan dan mengawal risiko.

  4. Lebih sedikit parameter strategi, lebih mudah untuk dilaksanakan.

Analisis risiko

  1. Strategi varieti tunggal, risiko sistemik yang wujud dalam varieti itu sendiri.

  2. Penunjuk RSI mungkin menghasilkan isyarat palsu ketika pasaran dalam julat dan rebound di bawah. Penunjuk MACD juga mungkin menghasilkan isyarat salah dalam keadaan goyah.

  3. Tracking Stop Loss boleh ditembusi dalam keadaan yang besar dan tidak dapat mengawal risiko.

  4. Tetapan parameter yang tidak betul boleh menyebabkan transaksi yang kerap atau kehilangan borang.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk menggunakan indikator lain seperti Brin Line, KD dan lain-lain untuk memberi isyarat perdagangan.

  2. Ia boleh mengkaji hubungan antara varieti yang berbeza dan membina strategi arbitraj pelbagai varieti.

  3. Anda boleh mengoptimumkan strategi berhenti kerugian, seperti berhenti tepat pada masanya, berhenti purata dan sebagainya.

  4. Parameter yang dioptimumkan secara bijak boleh digabungkan dengan pembelajaran mesin dan lain-lain.

ringkaskan

Strategi ini adalah satu set strategi trend pengesanan berdasarkan RSI dan MACD indikator untuk menilai overbought dan oversold. Ia menggabungkan kelebihan indikator teknikal dengan berkesan, dapat menangkap perubahan trend di pasaran.

Kod sumber strategi
/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BTC/USDT RSI and MACD Strategy", overlay = true)

// Define the RSI period
rsiPeriod = input(14, "RSI Period")

// Calculate the RSI
rsi = ta.rsi(close, rsiPeriod)

// Define the MACD parameters
macdShort = input(12, "MACD Short Period")
macdLong = input(26, "MACD Long Period")
macdSignal = input(9, "MACD Signal Period")

// Calculate the MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)

// Define the trailing stop level
trailing_stop_loss_factor = input.float(2.50, "Trailing Stop Loss Factor", step = 0.01)

// Define the entry and exit conditions
enterLong = ta.crossover(rsi, 30) and macdLine < signalLine and macdLine < -100
enterShort = ta.crossunder(rsi, 83) and macdLine > signalLine and macdLine > 250

// Submit the orders
if (enterLong)
    strategy.entry("Long", strategy.long)
if (enterShort)
    strategy.entry("Short", strategy.short)

// Trailing Stop Loss
longTrailingStopLoss = strategy.position_avg_price * (1 - trailing_stop_loss_factor / 100)
shortTrailingStopLoss = strategy.position_avg_price * (1 + trailing_stop_loss_factor / 100)
if strategy.position_size > 0 
    strategy.exit("Exit Long", "Long", stop  = longTrailingStopLoss)
if strategy.position_size < 0 
    strategy.exit("Exit Short", "Short", stop = shortTrailingStopLoss)

// Plot the indicators
plot(rsi, "RSI", color=color.blue)
hline(20, "RSI Lower Level", color=color.green)
hline(80, "RSI Upper Level", color=color.red)
plot(macdLine - signalLine, "MACD Histogram", color=color.red, style=plot.style_histogram)
hline(0, "Zero", color=color.gray)