Stratégie étendue d'évolution du volume des prix

Auteur:ChaoZhang est là., Date: 2024-01-18 16h32 et 28h
Les étiquettes:

img

Résumé

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.

Principe de stratégie

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.

Analyse des avantages

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.

Analyse des risques

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.

Direction de l'optimisation

  1. Optimisation des paramètres, par exemple en ajustant le paramètre du cycle de l'EPVT pour trouver la combinaison optimale de paramètres.

  2. 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.

  3. Optimiser les stratégies de stop-loss, par exemple en définissant des stops à valeur fixe ou ATR.

Résumé

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 ///////////


Plus de