この戦略は,デュアルEMAクロスオーバーシステムトレンドフォロー戦略に属する13期および48期指数関数移動平均線 (EMA) をベースに取引信号を生成する. 短期EMAが長期EMAを横切ると長期EMAが横切る. 短期EMAが長期EMAを下回るとポジションを閉じる. 長期サイクルトレンドを把握し,短期市場変動に誤導されないことで,この戦略は安定した利益を達成することを目的としている.
この戦略では13期 EMAを短期 EMA,48期 EMAを長期 EMAとして使用します.短期 EMAは高速線であり,長期 EMAはスローラインであると仮定します.
速い線が下のスローラインを横切ると,買い信号が生成される.これは短期トレンドが長期トレンドに対して強化し始めることを示し,上向きトレンドが強化され,それに従って長いことを意味する.
速い線が上からスローラインを下に横切ると,接近ポジションの信号が生成される.これは短期トレンドが長期トレンドに対して弱まるのを示し,上昇トレンドが弱まることを示唆し,損失を止めるためにロングポジションを閉じる.
このようなクロスオーバー・オペレーションによって,この戦略はトレンドをフォローし,時間をかけて損失を削減し,短期変動をトレンド逆転として誤って解釈することで引き起こされる不必要な損失を回避することができます.
長期サイクルのトレンドを把握し,短期市場騒音に誤導されるのを避ける. 13 と 48 期間のパラメータの選択は価格データを滑らかにし,より長いトレンド方向性を特定することができます.
短期のトレンドが弱くなったとき 損失を迅速に削減し 損失を効果的に制御します
実行が簡単で論理が明瞭です.ダブル EMAクロスは一般的なトレンド戦略で,理解しマスターするのが簡単です.
高拡張性.さらなる最適化のために他のアシストインジケーターを導入することができます.
短期間の価格の振動が頻繁である場合,過度に無効な取引信号を生む可能性があります.
EMA パラメータが正しく設定されていない場合,傾向を特定する能力が低下し,間違った方向を捉える可能性があります.
トレンドの強さを判定できず,新しい高値を追いかけて後期トレンド段階での損失を引き起こす可能性があります.
入場状況が不明で 調整リスクがある
トレンド強さを判断する補助指標を導入し,高値を追いかけるのを避ける. 音量,変動指標など.
EMA パラメータを最適化して,異なる製品の特徴に適したものにします.
リスクを減らすために 移動式ストップ・ロースや 百分比式ストップ・ロースなどのストップ・ロース方法を追加します
トレンド振動における無効な取引を避けるためにフィルター条件を追加します.例えば,トレンド状態を決定するためにDMI,KDJを使用します.
他のエントリー指標を組み合わせて正確なエントリーポイントを決定します.特定の購入/販売タイミングを明確にするためにMACD信号など.
この戦略は,13期および48期EMAによって形成されたクロスオーバーシステムを通じて,より長いサイクルトレンド方向性を特定し,それに応じてトレンドをフォローし,トレンド終了前に損失を削減する.これはシンプルで実践的なトレンドフォロー戦略である.しかし,間違った方向を捕捉し,トップを追いかけるようなリスクはまだ存在している.戦略をより安定して信頼性のあるものにするために,アシストインジケーターを導入し,パラメータを最適化し,ストップ損失方法を追加することで改善することができます.
/*backtest start: 2022-10-27 00:00:00 end: 2023-11-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("EMA Strategy 13 48", shorttitle = "EMA Strategy 13 48", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 1000) // === Inputs === // short ma maFastSource = input(defval = close, title = "Fast MA Source") maFastLength = input(defval = 13, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = close, title = "Slow MA Source") maSlowLength = input(defval = 48, title = "Slow MA Period", minval = 1) // === Vars and Series === fastMA = ema(maFastSource, maFastLength) slowMA = ema(maSlowSource, maSlowLength) plot(fastMA, color=blue) plot(slowMA, color=purple) goLong() => crossover(fastMA, slowMA) killLong() => crossunder(close, fastMA) strategy.entry("Buy", strategy.long, when = goLong()) strategy.close("Buy", when = killLong()) // Shorting if using goShort() => crossunder (fastMA, slowMA) killShort() => crossover(fastMA, slowMA) //strategy.entry("Sell", strategy.short, when = goShort()) //strategy.close("Sell", when = killShort())