この戦略は,VIDYA (変数指数動的平均値) 指標に基づくトレンドフォロートレーディングシステムである.この戦略は,チャンデのモメントオシレーター (CMO) と標準偏差 (StDev) 計算方法を組み合わせて,ダイナミックに調整することで市場変動に適応し,より正確なトレンド識別と取引信号生成を達成する.このシステムは,伝統的な移動平均値の上に適応メカニズムを導入し,市場の状況に基づいて敏感性を自動的に調整する.
戦略の核心は VIDYA指標で,計算プロセスは以下の主要なステップを含みます.
この戦略により,ユーザはCMOまたは標準偏差の間で変動率の計算を選択し,柔軟性を高めることができます.CMOモードは固定9期サイクルを使用し,StDevモードはベース期と一貫性を維持します.
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!")