資源の読み込みに... 荷物...

ラリー・ウィリアムズの3期動的移動平均取引戦略

作者: リン・ハーンチャオチャン開催日:2024年5月11日 17:35:22
タグ:エイマ

img

概要

この記事では,ラリー・ウィリアムズの3期動的移動平均値に基づく取引戦略を紹介する.この戦略は,価格動向を把握するために2つの指数的な移動平均値 (EMA) を利用し,連続した3本のキャンドルの閉値がEMAを突破したときの取引信号を生成する.戦略パラメータは調整可能で,異なる市場とタイムフレームに適している.

戦略の原則

  1. 2つの EMA を計算する.高価格 EMA と低価格 EMA の閉じる価格,調整可能な期間.
  2. 現在の時刻が設定された取引間隔内にあるかどうかを確認します.
  3. 最後の3個のキャンドルが EMA の上 (上昇) または下 (低下) に連続して閉じたかどうかを決定します.
  4. 条件3が満たされ,ポジションが0であれば,ロングポジションを開く.条件3の反対が満たされ,ロングポジションが保持されれば,ポジションを閉じる.
  5. ポジションを保持する場合は,各取引日の終わりにポジションを閉じる.

戦略 の 利点

  1. 柔軟なパラメータ: EMA 期間,取引時間間隔,その他のパラメータは,異なる市場に対応するために調整可能である.
  2. トレンドトラッキング: EMA と連続したキャンドルの方向性を利用してトレンドを特定し,トレンド市場を把握するのに役立ちます.
  3. タイムリーストップ・ロース: 価格がトレンドに反してEMAを突破するとすぐにポジションを閉鎖し,引き下げを制御します.
  4. 取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先

戦略リスク

  1. 変動する市場リスク: 傾向のない市場での頻繁な取引は損失につながる可能性があります.
  2. パラメータリスク: パラメータによって異なる市場でのパフォーマンスは大きく異なるため,標的の最適化が必要です.
  3. ギャップリスク:ギャップを開ける場合,戦略の入場価格が滑り,リスクが増加する可能性があります.

戦略の最適化方向

  1. トレンドフィルター: トレンド強さを評価し,不安定な市場を避けるために ATR や RSI などの指標を組み込む.
  2. ダイナミックパラメータ最適化: 適応性を高めるため,最近の市場特性に基づいてパラメータをダイナミックに調整する.
  3. ポジション管理: 傾向強さと資本に基づいてポジションを調整し,リスクを制御する.
  4. ストップ・ロストと利益の取り込み: 単一の取引リスクを減らすために,合理的なストップ・ロストレベルと利益目標を設定します.

概要

ラリー・ウィリアムズの3期動的移動平均取引戦略は,デュアルEMAと連続したキャンドルの方向に基づいたトレンドフォロー戦略である.パラメータ最適化により,異なる市場に適応することができる.しかし,戦略自体は比較的シンプルで,不安定な市場でパフォーマンスが悪く,リスク管理対策が欠けているため,さらなる最適化と改善を必要とする.戦略のメリットとデメリットを考えると,明確なトレンドのある市場で使用するのに適しており,全体的なパフォーマンスと安定性を向上させるためにポジション管理とリスク管理措置と組み合わせられるべきである.


/*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"}]
*/

//@version=5
strategy("Larry Williams 3 Periodos Editável de MarcosJr", overlay=true, process_orders_on_close=true)

// Parametrização do período do EMA
emaPeriodHighs = input.int(title="Highs Period", defval=3, minval=1, maxval=9999)
emaPeriodLows = input.int(title="Lows Period", defval=3, minval=1, maxval=9999)

// Parametrização da data de início e fim do período a ser coletado
startYear = input.int(title="Start Year", defval=2020)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startDay = input.int(title="Start Day", defval=1, minval=1, maxval=31)

endYear = input.int(title="End Year", defval=2020)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endDay = input.int(title="End Day", defval=31, minval=1, maxval=31)

// Convertendo data de início e fim para timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// EMA
emaH = ta.ema(high, emaPeriodHighs)
emaL = ta.ema(low, emaPeriodLows)

// PLOT:
// Desenha as linhas EMA no gráfico
plot(emaH, color=color.green, linewidth=2)
plot(emaL, color=color.red, linewidth=2)

// Condições
inDateRange = true

// Verifica se houve mais de três candles consecutivos do mesmo sentido
checkThreeConsecutiveCandles = (close[0] > close[1] and close[1] > close[2] and close[2] > close[3]) or (close[0] < close[1] and close[1] < close[2] and close[2] < close[3])

if(close < emaL and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.entry("Long", strategy.long, comment="Long", when=strategy.position_size == 0)
if(close > emaH and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.close("Long", comment="Close Long")

// Fechar a operação no fechamento do pregão
if(strategy.position_size > 0 and na(time_close[0]))
    strategy.close("Long", comment="Close Long")


関連性

もっと