取引戦略をフォローするEMAの動向

作者: リン・ハーンチャオチャン, 日時: 2023-09-19 19:38:53
タグ:

概要

この戦略は典型的なEMAトレンドフォロー戦略である.上向きトレンドを決定するために,高速EMAと遅いEMAの黄金十字を使用し,それに応じて長期と短期のトレンドを決定するために死亡十字を使用する.この戦略は中長期トレンドを信頼的に追跡し,スウィング取引に適している.

戦略の論理

基本的な論理は

  1. 迅速な EMA を計算する,例えば12期間の EMA
  2. 緩やかなEMAを計算する.例えば26期間のEMA.
  3. 低速EMAが低速EMAを突破すると,ロングエントリーに対する上昇傾向を決定する.
  4. 低速EMAが低速EMAを下回る場合,短期エントリーに対する下落傾向を決定します.
  5. 急速EMAが遅いEMAを下回る場合,現在のポジションを終了する.

異なるスピードのEMAを使用することで,トレンドの変化を効果的に検出することができる.速いEMAは早期トレンド検出のために価格変化に迅速に反応し,遅いEMAはトレンド確認を確保するために偽信号をフィルタリングする.共に信頼性の高いトレンドシステムを形成する.

金色のクロスはロングの上昇トレンドの始まりを,デッドクロスはショートの下落トレンドの始まりを意味する. 急速なEMAのデッドクロスから脱出することは,損失を間に合うように止めるのに役立ちます.

利点

  • EMA は 中長期 傾向 を 効果的に 特定 する
  • 急速なEMAと遅いEMAが組み合わせて信頼性の高いトレンドシステムを作ります
  • シンプルな論理 簡単に実行できます
  • 設定可能なEMAパラメータは,異なる楽器に適しています.
  • リスクは,EMAの高速クロスオーバーで停止損失を制御する

リスクと緩和策

  • 前もってトレンド逆転を予測できない
  • EMA パラメータの選択が不十分である場合,トレンド変化点を見逃す可能性があります.
  • EMAパラメータは市場状況の変化に合わせて調整する必要がある

緩和策

  1. 損失を制限するために範囲停止を使用
  2. 潜在的トレンド逆転を検出するために他の指標を追加する
  3. トレンドをより良く識別するためのパラメータを最適化

増進 の 機会

戦略は以下のような分野において強化できる:

  1. 機械学習によりEMAパラメータを自動調整して適応性が向上します

  2. 市場変動に合わせて調整する波動性に基づくポジションサイズ

  3. RSI のような振動子 は 入力点 を 調整 する

  4. トレイリングストップや利益引き上げストップを追加してリスク管理を改善する

  5. トレンド検証のための資金の流入/流出を計測するためのボリューム分析

  6. ポートフォリオの組合せと相関関係のない戦略は,引き上げを低減し,収益の安定性を高める

結論

EMAトレンドフォロー戦略は,中長期トレンドを追跡するためのシンプルで実用的な方法である.EMAは,エントリータイムリングのために高速および遅いEMAクロスを使用する.実装が簡単で,適応性が向上するために複数の次元で拡張することもできる.スウィングトレードトレンド市場に最適である.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HomoDeus666

//@version=5

strategy("EMA12/26 with date backtest range (BTCpair)", overlay=true,initial_capital = 1,commission_type = strategy.commission.percent,currency = currency.BTC)

//input date and time
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2022"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
     
//check date and time option
inTradeWindow =  true
/// plot and indicator
fastEMA = ta.ema(close,12), slowEMA=ta.ema(close,26)
plot(fastEMA,color=color.green,linewidth = 2)
plot(slowEMA,color=color.red,linewidth=2)

//entry when condition
longCondition = ta.crossover(fastEMA,slowEMA)
if (longCondition) and inTradeWindow
    strategy.entry("buy", strategy.long)

if ta.crossunder(ta.ema(close, 12), ta.ema(close, 26)) and inTradeWindow
    strategy.close("buy")
    
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

もっと