Strategi ini adalah sistem perdagangan mengikut trend berdasarkan kepada penunjuk VIDYA (Peringat Indeks Dinamis Variable). Strategi ini menyesuaikan diri dengan turun naik pasaran dengan menyesuaikan berat secara dinamik, menggabungkan kaedah pengiraan Momentum Oscillator (CMO) dan Standard Deviation (StDev) Chande's untuk mencapai pengenalan trend yang lebih tepat dan penjanaan isyarat perdagangan. Sistem memperkenalkan mekanisme adaptif di atas purata bergerak tradisional, menyesuaikan sensitiviti secara automatik berdasarkan keadaan pasaran.
Inti strategi adalah penunjuk VIDYA, dengan proses pengiraan termasuk langkah-langkah utama ini:
Strategi ini membolehkan pengguna memilih antara CMO atau penyimpangan standard untuk pengiraan pekali turun naik, meningkatkan fleksibiliti. mod CMO menggunakan kitaran 9 tempoh tetap, manakala mod StDev mengekalkan konsistensi dengan tempoh asas.
Strategi VIDYA menyediakan trend yang agak boleh dipercayai selepas penyelesaian melalui mekanisme berat adaptif yang inovatif. Walaupun mengekalkan kesederhanaan dan kemudahan penggunaan, strategi ini meningkatkan kesesuaian dengan perubahan pasaran melalui penyesuaian dinamik. Walaupun terdapat beberapa batasan yang melekat, arah pengoptimuman yang disediakan dapat meningkatkan kestabilan dan kebolehpercayaan strategi. Kaedah pengiraan berganda menawarkan fleksibiliti yang lebih besar untuk aplikasi dalam persekitaran pasaran yang berbeza.
/*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!")