二重指数移動平均クロスオーバーの定量戦略


作成日: 2023-09-14 19:51:37 最終変更日: 2023-09-14 19:51:37
コピー: 0 クリック数: 634
1
フォロー
1617
フォロワー

この記事では,二指数移動平均の交差を定量化する戦略について詳しく説明します. この戦略は,二つのEMAを素早く設定し,交差に応じて取引信号を形成します.

戦略の原則

この戦略の核心は,2つの異なるパラメータのEMAを設定し,その交差関係に応じて,遅かれ早かれ,買いや売りのシグナルを生成する.その具体的な論理は次のとおりである.

  1. 短期的なトレンドを表す小さな周期EMA (例えば29周期) を設定します.

  2. 長期トレンドを表す大きな周期EMA (例えば86周期) を設定します.

  3. 短期EMAの上では長期EMAを履くと,多めに;短期EMAの下では長期EMAを履くと,空いて;

  4. 現在では,ストップ・ストップ・ロジックが設定されていない,ポジション開設ロジックのみが設定されています.

  5. 固定株で開設する.

急速なEMAは短期的な変化に反応し,遅いEMAは長期的傾向を追跡し,両者は交差して取引信号を形成し,順次価格変化の核心方向を捉えることができる.

2 戦略的優位性

この戦略の最大の利点は,操作がシンプルで,実行が容易である.EMA指標は計算が簡単で,交差信号は直接可視である.

第二に,快慢EMAの配合は,同時に短長期周期のトレンドを追跡することができる.快速EMAは変化に敏捷で,遅いEMAはノイズをフィルターする.

最後に,固定ポジション管理は,戦略のパラメータ最適化の難しさも軽減します.

3 潜在的リスク

この戦略は実行しやすいものの,現場で注意すべきリスクは以下の通りです.

まず,EMAの交差点が遅れており,入場地点を逃している可能性がある.

2つめは,ストップ・ロスの設定がないことにより,毎回の損失はコントロールできないことです.

最後に,止まり点の設定がないことによって,利得空間を制御することが困難になります.

これは,終了論理をさらに補足し,停止停止条件を設定する必要があります.

内容と要約

この記事では,双EMA交差の量化取引戦略について詳しく説明する.これは,急速EMAと遅いEMAの組み合わせを使用して,トレンドの方向を判断し,取引信号を形成する.この戦略は,実行しやすいが,パラメータの最適化の難易度は低い問題もある.全体的に,この戦略は,スムージングトレンド取引戦略の選択肢として使用できますが,リスクを制御するために適切に最適化する必要があります.

ストラテジーソースコード
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA Cross Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

small_ema = input(29, title="Small EMA")
long_ema = input(86, title="Long EMA")

ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)

longCondition = ema1 > ema2
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ema1 < ema2
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
//strategy.close("Long", when=close < ema1)
//strategy.close("Short", when=close > ema1)
    
x1 = plot(ema(close, small_ema), title="EMA 1", color=longCondition?green:shortCondition?red:blue, transp=0, linewidth=0)
x2 = plot(ema(close, long_ema), title="EMA 2", color=longCondition?green:shortCondition?red:blue, transp=0, linewidth=0)

//bgcolor(longCondition?green:shortCondition?red:blue, transp=75)

fill(x1,x2,color=longCondition?green:shortCondition?red:blue)