Strategi Perdagangan RSI dan Fibonacci Retracement


Tanggal Pembuatan: 2023-12-27 16:49:52 Akhirnya memodifikasi: 2023-12-27 16:49:52
menyalin: 3 Jumlah klik: 1189
1
fokus pada
1623
Pengikut

Strategi Perdagangan RSI dan Fibonacci Retracement

Ringkasan

Artikel ini terutama menggambarkan strategi perdagangan yang menggabungkan indeks yang relatif kuat (RSI) dengan titik balik Fibonacci. Strategi ini pertama-tama menghitung titik balik Fibonacci yang penting berdasarkan dinamika harga historis dalam periode tertentu, kemudian menggabungkan indikator RSI untuk menentukan apakah pasar telah membeli atau menjual, dan mengirimkan sinyal perdagangan di sekitar titik balik.

Prinsip Strategi

Strategi ini didasarkan pada prinsip-prinsip berikut:

  1. Menggunakan data harga untuk periode tertentu (misalnya, 200 garis K) untuk menghitung nilai rata-rata harga untuk periode tersebut, perbedaan standar, dan titik balik Fibonacci kunci (misalnya, 0,764);

  2. Ketika harga mendekati posisi berbalik ke atas atau ke bawah, pertimbangkan apakah ada overbought atau oversold di area berbalik tersebut dengan menggunakan indikator RSI.

  3. Jika indikator RSI menunjukkan sinyal overbought atau oversold, maka sinyal overdo atau shorting akan dikirimkan di dekat posisi berbalik;

  4. Anda juga dapat mengatur stop loss dan stop loss level, dan menutup posisi jika melebihi harga yang ditetapkan atau memicu kondisi stop loss.

Ini adalah proses dasar dari strategi ini untuk menentukan waktu perdagangan.

Analisis Keunggulan Strategi

Strategi kombinasi ini memiliki keuntungan sebagai berikut dibandingkan dengan perdagangan menggunakan RSI atau Fibonacci secara tunggal:

  1. Filter ganda indikator, dapat mengurangi sinyal palsu dan meningkatkan kualitas sinyal;

  2. Perdagangan berbalik di dekat titik balik adalah metode analisis teknis yang lebih klasik.

  3. Dengan pengaturan Stop Loss, Anda dapat secara efektif mengontrol kerugian maksimum dalam satu transaksi.

  4. Dapat dioptimalkan dengan parameter, menyesuaikan parameter indikator dan pengaturan putar balik untuk menyesuaikan dengan siklus dan varietas yang berbeda.

Analisis Risiko Strategi

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Probabilitas rebound setelah mendekati titik pivotal tidak 100%, perlu digabungkan dengan entitas harga;

  2. RSI siklus tunggal dapat menghasilkan sinyal palsu yang mematikan, dan dapat dipertimbangkan untuk verifikasi siklus ganda;

  3. Stop loss setting terlalu longgar dan dapat meningkatkan kerugian;

  4. Stop loss dapat diatasi dengan harga yang sangat berfluktuasi dan perlu dipertimbangkan untuk melonggarkan stop loss.

Risiko di atas dapat dikontrol dengan cara seperti penyesuaian parameter, penggabungan indikator yang optimal.

Arah optimasi strategi

Strategi ini dapat dioptimalkan lebih lanjut dengan:

  1. Meningkatkan verifikasi indikator volume transaksi untuk menghindari penembusan palsu dalam jumlah rendah;

  2. Mengingat indikator Brin Belt, sinyal akan dikirim saat benturan pita;

  3. Membangun model pembelajaran mesin atau jaringan saraf yang secara otomatis mengidentifikasi peluang perdagangan berkualitas tinggi;

  4. Menggunakan algoritma genetik dan metode lainnya untuk mengoptimalkan parameter secara otomatis, menyesuaikan stop loss.

Meringkaskan

Artikel ini menjelaskan secara rinci strategi perdagangan kuantitatif yang menggabungkan RSI dan Fibonacci retracement untuk menilai. Strategi ini menggabungkan analisis indikator ganda dengan strategi teknis klasik untuk meningkatkan kualitas sinyal perdagangan dengan asumsi pengendalian risiko. Efek strategi dapat ditingkatkan lebih lanjut dengan penyesuaian parameter dan optimasi model.

Kode Sumber Strategi
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Gab Fib  + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4)

// Inputs
timeFilter = year >= 2000
    // Stop Loss 
stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
sl_long = close * (1-stop_loss)
sl_short = close * (1+stop_loss)


// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long or sl_long
closeShort = low < exit_short or sl_short


//Rounding to MinTick value
roundtargetUp = round_to_mintick(targetUp)
roundtargetDown = round_to_mintick(targetDown)
roundsllong = round_to_mintick(sl_long)
roundslshort = round_to_mintick(sl_short)

// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong))
    strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close,  alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort))

    // Exit Orders
    strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker))
    strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))