Cette stratégie est une stratégie de suivi de tendance qui se négocie sur la base de l'indicateur de l'indice de canal de variabilité émaillée (Smeared VCI) par vitelot. Elle combine le jugement de tendance des moyennes mobiles et le jugement de surachat/survente de VCI pour capturer la direction principale de la tendance des prix. Lorsque les prix entrent dans un état de surachat ou de survente, les opérations inversées sont prises en profit.
La stratégie utilise l'indicateur VCI Smeared de vitelot
Deux conditions sont fixées dans la stratégie:
Le passage de VCI émaillé au-dessus de la ligne de déclenchement est un signal long, et le passage en dessous est un signal court.
Ne négociez que dans le délai de test.
Lorsque les deux conditions sont remplies, une position longue ou courte est prise.
Les avantages de cette stratégie sont les suivants:
En utilisant un indicateur de tendance, il peut suivre efficacement les tendances.
Le processus de lissage réduit les faux signaux.
Le backtesting dans une fenêtre de temps se concentre sur une période spécifique.
Le stop loss contrôle le risque.
L'utilisation de paramètres d'indicateur pour la décision long/courte rend les règles simples et claires.
Cette stratégie comporte également certains risques:
Le jugement de tendance peut être erroné, conduisant à des pertes.
Un mauvais réglage des paramètres des indicateurs peut entraîner une faible rentabilité.
Un réglage de stop-loss trop faible peut entraîner un arrêt rapide.
Une fenêtre de temps de rétroessai inappropriée peut entraîner des résultats de test biaisés.
Une commutation trop fréquente longue/courte peut entraîner une pression de commande.
La stratégie peut être optimisée dans les aspects suivants:
Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux.
Utilisez d'autres indicateurs de confirmation pour améliorer la précision.
Optimiser l'algorithme de stop loss pour obtenir un stop loss dynamique.
Optimiser les conditions d'entrée afin d'éviter une survente.
Testez des fenêtres de temps plus longues pour vérifier la stabilité.
Incorporer d'autres facteurs comme le volume pour améliorer la précision des décisions.
En résumé, il s'agit d'une stratégie de suivi de tendance relativement simple. Il utilise l'indicateur VCI Smeared pour déterminer la direction de la tendance et les positions ouvertes lorsque des signaux de trading sont générés. Le risque est contrôlé par un stop loss. La stratégie a une capacité de suivi de tendance mais comporte également certains risques. Des améliorations supplémentaires peuvent être apportées grâce à l'optimisation des paramètres, à l'optimisation du stop loss et à l'ajout de conditions de confirmation pour en faire un système de trading stable et fiable.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Smeared VCI Backtest", overlay=false, shorttitle="SVCI Backtest", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5) // Smeared Variability Channel Index // a variation of the VCI indicator of the same author. // The orange line over the lime line is bullish; // The lime line over the orange one is bearish. // // vitelot/yanez/Vts // Feb 2019 // src = close ep1 = input(5, minval=1, title="Fast EMA period") ep2 = input(13, minval=2, title="Slow EMA period") sm = input(34, minval=1, title="Smearing period") tp = input(13, minval=1, title="Trigger line period") fixedSL = input(title="SL Activation", defval=300) trailSL = input(title="SL Trigger", defval=1) fixedTP = input(title="TP Activation", defval=150) trailTP = input(title="TP Trigger", defval=1) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2019, title = "From Year", minval = 2017) ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2030, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window startTimeOk() => time >= start and time <= finish ? true : false // create function "within window of time" if statement true atrP = 96 e1 = ema(src,ep1) e2 = ema(src,ep2) vci = (e1-e2)/atr(atrP) svci = sma(vci,sm) t = sma(svci,tp) plot(svci, color=lime, linewidth=3, transp=0, title="Smeared VCI") plot(t, color=orange, linewidth=3, transp=0, title="Trigger line") hline(0, title="Reference line") long = crossover(svci,t) short = crossover(t,svci) // === STRATEGY - LONG POSITION EXECUTION === strategy.entry("Long", strategy.long, when= long and startTimeOk()) strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) strategy.exit("Exit", when= short) // === STRATEGY - SHORT POSITION EXECUTION === strategy.entry("Short", strategy.short, when= short and startTimeOk()) strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) strategy.exit("Exit", when= long)