
この戦略は,二重重複平均指数とストキャスティック指数を組み合わせてトレンドの逆転の機会を識別し,効率的なショートライン取引を実現します. 価格が超買い超売り領域に入るときは,戦略は空白を選択します. 価格が超売り領域に入るときは,戦略は中短線トレンドの逆転を捕捉するために多額を選択します.
この戦略は主に二重重複平均とストキャスティック指標の組み合わせに基づいています.
二重重叠平均線は,高速移動平均線,遅い移動平均線,超遅い移動平均線から構成されている.高速移動平均線の上にゆっくり移動平均線を横切るときは,買取信号とみなされ,高速移動平均線の下にあるゆっくり移動平均線を横切るときは,売り信号とみなされる.二重重叠平均線は,中短線のトレンドの逆転点を識別できる.
ストキャスティック指数は,K値とD値を含み,K値は,現在の閉店価格のN日間の最高値と最低値の位置を表し,D値は,K値のM日間の単純移動平均である.K値とD値の両方が80を超えると超買区,20未満になると超売区である.ストキャスティック指数は,短期間の超買超売区を識別できる.
この戦略は,二重重複の平均とストキャスティック指標を組み合わせて,ストキャスティック指標がオーバーバイまたはオーバーセール領域を示すとき,ツリービューが二重平均信号と一致しているかどうかを確認し,一致している場合は,そのポイントを反転取引に選択し,ショートラインのトレンドの転換点を捕捉することを期待します.
この戦略の利点は以下の通りです.
組合せは,二重重複平均とストキャスティック指標を使用し,中短線と短線の両方のトレンド転換点を同時に識別できます.
ストキャスティック指数の超買超売シグナルを利用して,より効果的な二重重複平均逆転取引機会を選択する.
取引戦略のルールは明確で,実行しやすい.
異なる品種と時間帯に合わせて調整可能な取引時間と月間パラメータ
リスク管理のためのストップ・ロスを設定する.
この戦略にはいくつかのリスクがあります.
双重重複平均は偽突破を発生させたり,ストキャスティック指標は失効した異同K線形状を発生させたり,取引信号の誤りを引き起こす.パラメータを適切に調整したり,他の指標を組み合わせ検証のために追加したりできる.
基本的要因を考慮せず,技術的指標のみに基づいて,重大経済事件の発生時に失敗しやすい.
移動平均の逆転の正確なタイミングを把握することが困難であるため,小すぎたり多すぎたりするストップペアの問題が発生する可能性があります. ストップペアの戦略を最適化する必要があります.
パラメータ設定が不適切である場合,取引頻度が高すぎたり,信号効果が悪くなる可能性があります.異なる品種と周期に対してパラメータ最適化テストを行うべきです.
ショートライン取引のみ,ロングライン保有には適さない。ポジションの規模を制御すべきである。
この戦略は以下の点で最適化できます.
KDJ,MACDなど,より多くの指標の組み合わせをテストし,信号の有効性を強化します.
取引量指数分析に参加し,偽の突破を避ける.
二重平均のパラメータを最適化して,より正確な反転時刻を識別する.
ストップ・ロスの戦略を最適化し,ストップ・ロスが発動される可能性を下げる.
経済事件のリスク管理モジュールを追加し,重大事件の取引への影響を回避する.
機械学習技術を活用してパラメータを自動的に最適化し,パラメータの適応性を向上させる.
より多くの品種と周期で再検査を行い,最適の応用方向を探します.
この戦略は,二重重複平均とストキャスティック異なったK線形状の組み合わせを使用して,中短線のトレンド逆転のポイントで取引することを目的としています.この戦略は,特定の指標を使用するよりも,取引の収益性を高め,戦略の規則が明確で操作しやすい.しかし,この戦略には,パラメータとストップ・ロスの最適化が必要であり,より多くの検証指標とリスク管理手段を追加する必要があります.全体的に,この戦略は,信頼性の高い,適度な頻度のショートライン取引戦略です.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Intraday Stochiastic Strategy", shorttitle="Intraday Stochiastic Strategy", overlay=true, initial_capital = 1000)
//WORKS FOR BTCUSD M30
//OBVERVED GOOD PERFORMANCES FOR SELL MODE M15 : US30USD / UK100GBP / JP225USD / SPX500USD / BCOUSD / EURGBP
//Best Forex Hours are 7-21
//0 is Long Position
//1 is Short Position
//2 No position
mode=input(1, maxval=2, title="Mode")
lossLimit=input(10000, maxval=10000, title="Loss Limit")
hourStart=input(2, maxval=24, title="Hour Start")
hourStop=input(13, maxval=24, title="Hour Stop")
//Month selected for back testing. 0 is maximum number of months
monthSelected = input(0, maxval=12, title="Month Selected")
/////////////////////////////////////////////////
fast = 20, slow = 50, ultraSlow = 200
fastMA = sma(close, fast)
slowMA = sma(close, slow)
ultraSlowMA = sma(close, ultraSlow)
colorFast = red
colorSlow = black
colorUltraSlowMA = purple
if(timeframe.period == "1" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "15" or timeframe.period == "30" or timeframe.period == "45" or timeframe.period == "60" or timeframe.period == "120" or timeframe.period == "180" or timeframe.period == "240")
fastMA := ema(close, fast)
slowMA := ema(close, slow)
ultraSlowMA := ema(close, ultraSlow)
colorFast := orange
colorSlow := gray
colorUltraSlowMA := blue
p1 = plot(fastMA, color=colorFast)
p2 = plot(slowMA, color=colorSlow, linewidth=2)
p3 = plot(ultraSlowMA, color=colorUltraSlowMA, linewidth=3)
fill(p1, p2, color = fastMA > slowMA ? green : red)
////////////////////////////////////////////////
ema150 = 200
ema150MA = ema(close, ema150)
smooth = input(3, minval=1), K = input(14, minval=1), D=input(3,minval=1)
hh=highest(high,K)
ll=lowest(low,K)
k = sma((close-ll)/(hh-ll)*100, smooth)
d = sma(k, 3)
//plot(k, color=blue)
//plot(d, color=red)
//h0 = hline(80)
//h1 = hline(20)
//fill(h0, h1, color=purple, transp=95)
//plot(hour*100, color=red, linewidth=2)
stochiasticHigh = 80
stochiasticLow = 20
data = close < ema150MA and k>stochiasticHigh and d>stochiasticHigh and close>open
plotshape(data, style=shape.triangledown, location=location.belowbar, color=red)
data2 = close > ema150MA and k<stochiasticLow and d<stochiasticLow and close<open
plotshape(data2, style=shape.triangleup, location=location.abovebar, color=green)
isData = 0
isData := isData[1]
if(isData == 0)
if(data)
if(mode==1 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) //DOW hours : 2-13
strategy.entry("SCALP SHORT", strategy.short)
isData := 1
else
if(k<stochiasticLow and d<stochiasticLow)
if(mode==1)
strategy.close_all(when = true)
isData := 0
isData2 = 0
isData2 := isData2[1]
if(isData2 == 0)
if(data2)
if(mode==0 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected))
strategy.entry("SCALP LONG", strategy.long)
isData2 := 1
else
if(k>stochiasticHigh and d>stochiasticHigh)
if(mode==0)
strategy.close_all(when = true)
isData2 := 0
strategy.exit("STOP LOSS", "SCALP LONG", loss=lossLimit)
strategy.exit("STOP LOSS", "SCALP SHORT", loss=lossLimit)