2/20 指数関数移動平均戦略の開発

作者: リン・ハーンチャオチャン,日付: 2023年10月8日 15:14:17
タグ:

概要

この戦略は,移動平均を突破した価格に基づいてトレンドの方向性を決定するために二重指数移動平均を使用する.価格は移動平均を超えると長くなって,価格が移動平均を下回ると短くなります.この戦略は,トレンド決定と過剰購入/過剰販売レベルを組み合わせて利益をロックします.

戦略の論理

この戦略は二重指数移動平均指標に基づいている.インジケーターの長さパラメータは移動平均期間を20日に設定する.xPriceパラメータは閉じる価格に設定される.20日間の指数移動平均 xXAが計算される.過去2日間の最高高 nHHと最低低 nLLも計算される.nLLが移動平均値よりも高く,nHHが移動平均値よりも低く,nLLとnHHの小さい値がキー価格 nXSとして取られる.閉じる価格が移動平均値よりも高く,キー価格が長くなれば,それは長くなる.閉じる価格が平均値よりも低く,キー価格が短くなる場合,それは短くなる.逆パラメータは取引がリードされるかどうかを決定する.

この戦略は,価格が移動平均を突破する方向を判断し,リアルタイムで最大の高値と最低値を組み合わせて,偽のブレイクアウトを避けるためにブレイクアウトの有効性を決定します.価格が実際に移動平均を突破したときのみ取引信号を送信します.

利点分析

  1. 二重指数移動平均は,傾向の方向性をより正確に決定することができます.

  2. 最低値と最高値を組み合わせてブレイクの有効性を判断することで,価格変動による偽ブレイクが回避されます.

  3. 長/短方向は,異なる市場環境に適応するために,逆パラメータを使用して簡単に逆転することができます.

  4. 市場騒音を効果的にフィルタリングする唯一の取引です

リスク分析

  1. 双指数移動平均は 時にはゆっくり反応し,短期間の取引機会を逃す可能性があります.

  2. 移動平均のシステムは,市場の統合中に頻繁に誤った信号を生成する傾向があります.

  3. この戦略は,明らかな傾向のある市場環境に適しており,範囲限定の不安定な市場には適していません.

  4. ストップ・ロスの出口は考慮しないし,損失を増やすリスクもある.

  5. ポジションのサイズを設定せず,不適切なリスク管理につながる可能性があります.

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

  1. 他の指標を組み合わせることで,市場の動向を判断し,統合期間中に頻繁に取引を避けることができます.

  2. ダイナミックストップは,単一の取引損失のリスクを制御するために追加できます.

  3. 移動平均のパラメータは,指標の感度を最適化するために,市場の変動に基づいて動的に調整することができます.

  4. ポジションサイズを設定することで リスクをコントロールし 利益も拡大できます

  5. パラメータはウォーク・フォワード・アナリティスで最適化できます

概要

この戦略は,価格トレンド方向を決定するために二重指数的な移動平均指標を使用し,偽のブレイクアウトを避けるために最高高値と最低低値を組み合わせています.ストップ損失メカニズムを最適化し,ポジションサイズを制御するなどに改善の余地があります.しかし,全体的に,この戦略はシンプルで,実用的で,パラメータ調整を通じて異なる市場環境に適応でき,信頼できるトレンドフォロー戦略です.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/12/2016
// Strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Strategy 2/20 Exponential Moving Average", overlay = true)
Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
xPrice = close
xXA = ema(xPrice, Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos =  iff(close > xXA and close > nXS , 1,
	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nXS, color=blue, title="XAverage")

もっと