EVWMA 戦略をフォローする傾向

作者: リン・ハーンチャオチャン開催日:2023年12月12日 16:00:37
タグ:

img

概要

この戦略は,EVWMA指標に基づくシンプルなトレンドフォロー戦略として設計されています.EVWMA指標を構築するために,高速線とスローラインを使用します.高速線がスローラインを越えるとロングポジションが開かれ,高速線がスローラインを下回るとショートポジションが開かれ,トレンドをフォローします.

戦略の論理

この戦略の核心指標はElastic Volume Weighted Moving Average (EVWMA) です.この指標は,自らの期間を計算することで,価格とボリュームの両方の情報を組み込み,市場の動向を動的に反映しています.

具体的には,高速線の期間は,最近の10バーのボリュームの和と,スローラインの20バーの合計として計算される.各バーのEVWMAは,前回のバーのEVWMA × (Period length - Current bars volume) + Current bars close price × Current bars volume) / Period lengthとして計算される.この方法で,価格とボリュームの両方の情報を組み合わせる.

速線がスローラインを横切ると,購買力が強くなってロングに進むことを示唆する.速線がスローラインを下回ると,販売力が強くなってショートに進むことを示唆する.高速線とスローラインの組み合わせにより,戦略は動的に市場トレンドを捕捉し,トレンドに従うことができる.

利点分析

この戦略の最大の利点は,価格とボリュームの変化に迅速に対応するための EVWMA指標のダイナミックな期間の設計にあります. これにより,トレンドフォロー戦略に非常に適したリアルタイムで市場のトレンドを把握できます.また,伝統的な移動平均値と比較して,価格とボリュームの両方の情報を組み込み,偽のブレイクをフィルターすることができます.

リスク と 解決策

この戦略の主なリスクは,EVWMA指標のパラメータ設定が不適切である.高速線と遅い線の期間が正しく設定されていない場合,過剰な誤った信号を生む可能性があります.また,トレンドフォロー戦略自体も,市場のトレンドが急激に逆転するといくつかの欠点があります.

これらの問題を解決するために,我々はパラメータを最適化し,最適な組み合わせを見つけるために高速線と遅い線の計算期間を調整することができます.また,損失リスクを制御するためにストップロスを設定することができます.重要なデータリリースなどの重要な市場逆転が起こる可能性のある時間帯では,この期間中に取引を避けるために戦略を一時停止することを検討することができます.

オプティマイゼーションの方向性

この戦略のさらなる最適化には余地がある.例えば,取引量のブレイクアウト,ボリンジャーバンドなどなどの他の指標は,シグナルを確認するために組み込まれ,それによって戦略の安定性を高める.また,最適なパラメータ値は,異なる製品と時間帯によって異なる可能性があります.リアルタイムデータに基づいてパラメータを調整するために適応性パラメータ最適化メカニズムを確立することができます.

取引の側面では,リスク制御のために動的ストップ損失,トレーリングストップ損失,その他の手段も設計することができる.さらに,適応性パラメータメカニズムは,異なる製品と時間帯に最適なパラメータを取得するのに役立ちます.

概要

この戦略は,EVWMA指標のダイナミック期間の設計を利用し,有効なトレンドフォロー戦略を構築するためにボリューム情報を組み込む.価格の変化に迅速に対応し,市場のトレンドを把握することができる.パラメータ最適化,リスク管理措置などにより,戦略の安定性がさらに向上することができる.この戦略の背後にある論理は革新的なものであり,さらなる探索と適用に値する.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("QuantNomad - EVWMA Cross Strategy", shorttitle="EVWMA Cross", overlay=true)

// Inputs
fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer)

// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)

// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)

// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)

// Plot 
plot(fast_evwma, title = "EVWMA Fast", linewidth = 2, color = color.red)
plot(slow_evwma, title = "EVWMA Slow", linewidth = 2, color = color.green)

// Strategy
strategy.entry("Long",   true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))

もっと