Transformasi Stochastic Fisher Menghentikan Tempoh Pembalikan Penunjuk STOCH Strategi Kuantitatif


Tarikh penciptaan: 2024-01-02 11:14:12 Akhirnya diubah suai: 2024-01-02 11:14:12
Salin: 0 Bilangan klik: 656
1
fokus pada
1621
Pengikut

Transformasi Stochastic Fisher Menghentikan Tempoh Pembalikan Penunjuk STOCH Strategi Kuantitatif

Gambaran keseluruhan

Idea utama strategi ini adalah untuk membuat keputusan membeli dan menjual dengan menggabungkan perubahan Fisher secara rawak dan penangguhan sementara untuk membalikkan indikator STOCH. Strategi ini sesuai untuk operasi jangka pendek dan sederhana, dan dapat memperoleh keuntungan yang baik dalam keadaan yang stabil.

Prinsip Strategi

Strategi ini mulakan dengan mengira indikator STOCH standard dan kemudian mengubahnya menjadi INVLine. Apabila INVLine melintasi garis bawah dl, ia menghasilkan isyarat beli; apabila INVLine melintasi garis bawah ul, ia menghasilkan isyarat jual. Strategi ini juga menyediakan mekanisme tracking stop loss untuk mengunci keuntungan dan mengurangkan kerugian.

Secara khusus, logik utama strategi ini ialah:

  1. Hitung Indeks STOCH: Menggunakan formula standard untuk mengira nilai STOCH pantas saham
  2. Penukaran Fisher: penukaran Fisher kepada nilai STOCH untuk mendapatkan INVLine
  3. Menjana isyarat transaksi: Beli di atas INVLine semasa melintasi garis dl, dan Jual di bawah garis ul
  4. Hentikan kehilangan pengesanan: mengaktifkan mekanisme berhenti pengesanan sementara untuk menghentikan kerugian tepat pada masanya

Analisis kelebihan

Strategi ini mempunyai kelebihan utama:

  1. Fisher transformasi berkesan meningkatkan kepekaan STOCH untuk melihat peluang untuk membalikkan trend lebih awal
  2. Mekanisme penghentian pengesanan yang berkesan untuk mengawal risiko dan mengunci keuntungan
  3. Sesuai untuk operasi jangka pendek dan sederhana, terutamanya yang popular baru-baru ini, transaksi kuantitatif cepat
  4. Performa lebih baik dalam keadaan stabil, pendapatan stabil

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Indeks STOCH mudah menghasilkan isyarat palsu yang boleh menyebabkan perdagangan yang tidak perlu
  2. Fisher transformasi juga akan meningkatkan bunyi STOCH, membawa lebih banyak isyarat palsu
  3. Keluar mudah dalam keadaan yang tidak menentu, tidak boleh terus mendapat keuntungan
  4. Peruntukan jangka masa yang lebih pendek untuk Alpha, tidak sesuai untuk jangka masa yang lama

Untuk mengurangkan risiko ini, anda boleh mempertimbangkan untuk mengoptimumkan beberapa aspek berikut:

  1. Sesuaikan parameter STOCH, licinkan keluk, mengurangkan bunyi
  2. Mengoptimumkan kedudukan margin dan mengurangkan kemungkinan perdagangan yang salah
  3. Meningkatkan syarat penapisan untuk mengelakkan dagangan di dalam keadaan yang tidak menentu
  4. Menyesuaikan jangka masa pegangan dengan kitaran operasi

Arah pengoptimuman

Strategi ini boleh dioptimumkan dari beberapa arah:

  1. Mengoptimumkan parameter transformasi Fisher, meluruskan keluk INVLine
  2. Optimumkan tempoh panjang STOCH untuk mencari kombinasi parameter yang terbaik
  3. Optimumkan parameter nilai rendah untuk mengurangkan kemungkinan perdagangan yang salah
  4. Meningkatkan pengesahan kuantiti untuk mengelakkan kehilangan pengesanan yang tidak perlu
  5. Meningkatkan penapis penembusan harian dan mengurangkan isyarat palsu di pasaran yang bergolak
  6. Mengelakkan perdagangan berlawanan arah dengan menggunakan indikator trend

ringkaskan

Strategi ini menggabungkan penggunaan perubahan Fisher secara rawak dan penunjuk STOCH, untuk mewujudkan strategi kuantiti garis pendek yang mudah dan praktikal. Kelebihannya adalah frekuensi operasi yang tinggi, sesuai untuk perdagangan kuantiti frekuensi tinggi yang popular akhir-akhir ini.

Kod 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)