ダブル指数関数移動平均値とALMA戦略

作者: リン・ハーンチャオチャン開催日:2023年12月22日12時44分55秒
タグ:

img

概要

この戦略は,トレンドフォローとエントリーを達成するために,ダブル指数関数移動平均とALMA指標を組み合わせます. ALMA線は主なトレンドフィルターとして機能し,価格はALMA線以上で,価格がALMA線以下で,ショートになります.ダブルEMAは,タイムリーエントリーのために早期トレンド信号を与えるために使用されます.

戦略の論理

  1. 2倍指数的な移動平均値の快速EMA1と遅いEMA2を計算する.
  2. ALMA線を計算する
  3. EMA1 と EMA2 が黄金交差線を形成すると,価格が ALMA 線を下回る場合はロング; EMA1 と EMA2 が死線を形成すると,価格が ALMA 線を下回る場合はショート.
  4. ALMA線は,市場変動の際に 波動を避けるための主要フィルターとして機能し,ダブルEMAは,適切なタイミングで入場するための 早期トレンド信号を提供します.

利点分析

  1. ダブル EMA は 価格傾向を事前に反映し レンジゾーンに入らないようにします
  2. ALMA線は動的に動向を捉えることができ 適応性の優しさで 優れたトレンドフィルタリング指標です
  3. この組み合わせでは,トレンドのタイミングとエントリーの信頼性が考慮されます.

リスク分析

  1. 価格の変動が激しい場合,ダブルEMAは誤った信号を与える可能性があります.
  2. ALMA線は価格の遅れの問題があり,結果としていくつかの傾向がフィルタリングされています.
  3. 不適切なパラメータ設定も 戦略の不良なパフォーマンスにつながります

解決策:

  1. 誤った信号を減らすため,EMAの倍数を適切に調整します.
  2. ALMAラインのパラメータを調整して 遅延を減らす
  3. パラメータの最適化を行います.

オプティマイゼーションの方向性

  1. 最適なパラメータを見つけるために,異なる期間の組み合わせで二重EMAをテストします.
  2. パラメータ最適化のために,異なるウィンドウサイズ,オフセット,シグマ値でALMAラインをテストする.
  3. さらにシグナルをフィルタリングするために 変動指数などの他の指標を組み込む.
  4. ストップ・ロスの戦略を最適化して 単一の取引損失を制御する.

結論

この戦略は,タイムリーなトレンドフォローリングと信頼性の高いエントリーフィルタリングを達成するために,ダブルEMAとALMAインジケーターを組み合わせます.パラメータ最適化とストップロスの戦略を改善することによって,誤った信号をさらに削減し,リスクを制御し,戦略パフォーマンスを向上させることができます.特にトレンド市場と中長期取引に適しています.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Author: HighProfit

//Lead-In
strategy("Double Exponential Moving Avarage & Arnoud Legoux Moving Avarage Strategy", shorttitle="ST-DEMA+ALMA", overlay=true)

//Arnoud Legoux Moving Avarage Inputs
source = close
windowsize = input(title="Window Size", defval=50)
offset = input(title="Offset", type=float, defval=0.85)
sigma = input(title="Sigma", type=float, defval=6)

//Exponential Moving Avarage Inputs
L1= input(5,"EMA-1")
L2= input(10,"EMA-2")

//Exponential Moving Avarage Calculations
e1= ema(close, L1)
e2= ema(close, L2)

//Conditions
longCondition = e1 and e2 > alma(source, windowsize, offset, sigma)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = e1 and e2 < alma(source, windowsize, offset, sigma)
if (shortCondition)
    strategy.entry("Short", strategy.short)

//Plots   
plot(alma(source, windowsize, offset, sigma), color=lime, linewidth=1, title="ALMA")
plot(e1, color=orange, linewidth=1, title="EMA-1")
plot(e2, color=blue, linewidth=1, title="EMA-2")

もっと