クアトリプル指数指数移動平均 (EMA) 取引戦略は,複数の指数指数移動平均を追跡する典型的なトレンドフォロー戦略である.同時に13日,21日,55日,8日間の EMAを追跡し,市場のトレンドを決定するためにそれらのクロスオーバー状況に基づいて取引信号を生成する.
この戦略の主な論理は,4つのEMA (EMA13,EMA21,EMA55,EMA8) のクロスオーバー状況を追跡することである.具体的には,以下のような取引規則に従っている.
EMA55が EMA21を下回り,EMA21が EMA55を超えると,EMA13が EMA21を超えると,EMA8が EMA13を超えると,ロングする.
EMA55 が EMA21 を越え,EMA21 が EMA55 を下回り,EMA13 が EMA21 を下回り,EMA8 が EMA13 を下回りすると,ショートします.
EMA55 が EMA21 を越えると,すでにロングである場合はロングポジションを閉じてショートポジションを開く.
EMA55が EMA21を下回ると,すでにショートであれば,ショートポジションを閉じてロングポジションを開く.
ストップロスを150ポイントに設定し,ロングとショートの両方の取引で 1000ポイントで利益を得ます.
この戦略では,EMA55とEMA21のクロスオーバーを使用して主要なトレンド方向を判断します.EMA13,EMA21とEMA8の相対的なポジションは,エントリータイムを最適化するために使用されます.
クアドリプル EMA 戦略には以下の利点があります.
複数のEMAを使用することで,市場のトレンドを正確に判断できます. EMA55 vs EMA21は主要なトレンドを判断し,EMA13,EMA21およびEMA8は効率を改善するためにエントリータイムを最適化します.
戦略の論理は シンプルで明快で 分かりやすく実行できます
EMAの平滑な性質は,市場の騒音をフィルタリングし,罠を避けるのに役立ちます.
この戦略は,特殊な要件がないため,株式,フォレックス,暗号等などのさまざまな製品に広く適用できます.
この戦略のリスクは以下のとおりです.
EMAを追跡すると,トレンドが逆転するときに損失または遅いトレンド逆転信号を引き起こす可能性があります. EMAパラメータを調整したり,他の指標を追加したりすることが役立ちます.
Stop loss と take profit ポイントは,異なる製品に対して調整が必要かもしれません. Dynamic SL/TP はこれを最適化できます.
機械学習アルゴリズムによるさらなるパラメータ最適化もパフォーマンスを向上させる可能性があります.
高波動期間の低ポジションサイズに波動度指標を組み込むことは,リスクを制御するのに役立ちます.
クアトリプルEMA戦略は,比較的単純なトレンドフォロー戦略である.複数のEMAを使用して市場のトレンドを描き,それに応じて取引信号を生成する.この戦略は簡潔で,実装が簡単で,さまざまな製品に広く適用できる.しかし,我々は,受動的なトレンドスイッチのリスクを注意し,より多くの補充指標または最適化パラメータを追加することによってさらに改善すべきである.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Quadriple EMA Strategy", overlay=true, pyramiding=1, currency=currency.USD, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000) ema13 = ta.ema(close, 13) ema21 = ta.ema(close, 21) ema55 = ta.ema(close, 55) ema8 = ta.ema(close, 8) plot(ema13, color=color.green, title="ema13") plot(ema21, color=color.orange, title="ema21") plot(ema55, color=color.red, title="ema55") plot(ema8, color=color.blue, title="ema8") if ta.crossunder(ema55, ema21) and strategy.position_size == 0 and ema21>ema55 and ema13>ema21 and ema8>ema13 strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long", from_entry="Enter Long", loss=150, profit=1000) if (ta.crossover(ema55, ema21) and strategy.position_size == 0) and ema21<ema55 and ema13<ema21 and ema8<ema13 strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry="Enter Short", loss=150, profit=1000) if ta.crossover(ema55,ema21) strategy.close("Enter Long") strategy.entry("Enter Short", strategy.short) if ta.crossunder(ema55,ema21) strategy.close("Enter Short") strategy.entry("Enter Long", strategy.long)