
この戦略の核心思想は,ランダムなフィッシャー変換と一時停止反転STOCH指標を組み合わせて,買入決定を行うことである. この戦略は,中短期間の操作に適しており,安定した状況で良い収益を得ることができる.
この戦略は,まず標準のSTOCH指標を計算し,その後,それをフィッシャー変換してINVLineを得る.INVLine上の下行値線DLを横切ると,買入シグナルを生成し,INVLine下の上行値線ULを横切ると,売り出しシグナルを生成する.同時に,この戦略は,利益をロックし,損失を減らすために,追跡ストップメカニズムを設定する.
具体的には,この戦略の核心的な論理は,
この戦略の利点は以下の通りです
この戦略にはいくつかのリスクがあります.
これらのリスクを低減するために,以下のような要素を最適化することを検討できます.
この戦略は以下の方向から最適化できます.
この戦略は,ランダムなフィッシャー変換とSTOCH指標を総合的に使用し,簡単な実用的なショートライン量化戦略を実現する.その優点は,動作頻度が高いことであり,最近の比較的に人気の高い高周波量化取引に適していることにある.同時に,この戦略には,パラメータとフィルタリング条件を最適化してリスクを低減し,安定性を向上させる必要のある一般的な技術指標戦略リスクもある.全体的に,この戦略は,簡単な量化取引のための良い考え方を提供し,さらなる研究に値する.
/*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)