二重指数移動平均とアルマ戦略


作成日: 2023-12-22 12:44:55 最終変更日: 2023-12-22 12:44:55
コピー: 4 クリック数: 770
1
フォロー
1623
フォロワー

二重指数移動平均とアルマ戦略

概要

この戦略は,トレンドの追跡と入場を実現するために,双指数移動平均とアルマ指標を組み合わせている. その中で,アルマ線は,価格がアルマ線上に行うときの多し,価格がアルマ線下に行うときの空しとして,主要なトレンドフィルターである. 二指数移動平均は,早期入場のために早期のトレンドシグナルを与えるために使用される.

戦略原則

  1. 快線EMA1と慢線EMA2の二次指数移動平均を計算する.
  2. アルマ線を計算する
  3. 快線EMA1と慢線EMA2が金叉を形成するときは,価格がアルマ線より高い場合は,多行;EMA1とEMA2が死叉を形成するときは,価格がアルマ線より低い場合は,空行.
  4. このように,アルマ線は主要トレンドフィルターとして使用され,波動的な市場で被り込まれるのを避けます. 二次指数移動平均は,早期の入場のために前もってトレンドシグナルを与えるために使用されます.

優位分析

  1. 双指数移動平均は,価格の傾向を予期的に反映し,波動領域に入るのを避ける.
  2. アルマ線は,平滑パラメータに自律的に適応して動的にトレンドを捉えることができ,優れたトレンドフィルタリング指標である.
  3. この2つの組み合わせは,トレンドの時効性だけでなく,入学の信頼性も考慮しています.

リスク分析

  1. 価格が急激に変動する時には,双指数移動平均は誤った信号を発する可能性があります.
  2. アルマ線は価格に遅れがあるため,一部のトレンドはフィルターで削除される可能性があります.
  3. パラメータを正しく設定しない場合, 策略がうまく機能しないこともあります.

解決策は

  1. 双指数移動平均の周期を適切に調整し,誤信号率を下げる.
  2. アルマ線のパラメータを調整し,遅滞を軽減する.
  3. パラメータを最適化して,最適なパラメータの組み合わせを見つけます.

最適化の方向

  1. 異なる周期の双指数移動平均の組み合わせをテストし,最適なパラメータを見つけます.
  2. アルマラインの異なるウィンドウ期,偏移量,シグマ値,最適化パラメータをテストする.
  3. 波動率指数などの他の指標と組み合わせて,信号をさらにフィルターします.
  4. ストップ・ロスの戦略を最適化し,単一損失を制御する.

要約する

この戦略は,双指数移動平均とアルマ指標を組み合わせて,トレンドのタイムリーな追跡と信頼性の高い入場フィルターを実現します.パラメータの最適化とストップ・ローズ戦略の改善により,誤信号をさらに軽減し,リスクを制御し,戦略の効果を向上させることができます.この戦略は,トレンドの行動,特に中長期線取引に適用されます.

ストラテジーソースコード
/*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")