トレンドフォローEMA戦略


作成日: 2023-10-16 15:54:41 最終変更日: 2023-10-16 15:54:41
コピー: 0 クリック数: 424
1
フォロー
1219
フォロワー

トレンドフォローEMA戦略

概要

トレンド追跡EMA戦略は,EMA指標に基づくトレンド追跡戦略である.この戦略は,指定された周期のEMAラインを計算して,価格のトレンド方向を判断し,トレンド追跡を実現する.価格がEMAラインを上越したとき空を空け,価格がEMAラインを下越したとき多めにすると,典型的なトレンド追跡戦略である.

戦略原則

この戦略は,主にEMA指数に基づいて価格の傾向を判断する.EMA指数は,価格の指数平移平均であり,最近の価格により高い重みを与え,価格の変化により迅速に反応する.戦略は,EMA周期内の平均価格を計算することによって,平滑な曲線を生産する.価格がEMA線を下側から通過すると,価格が上昇し始めると,看板信号である.価格がEMA線上から下側から通過すると,価格が低下し始めると,看板信号である.

この原理に従って,この戦略は,価格がEMAを突破する時に空白し,EMAを突破する時に多額で,EMAラインを追跡して価格の動向の変化を追跡する.具体的には,コードで8周期のEMAラインを計算し,価格がEMAラインを突破する時に空白し,EMAラインを突破するときに多額でポジションを開く.そして,リスクを制御するために止損点を設定する.

戦略的優位性

  • トレンド追跡性強.EMA線は価格変動を平滑化し,市場騒音をフィルターし,中長線トレンドを追跡する.
  • 操作頻度は適中.短周期指数と比較して,EMAラインは,過度に頻繁な取引を避けるために,動作頻度は適中である.
  • この戦略は,単一のEMA指標に基づいてトレンドを追跡し,非常にシンプルで直接的なものです.
  • 拡張性強.EMAパラメータを最適化したり,他の指標を追加することによって戦略を豊かにすることができる.

リスクと解決策

  • チューニングポイントを逃すリスクがある.価格が急激に反転すると,EMAラインは調整するのに一定の時間が必要になり,最適な入場時間を逃す可能性があります. 解決策は,他の指標と組み合わせてチューニングポイントを判断することです.

  • 損失を増やすリスクがある. EMA線はトレンドの追跡作用で,チューニングポイントを正確に判断することはできません. 価格が逆転した場合,大きな損失を引き起こす可能性があります. 解決策は合理的なストップポイントを設定することです.

  • 取引頻度は高すぎたり低すぎたりするかもしれない。EMA周期は異なる,producage戦略の取引頻度は異なる。周期が短すぎると過剰取引が起こり,周期が長すぎると機会が逃れることもある。解決策は,異なるEMAパラメータをテストして最適な周期を見つけることである。

改善の提案

  • EMAパラメータを最適化して,最適なバランスポイントを見つけます.ステップアップ最適化によって最適なEMA周期数値を決定できます.

  • 他の指標を加えてTuning pointを判断する.例えば,RSIなどの超買い超売り指標を組み合わせると,価格のターニングポイントをよりよく判断することができる.

  • 停止戦略を最適化して,最適な停止点を探す.反測によって,異なる停止点をテストして,利潤を最大限封鎖する停止位置を見つけることができる.

  • 品種選択の最適化 異なる品種の特徴に応じてEMA周期パラメータを調整し,最適な効果が得られる

要約する

トレンドトラッキングEMA戦略は,非常に典型的な指標に基づくトレンドトラッキング戦略である.それはシンプルで直接的で,容易に実装され,初心者の学習に適しています.同時に,拡張性があり,他の指標または最適化パラメータを追加することで,戦略の効果をさらに高めることができます.継続的な最適化と改善により,この戦略は,非常に実用的なトレンドトラッキングツールになることができます.

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

//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

EmaSource   = input(defval = close, title = "EMA Source")
EmaLength   = input(defval = 8, title = "EMA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)") 
UseStopLoss = input(true,"UseStopLoss")

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false



EMA = ema(EmaSource,EmaLength)

plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(EMA, close)
short= crossover(EMA, close)

if (long)
    strategy.entry("LongId", strategy.long, when=window())
    
if (short)
    strategy.entry("ShortId", strategy.short, when=window())

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)