適応型ウェイトトレンドフォロー戦略(VIDYA マルチインジケーターコンビネーションシステム)

EMA CMO MA
作成日: 2024-12-05 15:07:47 最終変更日: 2024-12-05 15:07:47
コピー: 0 クリック数: 404
1
フォロー
1617
フォロワー

適応型ウェイトトレンドフォロー戦略(VIDYA マルチインジケーターコンビネーションシステム)

概要

この戦略は,VIDYA (変数指数動平均) 指標に基づくトレンド追跡取引システムである.この戦略は,市場変動に適応するために,動的に調整する重みを使用して,より正確なトレンド識別と取引信号生成を実現するために,氏運動指数 (CMO) と標準差 (StDev) の2つの計算方法を組み合わせている.システムは,従来の移動平均に基づいて,自己適応機構を導入し,市場の状況に応じて自動的に感度調整することができる.

戦略原則

戦略の核心はVIDYA指標で,その計算過程には以下の重要なステップが含まれています.

  1. 基本周期 (デフォルト21期) と滑らかな係数alphaをパラメータ設定で決定する
  2. CMOまたはStDevを波動率計算方法として導入
  3. 動的重量k値を使用して,VIDYAの価格変化に対する感受性を調整する
  4. ビデオ線が上を横切ると多信号,下を横切ると空信号を生成する.

この戦略は,ユーザがCMOまたは標準差を使用して波動率係数を計算する選択を許し,戦略の柔軟性を高めます.CMOモードでは9サイクルが固定され,標準差モードは基本周期と一致しています.

戦略的優位性

  1. 適応力:ダイナミックな重み調整により,異なる市場環境で良好なパフォーマンスを維持できます
  2. 信号の安定性:従来の移動平均よりも偽信号のフィルタリングに優れている
  3. パラメータ可調性:異なる市場特性に合わせて最適化するための複数の可調性パラメータを提供
  4. 双重計算方法:CMOとStDevの両方の変動率計算方法をサポートし,戦略の適応性を高めます
  5. シンプルで使いやすい: 策略の論理が明確で,信号が明確で,実用的な操作が容易である

戦略リスク

  1. トレンド依存性: 波動的な市場では頻繁に偽信号が生じる可能性
  2. パラメタセンシブル:異なるパラメータの組み合わせが戦略のパフォーマンスに大きな影響を与える
  3. 落後性:平均線型の指標として一定の落後性がある
  4. 市場適応性:特定の市場環境では不十分である可能性
  5. 資金管理:ストップ・ロスの欠如が大きな引き下げにつながる可能性がある

戦略最適化の方向性

  1. 波動率フィルターを導入:高波動率環境で信号生成ルールを調整する
  2. トレンド確認指標の追加:他の技術指標と組み合わせた信号信頼性の向上
  3. 資金管理の改善:ダイナミックストップとポジション管理の仕組みの設計
  4. 最適化パラメータ選択:異なる市場周期に対応した自動パラメータ最適化方法の開発
  5. 市場環境の判断を増やす:市場の状況に応じて戦略パラメータを動的に調整する

要約する

VIDYA戦略は,革新的な自己適応重量メカニズムによって,比較的信頼性の高いトレンド追跡プログラムを提供します. この戦略は,シンプルで使いやすいままにしながら,ダイナミックな調整によって,市場の変化への適応力を向上させます.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
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/
// © GriffinJames


//@version=5
strategy("VIDYA Strategy", overlay=true, initial_capital=25000)

// Inputs
src = input(close, title="Source")
pds = input.int(21, title="Length")
fixCMO = input.bool(true, title="Fixed CMO Length (9)?")
select = input.bool(true, title="Calculation Method: CMO/StDev?")
alpha = 2 / (pds + 1)
momm = ta.change(src)

// Functions to calculate MOM
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m

m1 = f1(momm)
m2 = f2(momm)
sm1 = fixCMO ? math.sum(m1, 9) : math.sum(m1, pds)
sm2 = fixCMO ? math.sum(m2, 9) : math.sum(m2, pds)

percent(nom, div) => 100 * nom / div
chandeMO = na(percent(sm1 - sm2, sm1 + sm2)) ? 0 : percent(sm1 - sm2, sm1 + sm2)

// Select calculation method
k = select ? math.abs(chandeMO) / 100 : ta.stdev(src, pds)

// Calculate VIDYA
var float VIDYA = na
VIDYA := na(VIDYA[1]) ? src : alpha * k * src + (1 - alpha * k) * VIDYA[1]

// Conditions for long and short
col12 = VIDYA > VIDYA[1]
col32 = VIDYA < VIDYA[1]

// Plot VIDYA with dynamic colors
color2 = col12 ? color.new(color.blue, 0) : col32 ? color.new(color.maroon, 0) : color.new(color.blue, 0)
plot(VIDYA, "VAR", color=color2, linewidth=2)

// Long and Short Strategy
if (col12)
    strategy.entry("Go Long", strategy.long)
if (col32)
    strategy.entry("Go Short", strategy.short)

// Alert for VIDYA color change
alertcondition(ta.cross(VIDYA, VIDYA[1]), title="Color ALARM!", message="VIDYA has changed color!")