
MTFストキャスティックストラテジー (MTF Stochastic Strategy) は,ランダムな指数指標に基づく量化取引戦略である.現在の時間枠とより高い時間枠のランダムな指数平均線を同時に利用し,トレンド追跡とトレンド反転の組み合わせ取引を実現する.
この戦略の核心指標は,ランダムな指数K線とD線である.K線は,最近の価格動きを反映し,D線はK線の移動平均である.それらの相対的な位置と方向は,価格の傾向と可能な逆転を判断することができる.
具体的には,短期K線が下から上へ中期D線を突破すると,短期間に価格が上へ突破する動力が存在することを示す.短期K線が上から下へ中期D線を突破すると,短期間に価格が下へ突破する圧力が存在することを示す.
この戦略は,2つの時間枠のランダム指数指標を用いて取引信号の確認と波を実現する.より高い時間枠のランダム指数指標は,トレンドの方向を確認するために使用され,現在の時間枠のランダム指数指標は,短期間の突破点の発見のために取引切断を実現するために使用されます.
より高い時間枠のランダムな指標が上昇傾向にあることを確認し,現在の時間枠のランダムな指標が価格が上昇突破があることを示すとき,多めに行います. より高い時間枠のランダムな指標が下降傾向にあることを確認し,現在の時間枠のランダムな指標が価格が下落突破があることを示すとき,空っぽにします.
この戦略は,複数の時間枠指標と現在のブレイクを組み合わせて,市場騒音を効果的にフィルターし,高い確率で利益をもたらす取引をロックします.具体的には以下の利点があります.
この戦略にはいくつかのリスクがあります.
戦略の主要な最適化方向は以下の通りです.
マルチタイムフレームのランダム指数均線戦略は,典型的なトレンド追跡戦略である.それは,同時に2つの時間尺度のランダム指数指標を利用して,市場情勢の正確な把握を実現する.パラメータを最適化することによって,戦略の安定性と収益性をさらに強化することができる.
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("MTF stochastic strategy", overlay=false,pyramiding=3,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)
//
//this strategy is inspired to bobby thread in forexfactory forum
//
len = input(11, minval=1, title="Length for Main Stochastic")
smoothK = input(3, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(20, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(50,minval=10,title="Trialing step value")
// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)
//mtf stochastic calculation smoothed with period
mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)
plot(k,"current TF k",black,style=linebr)
plot(d,"current TF d",gray,style=linebr)
plot(mtfK,"MTF TF k",red,style=line)
plot(mtfD,"Multi TF d",green,style=line)
hline(upLine)
hline(50)
hline(lowLine)
longCondition = crossover(mtfK, 50) and k>50 and change(k,1)>0 and k>d and mtfK>mtfD
if (longCondition)
strategy.entry("Lungo", strategy.long)
shortCondition = crossunder(mtfD, 50) and k<50 and change(k,1)<0 and k<d and mtfK<mtfD
if (shortCondition)
strategy.entry("Corto", strategy.short)
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)
if (exitlong)
strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
strategy.exit("Esci corto","Corto",trail_points=trailStep)