
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.
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:
Strategi ini memiliki keuntungan utama sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Untuk mengurangi risiko ini, pertimbangkan untuk mengoptimalkan beberapa hal berikut:
Strategi ini dapat dioptimalkan dari beberapa arah:
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.
/*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)