ダブルムービング・平均金十字戦略は,移動平均をベースとした定量的な取引戦略である.異なる期間の移動平均を計算することによって,市場の動向と取引機会を判断する.短期移動平均が長期移動平均を超えると,購入信号として黄金十字が形成される.短期移動平均が長期移動平均を下回ると,販売信号として死亡十字が形成される.
ダブルムービング・平均金十字戦略の核心論理は,ムービング・平均のスムージング特性にある.ムービング・平均は,市場のノイズを効果的にフィルターし,一般的なトレンド方向を示せる.短期ムービング・平均は,最近の価格変動情報を把握し,価格変化により敏感である.長期ムービング・平均は,市場の長期トレンドを反映した最近の価格変化によりゆっくりと反応する.短期ムービング・平均が長期ムービング・平均を超えると,市場は新たな上昇傾向を形成していることを示す.短期ムービング・平均が長期ムービング・平均を下回ると,上昇傾向が終わっている可能性があることを示唆し,ポジションを退出することを検討すべきである.
二重移動平均戦略のもう1つの重要なポイントは,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)