RSI CCI Williams%R Strategi Perdagangan Kuantitatif

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

img

Tinjauan Strategi

Strategi ini menggabungkan tiga indikator klasifikasi: RSI, CCI dan Williams%R untuk menghasilkan sinyal perdagangan yang efektif. Ini akan mengeluarkan sinyal beli atau jual ketika ketiga indikator secara bersamaan menampilkan sinyal overbought atau oversold. Dibandingkan dengan menggunakan satu indikator, strategi komposit ini menyaring lebih banyak sinyal palsu dan meningkatkan stabilitas.

Strategi ini disebut Three Trail Trawler Strategy. Three Trail mengacu pada kombinasi RSI, CCI dan Williams%R. Trawler menganalogikan bahwa strategi ini memancing peluang seperti trawler memancing.

Logika Strategi

Strategi ini terutama didasarkan pada indikator berikut untuk keputusan perdagangan:

  1. Indikator RSI menilai tingkat overbought/oversold
  2. Indikator CCI yang mengidentifikasi titik infleksi
  3. Indikator Williams%R selanjutnya mengkonfirmasi sinyal perdagangan

Ketika RSI di bawah 25, itu menandakan status oversold. Ketika RSI di atas 75, itu menandakan status overbought. Logika yang sama berlaku untuk parameter CCI dan Williams%R.

Ketika ketiga indikator secara bersamaan menampilkan sinyal beli, yaitu RSI < 25, CCI < -130, Williams %R < -85, strategi akan panjang. Ketika ketiga indikator secara bersamaan menampilkan sinyal jual, yaitu RSI > 75, CCI > 130, Williams %R > -15, strategi akan pendek.

Ini menghindari sinyal palsu dari satu indikator dan meningkatkan keandalan. Ini juga mengkonfigurasi stop loss dan take profit untuk mengontrol risiko dan pengembalian per perdagangan.

Keuntungan

  1. Kombo multi-indikator menyaring sinyal palsu
    Dengan menggabungkan RSI, CCI dan Williams%R, strategi ini menyaring beberapa sinyal palsu dari indikator individu, meningkatkan akurasi.

  2. Auto stop loss/profit takes mengelola risiko Fungsi stop loss dan take profit internal secara otomatis menetapkan harga keluar untuk setiap perdagangan, secara efektif membatasi kerugian dalam ambang batas yang dapat ditoleransi.

  3. Cocok untuk perdagangan jangka menengah Strategi ini bekerja lebih baik untuk perdagangan jangka menengah, dengan jelas mengidentifikasi titik infleksi jangka menengah melalui kombinasi indikator.

  4. Data backtest yang solid
    Strategi ini menggunakan bar 45 menit dari EUR/USD, pasangan forex utama dengan likuiditas dan data yang melimpah, mengurangi risiko overfit dari data yang tidak cukup.

Risiko

  1. Identifikasi tren jangka panjang yang lemah
    Strategi ini lebih bergantung pada sinyal yang bertentangan. Kemampuannya untuk mengukur dan mengikuti tren jangka panjang terbatas. Selama pasar satu arah jangka panjang, potensi keuntungan dibatasi.

  2. Hilangnya perubahan jangka pendek Dengan bar 45 menit, strategi melewatkan peluang menguntungkan dari perubahan harga jangka pendek yang lebih sering.

  3. Risiko sistemik
    Strategi ini terutama berlaku untuk EUR/USD. Pada saat krisis ekonomi yang parah yang mengguncang pasar forex global, aturan perdagangan dapat gagal, menimbulkan kerugian besar.

Bidang Peningkatan

  1. Menambahkan indikator yang mengikuti tren
    Cobalah untuk memasukkan metrik tren seperti MA, Boll dll untuk membantu pengenalan tren jangka panjang.

  2. Mengoptimalkan parameter stop loss/profit Backtest lebih banyak data historis untuk menilai dampak dari berbagai parameter stop loss / profit pada profitabilitas akhir, untuk menemukan pengaturan yang optimal.

  3. Memperluas produk
    Saat ini terutama berlaku untuk EUR / USD. Kita dapat mencoba untuk menyebarkannya pada pasangan mata uang utama lainnya seperti GBP, JPY, AUD untuk memeriksa stabilitas dan transferabilitas.

Kesimpulan

Three Trail Trawler Strategy mengidentifikasi titik pembalikan harga untuk sinyal overbought/oversold menggunakan kombinasi RSI, CCI dan Williams %R. Dibandingkan dengan metrik individu, pengaturan multi-indikator ini menyaring lebih banyak sinyal palsu dan meningkatkan akurasi. Fungsi stop loss / profit taking otomatis juga membantu membatasi risiko perdagangan. Secara keseluruhan, ini adalah strategi yang stabil yang cocok untuk perdagangan jangka menengah dan dapat menjadi modul yang berharga dalam sistem kuantitatif kita. Namun kita perlu memperhatikan kekurangan tren jangka panjang dan menangkap perubahan jangka pendek. Langkah-langkah penyetelan halus seperti menambahkan metrik tren, mengoptimalkan parameter keluar dan memperluas produk akan meningkatkan strategi sebagai keuntungan kuantitatif yang stabil untuk sistem mesin 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 banyak