RSI CCI Williams%R Strategi Perdagangan Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-01-24 11:18:08
Tag:

img

Ringkasan Strategi

Strategi ini menggabungkan tiga penunjuk klasifikasi: RSI, CCI dan Williams%R untuk menjana isyarat perdagangan yang berkesan. Ia akan mengeluarkan isyarat beli atau jual apabila ketiga-tiga penunjuk pada masa yang sama memaparkan isyarat overbought atau oversold. Berbanding dengan menggunakan satu petunjuk, strategi komposit ini menapis lebih banyak isyarat palsu dan meningkatkan kestabilan.

Strategi ini dinamakan Three Trail Trawler Strategy. Three Trail merujuk kepada gabungan RSI, CCI dan Williams%R. Trawler menyamakan bahawa strategi ini menjelajah peluang seperti trawler memancing.

Logika Strategi

Strategi ini terutamanya bergantung kepada penunjuk berikut untuk keputusan perdagangan:

  1. Indikator RSI menilai tahap terlalu banyak beli/lebih banyak jual
  2. Indikator CCI yang mengenal pasti titik belok
  3. Penunjuk Williams%R mengesahkan isyarat dagangan

Apabila RSI di bawah 25, ia menandakan status oversold. Apabila RSI di atas 75, ia menandakan status overbought. Logik yang sama berlaku untuk parameter CCI dan Williams%R.

Apabila ketiga-tiga penunjuk secara serentak memaparkan isyarat beli, iaitu RSI < 25, CCI < -130, Williams %R < -85, strategi akan panjang. Apabila ketiga-tiga penunjuk secara serentak memaparkan isyarat jual, iaitu RSI > 75, CCI > 130, Williams %R > -15, strategi akan pendek.

Ini mengelakkan isyarat palsu dari satu penunjuk dan meningkatkan kebolehpercayaan. Ia juga mengkonfigurasi stop loss dan mengambil keuntungan untuk mengawal risiko dan pulangan setiap perdagangan.

Kelebihan

  1. Kombo multi-penunjuk menapis isyarat palsu
    Dengan menggabungkan RSI, CCI dan Williams%R, strategi menapis beberapa isyarat palsu dari penunjuk individu, meningkatkan ketepatan.

  2. Auto berhenti kerugian / keuntungan mengambil menguruskan risiko Fungsi stop loss dan mengambil keuntungan terbina dalam menetapkan harga keluar secara automatik untuk setiap perdagangan, dengan berkesan membatasi kerugian dalam ambang yang boleh diterima.

  3. Perdagangan jangka menengah Strategi ini berfungsi dengan lebih baik untuk perdagangan jangka menengah, dengan jelas mengenal pasti titik perubahan jangka menengah melalui kombinasi penunjuk.

  4. Data backtest yang kukuh
    Strategi ini menggunakan bar 45 minit EUR/USD, pasangan mata wang asing utama dengan kecairan dan data yang banyak, mengurangkan risiko overfit daripada data yang tidak mencukupi.

Risiko

  1. Pengesanan trend jangka panjang yang lemah
    Strategi ini lebih bergantung pada isyarat yang bertentangan. Kemampuannya untuk mengukur dan mengikuti trend jangka panjang adalah terhad. Semasa pasaran satu hala yang tahan lama, potensi keuntungan terhad.

  2. Kekurangan turun naik jangka pendek Dengan bar 45 minit, strategi kehilangan peluang yang menguntungkan daripada perubahan harga jangka pendek yang lebih kerap.

  3. Risiko sistemik
    Strategi ini terutama berlaku untuk EUR / USD. Pada masa krisis ekonomi yang teruk yang mengguncang pasaran forex global, peraturan dagangnya boleh gagal, menyebabkan kerugian besar.

Kawasan Peningkatan

  1. Menambah penunjuk mengikut trend
    Cuba menggabungkan metrik trend seperti MA, Boll dan lain-lain untuk membantu pengenalan trend jangka panjang.

  2. Mengoptimumkan parameter Stop Loss/Profit Backtest lebih banyak data sejarah untuk menilai kesan pelbagai parameter stop loss / keuntungan pada keuntungan akhir, untuk mencari tetapan yang optimum.

  3. Peningkatan produk
    Pada masa ini terutamanya berlaku untuk EUR / USD. Kita boleh cuba untuk menyebarkannya pada pasangan mata wang utama lain seperti GBP, JPY, AUD untuk memeriksa kestabilan dan pemindahan.

Kesimpulan

Three Trail Trawler Strategy mengenal pasti titik pembalikan harga untuk isyarat overbought/oversold menggunakan gabungan RSI, CCI dan Williams %R. Berbanding dengan metrik individu, persediaan multi-indikator ini menapis lebih banyak isyarat palsu dan meningkatkan ketepatan. Fungsi stop loss / mengambil keuntungan automatik juga membantu cap risiko perdagangan. Secara keseluruhan, ia adalah strategi yang stabil yang sesuai untuk perdagangan jangka menengah dan boleh menjadi modul yang berharga dalam sistem kuantitatif kita. Namun kita perlu memperhatikan kekurangan trend jangka panjang dan menangkap turun naik jangka pendek. Langkah-langkah penyesuaian halus seperti menambah metrik trend, mengoptimumkan parameter keluar dan mengembangkan produk akan meningkatkan strategi sebagai keuntungan yang mantap untuk sistem enjin kuantitatif kita.


/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)

Lebih lanjut