2つの移動平均範囲のブレークアウト戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-20 13:59:38
タグ:

img

概要

この戦略は,異なるタイムフレームにおける移動平均を計算することによってトレンドブレイクを特定します.低リスクトレンドをフォローすることができます.

戦略の論理

10日間のEMAが200日間のEMAを上回り,20日間のEMAが50日間のEMAを上回ると長引く.10日間のEMAが200日間のEMAを下回り,20日間のEMAが50日間のEMAを下回ると短引く.ダブル移動平均のデザインは誤ったブレイクアウトを効果的にフィルターする.

この戦略は,まず10日,20日,50日および200日間の期間で4つの指数関数移動平均値 (EMA) を計算する. 10日EMAは短期トレンド,20日中期,50日中期および200日長期トレンドを表現する. 短いEMAが長いEMAを横切ると,潜在的なトレンド逆転をシグナル化する. しかし,EMAクロスオーバーを1つだけ使用すると,簡単に誤った信号が生じる.

信頼性の向上のために,この戦略は2つのフィルタリング層を適用します. 10/200 EMAは長期・短期間のトレンドシフトを示し,20/50 EMAは中期・中期間のトレンドシフトを示します.両 EMAペアが同じ方向に並ぶ場合にのみ取引が開始されます.

双 EMA フィルタリングにより,誤った信号が大幅に減少し,より信頼性の高い取引エントリが生成されます.

利点

  1. 双 EMA フィルタリングは誤信号を大幅に減少させる
  2. 複数のタイムフレームが安定性を提供します
  3. シンプルなパラメータ化により利用が容易になります

リスク

  1. 強い傾向が続くが,逆転は欠けている
  2. トレンドが変わると大きなストップが起こる可能性がある
  3. 履歴が不十分 欠点 新しい資産/異国の資産

改善には,ブレイクアウトの限界を緩和し,ボリュームの確認を追加し,パラメータを最適化することが含まれます.

増進 の 機会

  1. ボリューム確認を追加します.ボリュームは,ブレイクアウトが現実か,活動が低いかを確認します.
  2. MACDやKDJなどの指標を追加して 安定性を高めます
  3. 変化する市場のために 10/20 日間の EMA 期間のようなパラメータを最適化します

要するに,二重移動平均のコアを最適化,ボリューム,より多くの指標で補完することで,安定したトレンド追跡システムを構築することができます.

結論

シンプルで実用的なトレンドフォロー戦略.ダブルEMAコアは質のシグナルに信頼性のある偽ブレイクをフィルターする.簡単なパラメータ化も採用を容易にする.リスク管理と最適化におけるさらなる改善はパフォーマンスを向上させる.全体的に,シンプルさによって支えられたアクセス可能な導入量戦略.


/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Advancing Our Basic Strategy", overlay=true)

ema10 = ema(close, 10)
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

long = ema10 > ema200 and ema20 > ema50
short = ema10 < ema200 and ema20 < ema50
longcondition = long and long[10] and not long[11]
shortcondition = short and short[10] and not short[11]

closelong = ema10 < ema200 or ema20 < ema50 and not long[11]
closeshort = ema10 > ema200 or ema20 > ema50 and not short[11]

plot(ema10, title="10", color=green, linewidth=2)
plot(ema20, title="20", color=red, linewidth=3)
plot(ema50, title="50", color=purple, linewidth=2)
plot(ema200, title="200", color=blue, linewidth=3)

testPeriodStart = timestamp(2018,8,1,0,0)
testPeriodStop = timestamp(2038,8,30,0,0)

if time >= testPeriodStart and time <= testPeriodStop
    strategy.entry("Long", strategy.long, 1, when=longcondition)
    strategy.entry("Short", strategy.short, 1, when=shortcondition)
    

strategy.close("Long", when = closelong)
strategy.close("Short", when = closeshort)

もっと