ダブルEMAベースの価格変動戦略


作成日: 2024-02-26 13:52:41 最終変更日: 2024-02-26 13:52:41
コピー: 2 クリック数: 600
1
フォロー
1617
フォロワー

ダブルEMAベースの価格変動戦略

概要

二重EMA価格振動策は,2つの異なる期限のEMA間の差値を計算することによって,市場の多空状態と強さを判断する.快線と慢線の間の差値が上を0通過すると,看板信号である.快線と慢線の間の差値が下を0通過すると,看板信号である.

この策略は,EMAの差値によって市場の強さと方向を判断するのに簡単である.しかし,また,一定の遅れがあるため,ターニングポイントを間に合うように捕捉することができない.

戦略原則

双EMA価格振動策の核心指標は,APO,すなわちAbsolute Price Oscillatorで,2つのEMAの間の差を表現する.計算式は以下の通りである.

APO = EMA(短期) - EMA(长期)

具体的には,この戦略では,APOの計算は以下の通りです.

xShortEMA = ema(收盘价, LengthShortEMA) 

xLongEMA = ema(收盘价, LengthLongEMA)

xAPO = xShortEMA - xLongEMA

LengthShortEMAとLengthLongEMAは,それぞれ短期および長期EMAの周期長を表しています.

APOの判断基準は以下の通りです

  1. APOで0をかけるときは,看板の信号
  2. 0 を切ったときのマイナス信号
  3. APOは,現在,前向きな状態を示しています.
  4. APOはマイナスで,現在は下落状態です.

APOのリアルタイム値から市場の空白状態と入場タイミングを判断する.

優位分析

双EMAの価格変動戦略には以下の主要な利点があります.

  1. 指数移動平均を用いて,価格データを効率的に平ら化し,騒音の影響を減らす
  2. APOは2つのEMAを組み合わせて,価格の傾向と市場の強さを同時に判断します.
  3. 戦略信号はシンプルで明快で,判断し実行しやすい.
  4. 品種や取引スタイルに合わせてカスタマイズ可能なEMAサイクル
  5. リバーシブル信号,反転と空白取引に適用される

リスク分析

双 EMA ストラテジーにはいくつかのリスクがあります.

  1. EMA自身は遅滞しており,価格の転換点を間に合うように捉えることができなかった.
  2. デフォルトのパラメータは,すべての品種に適していない場合,最適化パラメータが必要です.
  3. 信号は頻繁に発生し,偽信号が生成されやすい.
  4. 入場後のストップとストップの位置が特定できない
  5. 遅延により,最高の入場時間を逃す可能性もあります.

合理的なストップ,単一の損失を減らす;パラメータを最適化,異なる周期に適応;他の指標と組み合わせてフィルター信号,戦略の安定性を高める,これらのリスクに対処し,軽減することができます.

最適化の方向

二重EMAの価格変動戦略は,主に以下の方向から最適化できます.

  1. EMA周期パラメータを最適化し,それぞれ5から60のEMA長さの組み合わせをテストし,最適なパラメータを見つけます.

  2. MA,KDJ,MACDなどの他の指標を追加し,フィルタリング条件を設定し,偽信号を避ける

  3. ブリン帯,KDなどの指標を用いて合理的なストップ・ストップ・損失位置を決定する.

  4. トレンド指数などの指標を組み合わせ,価格の傾向を判断し,逆転取引を避ける

  5. 取引量指数に追加し,取引量に支えられた突破信号を確保する

  6. 取引の頻度や取引回数を減らすために再入場条件を設定します.

要約する

概要として,二重EMA価格振動策は,二重EMAの差値APOを計算して市場の空白状態を判断する.策の信号は単純で明確で,実用性が強い.また,一定の欠点もある.我々は,パラメータ最適化,フィルター条件の追加,止損の設定などの方法によって戦略の安定性を最適化および向上させることができる.この策は,使いやすい.また,広大な拡張スペースがあり,量化取引初心者の学習および適用に適している.

ストラテジーソースコード
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// 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="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
       iff(xAPO < 0, -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(xAPO, color=blue, title="APO")