双移動平均線ゴールドクロス戦略は,移動平均線に基づく定量取引戦略である.この戦略は,異なる周期の移動平均を計算することによって,市場動向と買入のタイミングを判断する.短期移動平均線の上を長期移動平均線を横切ると,買い信号としてゴールドクロスが生じ,短期移動平均線の下を長期移動平均線を横切ると,売り信号としてデッドクロスが生じます.
双移動平均線金十字戦略の核心論理は,移動平均線の平滑性に基づいている.移動平均線は,市場騒音を効果的にフィルターし,大まかなトレンドの方向を示す.短期移動平均線は,価格変化に敏感で,最近の一段の価格変動情報を捉えることができる.長期移動平均線は,最近の価格変化に反応が遅いため,市場の一段のトレンドを反映することができる.短期移動平均線の上部に長期移動平均線を突破すると,市場が新たな上昇傾向を形成していることを示し,短期移動平均線を下部に長期移動平均線を突破すると,上昇が終了していることを示し,脱出を検討する必要がある.
双移動平均線戦略のもう一つの重要なポイントは,RSI指標である. RSIは,市場が超買い超売状態にあるかどうかを効果的に判断できる. RSIと組み合わせると,市場の転換点の近くで誤った取引が回避される. この戦略は,RSI指標が条件を満たしている場合にのみ,買入と売却のシグナルを生成する.
具体的には,この戦略の取引決定の論理は以下の通りです.
この戦略は,複数のパラメータを組み合わせることで,偽の信号を効果的にフィルターし,取引決定の正確性を向上させています.
双移動均線金交差策には以下の利点がある.
双移動均線金交差策には以下のリスクもあります.
リスクを下げるには,以下の方法で最適化できます.
双移動均線金交差策にはさらに最適化できる余地があります.
双移動均線金交差戦略は,非常に古典的な規則型定量取引戦略である.それは,簡単に実行しやすく,パラメータ最適化が柔軟であり,収益パフォーマンスは優れている.初心者入門定量取引の良い選択である.しかし,この戦略には一定の制限がある.さらなる研究と最適化により,より高い知能と安定性に向かって前進させ,真に持続的に収益性を持つことができる.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="EA_3Minute_MagnetStrat", shorttitle="EA_3Minute_MagnetStrat", overlay=false)
src = close,
//RSI CODE
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//Criteria for Moving Avg rules
ma20= vwma(close,20)
ma50 = vwma(close,50)
ma100= vwma(close,100)
//Rule for RSI Color
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
long1 = ma20 > ma50 and ma50 > ma100 and rsi < 50
short1 = ma20 < ma50 and ma50 < ma100 and rsi > 48.5
//plot(rsi, title="RSI", style=line, linewidth=1,color=col)
//plot(100, title="Upper Line 100",style=line, linewidth=3, color=aqua)
//plot(0, title="Lower Line 0",style=line, linewidth=3, color=aqua)
//band1 = plot(60, title="Upper Line 60",style=line, linewidth=1, color=aqua)
//band0 = plot(44, title="Lower Line 40",style=line, linewidth=1, color=aqua)
//fill(band1, band0, color=silver, transp=90)
//strategy.entry ("buy", strategy.long, when=long)
//strategy.entry ("sell", strategy.short, when=short)
//plot(long,"long",color=green,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
//Alert
strategy.entry("short", strategy.short,qty = 1, when=short)
strategy.entry("long", strategy.long,qty=1, when=long)
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//strategy.exit(id="Stop", profit = 20, loss = 100)