Cette stratégie utilise l'indicateur VIDYA (Variable Index Dynamic Average) pour identifier la direction de la tendance sur les marchés de crypto-monnaie et les transactions basées sur la tendance.
L'indicateur VIDYA est basé sur la dynamique des prix et peut répondre plus rapidement aux changements de tendance. Plus précisément, il combine l'oscillateur de momentum de Chande (CMO) et la moyenne mobile simple (SMA). CMO mesure la différence entre la dynamique ascendante et descendante pour mesurer la force de la tendance.
Après avoir calculé VIDYA, la stratégie juge la direction de la tendance en fonction de la courbe de VIDYA.
Vidya réagit rapidement et peut détecter les changements de tendance plus tôt que les indicateurs traditionnels tels que SMA.
En combinant la force et la direction de la tendance, il peut distinguer efficacement les tendances fortes et faibles et éviter les fausses tendances sur des marchés variables.
Le fait de s'appuyer uniquement sur VIDYA rend la stratégie simple: aucun signal contradictoire ou trompeur provenant de plusieurs indicateurs.
Les paramètres VIDYA plus longs permettent de suivre les tendances à long terme et de saisir la direction principale de la tendance.
De bons résultats de backtest avec des rendements attendus positifs.
Vidya peut être retardé en réponse à des événements soudains sur le marché et manquer des opportunités commerciales à court terme.
Les réglages VIDYA longs la rendent moins sensible aux changements de tendance à court terme et peuvent entraîner des retombées plus importantes.
Le suivi des tendances ne fonctionne pas bien sur les marchés instables.
Les données de backtest limitées ne peuvent pas vérifier complètement la robustesse. Les paramètres ont besoin d'optimisation et de tests itératifs dans le trading en direct.
La volatilité élevée sur les marchés des crypto-monnaies. La taille des positions et le stop loss doivent être soigneusement contrôlés pour une gestion stricte des risques.
Tester l'ajout d'indicateurs de volume ou de volatilité pour améliorer la sensibilité aux changements de tendance.
Essayez de combiner VIDYA avec d'autres indicateurs de tendance pour un effet d'ensemble.
Optimiser la stratégie de stop loss pour sortir tôt lorsque la tendance s'inverse.
Optimiser le dimensionnement dynamique des positions en fonction des conditions du marché.
Testez la robustesse sur différentes crypto-monnaies et délais.
Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance quantitative. Il utilise l'indicateur VIDYA pour déterminer la direction de la tendance, capturant les tendances cryptographiques de manière simple et efficace. Mais il a également certaines limitations qui nécessitent d'autres optimisations dans le stop loss, la taille des positions, etc. pour rendre la stratégie plus robuste et pratique. En général, il fournit un cadre et une approche de base pour la construction de stratégies de tendance cryptographique, mais des évaluations prudentes sont toujours nécessaires pour les applications du monde réel.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // @version=5 // Author = TradeAutomation strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25, commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4) // Backtest Date Range Inputs // StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time') EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time') InDateRange = true // Strategy Inputs // len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings") src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings") // VIDYA Calculations // valpha=2/(len+1) vud1=src>src[1] ? src-src[1] : 0 vdd1=src<src[1] ? src[1]-src : 0 vUD=math.sum(vud1,9) vDD=math.sum(vdd1,9) vCMO=nz((vUD-vDD)/(vUD+vDD)) var VIDYA = 0.0 VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1]) plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2) // Entry & Exit Signals // if (InDateRange) strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1]) strategy.close("Long", when = VIDYA<VIDYA[1]) if (not InDateRange) strategy.close_all()