
La stratégie est un système de trading de suivi de tendance basé sur l’indicateur VIDA (Indice des moyennes dynamiques des variables). La stratégie s’adapte aux fluctuations du marché en ajustant dynamiquement les poids. Elle combine les deux méthodes de calcul de l’indicateur de la dynamique de Gauss (CMO) et de l’écart-type (StDev) pour une identification plus précise des tendances et la génération de signaux de trading.
Le cœur de la stratégie est l’indicateur Vidya, dont le processus de calcul comprend les étapes clés suivantes:
La stratégie permet aux utilisateurs de choisir d’utiliser le CMO ou l’écart-type pour calculer le coefficient de volatilité, ce qui augmente la flexibilité de la stratégie. Le mode CMO utilise 9 cycles fixes, tandis que le mode d’écart-type est cohérent avec le cycle de base.
La stratégie VIDYA fournit un système de suivi de tendance relativement fiable grâce à un mécanisme de pondération d’adaptation innovant. La stratégie, tout en restant simple et facile à utiliser, améliore la capacité d’adaptation aux changements du marché grâce à un ajustement dynamique. Bien que certaines limites inhérentes subsistent, la stabilité et la fiabilité de la stratégie peuvent être encore améliorées en fournissant des directions d’optimisation.
/*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!")