EMA ダイナミックトレンドフォロー取引戦略

EMA ATR
作成日: 2024-05-11 11:31:46 最終変更日: 2024-05-11 11:31:46
コピー: 0 クリック数: 627
1
フォロー
1617
フォロワー

EMA ダイナミックトレンドフォロー取引戦略

概要 この戦略は,インデックス移動平均 ((EMA),最高価格,最低価格,平均実際の波幅 ((ATR) などの技術指標を使用して,価格とEMA,最高価格,および最低価格の関係を判断し,現在のトレンドの方向を識別し,上方最低価格を破るときに購入し,下方最高価格を破るときに販売し,またはダイナミックレジスタンスレベルに触れたとき,トレンドの動きを捕捉し,余分な利益を得ます.

戦略の原則

  1. ATRは,市場変動率を測定するために使用され,ダイナミックチャネルを構築するための基礎を提供します.
  2. トレンドの方向を判断するための基礎として,最高価格と最低価格を計算する.
  3. EMA_HL,つまり最高価格と最低価格のEMAを,動的通路の中央軸として計算する.
  4. EMA_HIGHESTとEMA_LOWESTを計算する.つまり,EMA_HLに基づいてATRを加減し,一定比率で得られた上下軌道である.
  5. SELL_LINEを計算します.つまり,最高価格に基づいてATRを足し,一定の比率で得られる動力抵抗位を計算します.
  6. 多頭シグナル判断:EMA_LOWESTが最低値を上方突破し,閉盘価格がEMA_MIDより低いとき,買取シグナルが生成される.
  7. 空気信号判断:EMA_HIGHESTが最大値を下に突破し,閉店価格がEMA_MIDより高く,または最高価格がSELL_LINEに触れたときに,売り信号を生成する.

戦略的優位性

  1. EMA,最高価格,最低価格などの指標を総合して判断する傾向は,信号の信頼性が高い.
  2. ATRを波動率の測定基準として導入し,異なる市場の状況に適応するダイナミックなチャネルを構築する.
  3. SELL_LINEのダイナミックレジスタンス値を設定し,利益をタイムリーにロックし,撤回リスクをコントロールします.
  4. パラメータは調整可能で,異なる品種と周期に対応し,ある程度の普遍性と柔軟性を持っています.

戦略的リスク

  1. トレンド認識が遅れているため,入場タイミングが理想的でない可能性があります.
  2. パラメータを正しく設定しない場合,信号の頻度が高くなり,取引コストが増加する可能性があります.
  3. 震動市場では,戦略がうまくいかない可能性があり,他の方法と組み合わせて判断する必要があります.
  4. 極端な状況では,例えば急変盤の変更などで,戦略は効果がなくなり,ストップ・ロスを設定する必要があります.

戦略の最適化方向

  1. 交差量,波動率などの指標を導入し,トレンド判断の次元を豊かにし,信号の信頼性を向上させる.
  2. ATR倍数,EMA周期などのパラメータを最適化して,最適のパラメータの組み合わせを見つけ,戦略の安定性を高める.
  3. ポジション管理に参加し,ATRの動向に応じてポジションを調整し,単一のリスクのを制御する.
  4. ストップとストップを設定し,単一の最大損失と最大利益を制御し,リスクと利益の比率を高めます.
  5. 突破策,平均回帰策などの他の戦略と組み合わせて,戦略の組み合わせを形成し,全体的な安定性を向上させる.

総括する この戦略は,EMA,最高価格,最低価格などの技術指標を利用し,ATRと組み合わせてダイナミックチャネルを構築し,最高価格と最低価格を突破して取引シグナルを生成し,トレンドの動きを捉えるための簡単な実用的なトレンド追跡戦略です.戦略のパラメータは調整可能で,適応性と柔軟性が良好ですが,震動的な市場では不良なパフォーマンスを発揮しますが,より多くの指標,パラメータの最適化,風力制御の追加などの方法でさらなる最適化と改善が必要です.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Maboi_q

//@version=5
strategy("buy sell Trend", overlay=true)

atr_length = input.int(defval=14, title='atr length')
highest_length = input.int(defval=60, title='highest length')
highest_s_length = input.int(defval=60, title='sell highest length')
lowest_length = input.int(defval=30, title='lowest length')
sell_l_length = input.int(defval=55, title='sell line length')

f = 2.382
f2 = 5.618

atr = ta.atr(atr_length)
highest = ta.highest(highest_length)
lowest = ta.lowest(lowest_length)

f_atr = atr * f
ema_hl = ta.ema((highest[1] + lowest[1]) / 2, 14)
ema_highest = ema_hl + f_atr
ema_lowest = ema_hl - f_atr
ema_mid = (ema_highest + ema_lowest) / 2

bs_hi = ta.highest(highest_s_length)
f_atr2 = atr * f2
sell_line = ta.ema(bs_hi[1] + f_atr2, sell_l_length)

buy_cond = ta.crossover(ema_lowest, lowest) and close < ema_mid
sell_cond = (ta.crossunder(ema_highest, highest) and close > ema_mid) or high >= sell_line

if buy_cond
    strategy.entry('BUY', strategy.long)

if sell_cond
    strategy.entry('SELL', strategy.short)


plot(sell_line, color=color.new(color.maroon, 50))
plot(highest, color=color.new(color.red, 50))
plot(lowest, color=color.new(color.green, 50))
plot(ema_highest, color=color.new(color.blue, 50))
// plot(ema_mid, color=color.new(color.gray, 50))
plot(ema_lowest, color=color.new(color.blue, 50))

plotshape(buy_cond, title='buy', style=shape.triangleup, location=location.belowbar, 
 color=color.green, textcolor=color.green, size=size.tiny)

plotshape(sell_cond, title='sell', style=shape.triangledown, location=location.abovebar, 
 color=color.red, textcolor=color.red, size=size.tiny)