Transformasi Stokastik Fisher Menghentikan Sementara Pembalikan Strategi Kuantitatif Indikator STOCH


Tanggal Pembuatan: 2024-01-02 11:14:12 Akhirnya memodifikasi: 2024-01-02 11:14:12
menyalin: 0 Jumlah klik: 656
1
fokus pada
1621
Pengikut

Transformasi Stokastik Fisher Menghentikan Sementara Pembalikan Strategi Kuantitatif Indikator STOCH

Ringkasan

Gagasan inti dari strategi ini adalah untuk membuat keputusan pembelian dan penjualan dengan kombinasi konversi Fisher acak dan indikator STOCH reversal yang berhenti sementara. Strategi ini cocok untuk operasi jangka pendek dan menengah, dan dapat menghasilkan keuntungan yang baik dalam kondisi yang stabil.

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator STOCH standar, kemudian melakukan transformasi Fisher ke INVLine. Ketika INVLine melintasi garis batas bawah dll, menghasilkan sinyal beli; Ketika INVLine melintasi garis batas atas ul, menghasilkan sinyal jual. Strategi ini juga menyiapkan mekanisme tracking stop loss untuk mengunci keuntungan dan mengurangi kerugian.

Secara khusus, logika inti dari strategi ini adalah:

  1. Menghitung Indeks STOCH: Menggunakan rumus standar untuk menghitung nilai STOCH cepat dari saham
  2. Transformasi Fisher: melakukan transformasi Fisher pada nilai STOCH, untuk mendapatkan INVLine
  3. Menciptakan sinyal transaksi: Beli di INVLine saat melewati dl line, jual saat melewati ul line
  4. Tracking Stop Loss: Mengaktifkan mekanisme tracking stop sementara untuk menghentikan kerugian tepat waktu

Analisis Keunggulan

Strategi ini memiliki keuntungan utama sebagai berikut:

  1. Transformasi Fisher secara efektif meningkatkan sensitivitas indikator STOCH, sehingga lebih cepat menemukan peluang untuk membalikkan tren
  2. Mekanisme penghentian pelacakan yang efektif untuk mengontrol risiko dan mengunci keuntungan
  3. Cocok untuk operasi jangka pendek dan menengah, terutama yang baru-baru ini lebih populer dengan transaksi kuantitatif cepat
  4. Performa lebih baik dalam kondisi stabil, pendapatan stabil

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Indeks STOCH mudah menghasilkan sinyal palsu yang dapat menyebabkan perdagangan yang tidak perlu
  2. Transformasi Fisher juga memperbesar kebisingan indikator STOCH, membawa lebih banyak sinyal palsu
  3. Dalam situasi yang bergejolak, mudah untuk berhenti dan keluar, tetapi tidak dapat terus menghasilkan keuntungan.
  4. Periode kepemilikan yang lebih pendek diperlukan untuk mendapatkan Alpha, tidak cocok untuk kepemilikan yang terlalu lama

Untuk mengurangi risiko ini, pertimbangkan untuk mengoptimalkan beberapa hal berikut:

  1. Menyesuaikan parameter STOCH, meratakan kurva, mengurangi kebisingan
  2. Mengoptimalkan posisi margin dan mengurangi kemungkinan kesalahan transaksi
  3. Meningkatkan kondisi penyaringan untuk menghindari perdagangan di tengah-tengah gejolak
  4. Menyesuaikan durasi kepemilikan dengan siklus operasi

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Optimalkan parameter transformasi Fisher, smooth INVLine
  2. Mengoptimalkan periode panjang indikator STOCH, mencari kombinasi parameter yang optimal
  3. Optimalkan parameter marginal untuk mengurangi kemungkinan kesalahan transaksi
  4. Meningkatkan konfirmasi harga untuk menghindari tracking loss yang tidak perlu
  5. Meningkatkan penyaringan intraday dan mengurangi sinyal palsu di pasar yang bergoyang
  6. Menggunakan indikator tren untuk menghindari perdagangan berlawanan arah

Meringkaskan

Strategi ini menggabungkan penggunaan random Fisher transformasi dan indikator STOCH, untuk mencapai strategi kuantitatif garis pendek yang sederhana dan praktis. Keuntungannya adalah frekuensi operasi yang tinggi, cocok untuk perdagangan kuantitatif frekuensi tinggi yang populer akhir-akhir ini.

Kode Sumber Strategi
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//INPUTS
stochlength=input(19, "STOCH Length")
wmalength=input(4, title="Smooth")
ul = input(0.64,step=0.01, title="UP line")
dl = input(-0.62,step=0.01, title="DOWN line")
uts = input(true, title="Use trailing stop")
tsi = input(title="trailing stop actiation pips",defval=245)                                                                       
tso = input(title="trailing stop offset pips",defval=20)

//CALCULATIONS
v1=0.1*(stoch(close, high, low, stochlength)-50)
v2=wma(v1, wmalength)
INVLine=(exp(2*v2)-1)/(exp(2*v2)+1)

//CONDITIONS
sell = crossunder(INVLine,ul)? 1 : 0
buy = crossover(INVLine,dl)? 1 : 0

//PLOTS
plot(INVLine, color=aqua, linewidth=1, title="STOCH")
hline(ul, color=red)
hline(dl, color=green)
bgcolor(sell==1? red : na, transp=30, title = "sell signal")
bgcolor(buy==1? lime : na, transp=30, title = "buy signal")
plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)

//STRATEGY
strategy.entry("BUY", strategy.long, when = buy==1)
strategy.entry("SELL", strategy.short, when = sell==1)

if  (uts)
    strategy.entry("BUY", strategy.long, when = buy)
    strategy.entry("SELL", strategy.short, when = sell)
    strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso)
    strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)