La stratégie de tendance du volume des prix étendu (EPVT) est une stratégie de combinaison d'indicateurs techniques. Elle combine l'indicateur d'accélération de l'élan avec d'autres indicateurs auxiliaires pour identifier les points d'inversion de tendance potentiels et les changements d'élan.
L'indicateur de base de cette stratégie est l'évolution du volume des prix étendu (EPVT). Sa méthode de calcul est: volume cumulé des transactions * variation en pourcentage des prix. Calculez ensuite les valeurs maximales et minimales de l'EPVT sur une certaine période pour obtenir la fourchette de référence. La courbe de l'indicateur EPVT est la courbe de différence entre l'EPVT et cette fourchette de référence.
Lorsque la courbe de l'indicateur EPVT dépasse l'axe zéro, elle indique que la pression d'achat augmente et qu'un signal long apparaît.
Pour améliorer la qualité du signal, la stratégie utilise également une moyenne mobile simple pour confirmer la fiabilité des changements de tendance.
Cette stratégie combine des indicateurs de trois dimensions: tendance, dynamique et volume des transactions, qui permettent de juger plus complètement du sentiment et de l'intensité du marché.
En définissant trois niveaux de prise de profit pour la sortie, vous pouvez choisir différents ratios de profit en fonction de vos propres préférences en matière de risque.
Cette stratégie repose relativement fortement sur la morphologie des courbes d'indicateurs et émettra de faux signaux lorsque la tendance est atypique.
Les paramètres peuvent être ajustés de manière appropriée ou d'autres indicateurs de filtrage peuvent être ajoutés pour optimiser.
Optimisation des paramètres, par exemple en ajustant le paramètre du cycle de l'EPVT pour trouver la combinaison optimale de paramètres.
Ajoutez des conditions de filtrage de tendance, telles que le jugement de la direction du canal de prix ou de la moyenne mobile en fonction du signal EPVT.
Optimiser les stratégies de stop-loss, par exemple en définissant des stops à valeur fixe ou ATR.
L'accélération de l'élan de la stratégie de tendance du volume de prix étendu capte les changements de sentiment du marché à travers l'indicateur EPVT, en profitant des points de basculement potentiels de la tendance.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Extended Price Volume Trend", overlay=true )//@version=5 var cumVol = 0. cumVol += nz(volume) if barstate.islast and cumVol == 0 runtime.error("No volume is provided by the data vendor.") src = close lenght = input(200,"Trend Lenght") vt = ta.cum(ta.change(src)/src[1]*volume) upx = ta.highest(vt,lenght) downx = ta.lowest(vt,lenght) basex = (upx +downx)/2 VTX = vt - basex VTY = ta.valuewhen(ta.cross(VTX,0),close,0) plot(VTY, color=color.black, title="Extended-PVT") /////////////////////// STRATEGY //////////////// /////////////////////// TAKE PROFIT SECTION //////////////// longConditionx = ta.crossover(close,VTY) ShortConditionx = ta.crossunder(close,VTY) tp1 = input.int(10, minval=1,title = "TP-1") tp2 = input.int(20, minval=1,title = "TP-2") tp3 = input.int(30, minval=1,title = "TP-3") ematp = ta.ema(close,2) TPTAKA1S = VTY*(1-tp1/100) plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1) TPTAKA2S = VTY*(1-tp2/100) plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1) TPTAKA3S = VTY*(1-tp3/100) plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1) TPTAKA1B = VTY*(1+tp1/100) plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1) TPTAKA2B = VTY*(1+tp2/100) plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1) TPTAKA3B = VTY*(1+tp3/100) plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1) BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S) /////////////////////// STRATEGY //////////////// // Check for Long Entry longCondition = longConditionx==true if longCondition strategy.entry('Long', strategy.long, comment = "ENTER-LONG") buyclose = ShortConditionx==true or BUYTP==true // Exit condition strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG") // Check for Short Entry ShortCondition = ShortConditionx==true if ShortCondition strategy.entry('Short', strategy.short, comment = "ENTER-SHORT") sellclose = longConditionx==true or SELLTP ==true // Exit condition strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT") ///// END OF STRATEGY ///////////