動向平均波動性の二重追跡戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-29 11:15:08
タグ:

img

概要

ダブル・ムービング・平均波動性追跡戦略は,ゴールデン・クロス・デッドクロスとムービング・平均波動性追跡戦略のアイデアを統合している. 異なる期間の単純な移動平均値 (SMA) のクロスオーバーを計算することによって,トレンドを判断するためにゴールデン・クロスとデッドクロスを実現する. 一方,ボリンジャー・バンドとVIDYAインデックスを組み合わせることで,市場のトレンドと波動性を判断し,効果的なトレンド識別と重要なターニングポイントの効率的な捕獲を達成する.

戦略の論理

この戦略のコアインジケーターには,シンプル・ムービング・平均値 (SMA),ボリンジャー・バンド,変数インデックス・ダイナミック・平均値 (VIDYA) が含まれる.この戦略は,異なる期間で速いSMAと遅いLMAを設定する.速い線と遅い線の黄金十字は長い信号として機能し,デス・クロスは出口信号として機能する.一方,保持期間中にボリンジャー・バンドの上または下での価格のブレイクを監視する.波動性情報を含むVIDYAは,現在のトレンドの方向性と強さを判断する.

具体的には,高速SMAが遅いLMAを横切り,価格がVIDYA曲線上にあり,上昇傾向と波動性の拡大を示唆すると,ロングシグナルロジックは起動する.高速SMAが遅いLMAを下回り,価格がVIDYA曲線を下回り,トレンド逆転または波動性の収縮を暗示すると,退出シグナルが起動する.

利点分析

この戦略の最大の利点は,市場状況を判断するための二重指標を組み合わせ,意思決定の正確性を向上させることである.具体的には,以下のような利点がある.

  1. 金十字と死十字の戦略は 傾向の転換点を特定するために シンプルで効果的なものです
  2. VIDYAインデックスは市場の変動の変化を動的に追跡します
  3. ボリンジャー帯は 価格変動に迅速に対応します

概要すると,この戦略は,トレンド,リバース,および波動性の次元からの情報を統合します.それは市場の変化により早く反応し,アルファを生成する可能性が高くなります.

リスク分析

この戦略には多くの利点がありますが,注意すべきリスクもあります.

  1. パラメータの設定が正しくない場合,過剰な取引,コスト増加,スライドが発生する可能性があります.
  2. 二重指標の間の矛盾する信号は,最良のエントリーポイントが欠落する可能性があります.
  3. バックテストの過適性リスクがある.実際の取引結果はバックテストの結果と大きく異なる可能性があります.

上記のリスクを軽減するために,パラメータの最適化,信号間の優先規則,滑り制御,および異なる市場環境における安定性試験が推奨されます.

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

主な最適化次元はパラメータ調節とフィルター状態設定にあります.

  1. SMAとLMAのパラメータを最適化する.
  2. ボリンジャー帯の帯域幅パラメータを調整する.
  3. VIDYA のアルファスムーズ化パラメータを最適化します
  4. 価格やボリュームフィルター条件を追加します.

パラメータ最適化とルール改良の組み合わせにより安定性と収益性がさらに向上する.

結論

ダブル・ムービング・平均波動性追跡戦略は,市場状況を決定するために複数の指標を利用し,価格変動状況を監視しながらトレンドターニングポイントを把握する.リスクとリターンをバランスする魅力的な戦略である.パラメータ最適化とウォーク・フォワード分析に関するさらなる探求は,ライブ取引で満足のいく利益を達成することが期待されている.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true)

// Inputs
fastMA_period = input(50, title="Fast MA Period")
slowMA_period = input(200, title="Slow MA Period")
src = input(close, title="Source")
lengthBB = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// Calculate Moving Averages for Golden Cross
fastMA = ta.sma(src, fastMA_period)
slowMA = ta.sma(src, slowMA_period)
bullish_cross = ta.crossover(fastMA, slowMA)
bearish_cross = ta.crossunder(fastMA, slowMA)

// Progressive Trend Tracker Components (Adjusted for NA assignment issue)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, length)
    vDD = math.sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    VAR = 0.0 // Adjusted here, assign an initial value
    VAR := ta.ema(src * math.abs(vCMO), length)
    VAR

VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed

// Bollinger Bands for dynamic support and resistance
BBandTop = fastMA + mult * ta.stdev(src, lengthBB)
BBandBot = fastMA - mult * ta.stdev(src, lengthBB)

// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(BBandTop, color=color.green, title="Bollinger Band Top")
plot(BBandBot, color=color.red, title="Bollinger Band Bottom")
plot(VAR, color=color.purple, title="VAR", linewidth=2)

// Strategy Logic (Adjusted for strategy use)
// Long Entry when bullish cross and close above VAR
// Exit when bearish cross or close below VAR
if (bullish_cross and close > VAR)
    strategy.entry("CGC_PTT_Long", strategy.long)
if (bearish_cross or close < VAR)
    strategy.close("CGC_PTT_Long")


もっと