
Cette stratégie est basée sur la mesure de la longueur et de la largeur des prix pour concevoir des signaux de négociation permettant de juger de la force d’achat et de vente du marché.
L’indicateur VB reflète la dynamique de la variation du volume d’achat sur les prix. Il est conçu comme suit:
Le taux de fluctuation quotidien du prix typique représente la force de variation du prix.
Les forces d’achat et de vente au moment de la clôture sont déterminées en multipliant le volume des transactions et les forces de fluctuation des prix.
Les valeurs de l’indicateur oscillent sur l’axe 0 et la mesure de la force de la pluralité est basée sur la valeur positive et négative de l’indicateur.
Cette stratégie construit l’indicateur VB et définit la ligne de signal. Un signal d’achat est généré lorsque l’indicateur VB traverse la ligne de signal; un signal de vente est généré lorsque l’indicateur VB traverse la ligne de signal.
Les principales étapes du code sont les suivantes:
Calculer le taux de fluctuation quotidien du prix typique en utilisant l’inter comme force de variation du prix.
Le coefficient de coupe de la force d’oscillation est défini, et la force d’oscillation au-delà de cette plage est considérée comme coefficient de coupe.
Calculer la force quantifiée après coupure vcp
Pour obtenir l’indicateur de quantification vfi, il est nécessaire d’obtenir vcp.
Réglez la longueur de la ligne de signal signalLength, et obtenez la ligne de signal vfima。
Comparer l’indicateur VB vfi et la ligne de signaux vfima, pour générer un signal de transaction.
Cette stratégie présente les avantages suivants:
L’utilisation de la relation quantité-prix pour juger de la force d’achat et de vente sur le marché est indépendante du prix lui-même.
Il est possible de définir des paramètres pour contrôler la portée de calcul de la force quantifiée, afin d’éviter les effets de fluctuations anormales.
En combinant l’indicateur VB lui-même avec la comparaison de la ligne de signal, on peut définir un temps d’entrée raisonnable.
Le calcul de l’indicateur est simple, clair et facile à utiliser sur le disque dur.
Les paramètres d’indicateur et de ligne de signal peuvent être personnalisés pour optimiser l’effet de la stratégie.
Cette stratégie comporte aussi des risques:
L’indicateur VB est sensible aux fluctuations inhabituelles des prix et nécessite une configuration appropriée des paramètres de coupe.
Il est plus probable que le cours des actions s’écarte des signaux de l’indicateur et il faut éviter le suivi aveugle.
Il est nécessaire d’optimiser les paramètres de l’indicateur et les paramètres de la ligne de signal pour éviter la production de faux signaux.
Il convient aux variétés présentant des caractéristiques quantitatives évidentes et ne convient pas aux variétés à faible mobilité.
Il faut être attentif à l’évolution des indices, qui peuvent être le signe d’une reprise du marché.
Le risque peut être maîtrisé en ajustant la plage de paramètres, en combinant le filtrage avec d’autres indicateurs et en assouplissant le stop-loss de manière appropriée.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser les paramètres de calcul de la force quantifiée, en équilibrant la sensibilité et la stabilité.
Optimiser les paramètres de la ligne de signal, équilibrer la latence et le bruit.
Ajout d’indicateurs tels que l’analyse de la propagation du volume pour vérifier l’efficacité.
Augmenter la tendance et soutenir les indicateurs de résistance pour éviter les échanges négatifs.
Il s’agit de définir un mécanisme de stop-loss dynamique qui permet d’ajuster les points de stop-loss en fonction de la volatilité du marché.
L’apprentissage automatique est utilisé pour former les meilleures combinaisons de paramètres possibles.
Les tests de retour sont effectués sur plusieurs variétés et à différents cycles pour évaluer la robustesse de la stratégie.
Comparer l’influence de différents paramètres sur la courbe de rendement et trouver le paramètre optimal.
Cette stratégie est basée sur des indicateurs de mesure de la longueur et de la mesure du prix, pour juger de la force d’achat et de vente. Elle présente des avantages tels que la simplicité de la conception de l’indicateur, l’ajustabilité des paramètres, mais il existe également un certain risque de faux signaux.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("VB Strategy", overlay=true)
length = input(130, title="거래량 길이")
coef = input(0.2, title="계수")
vcoef = input(2.5, title="최대 계수")
signalLength=input(5)
smoothVFI=input(false, type=bool, title="부드럽게")
//볼밴
length2 = input(20, minval=1, title="볼밴 길이")
ma(x,y) => smoothVFI ? sma(x,y) : x
typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, length )[1]
vmax = vave * vcoef
vc = iff(volume < vmax, volume, vmax)
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )
vfi = ma(sum( vcp , length )/vave, 3)
vfima=ema( vfi, signalLength )
d=vfi-vfima
upper = vfima + stdev(vfi, length2)
lower = vfima - stdev(vfi, length2)
buysignal = cross(vfi, lower) and crossunder(vfi, lower) == 1 ? vfima : na
sellsignal = cross(vfi, upper) and crossover(vfi, upper) == 1 ? vfima : na
//times = timestamp("GMT+6", 2017, 12, 6, 00, 00)
//if (buysignal and times <= time)
if (buysignal)
if(strategy.position_size < 0)
strategy.close("SHORT")
if(strategy.position_size > 0)
strategy.order("LONG", true, 1, when = (low+high)/2)
if(strategy.position_size == 0)
strategy.entry("LONG", strategy.long, when = (low+high)/2)
//if (sellsignal and times <= time)
if (sellsignal)
if(strategy.position_size > 0)
strategy.close("LONG")
if(strategy.position_size < 0)
strategy.order("SHORT", false, 1, when = (low+high)/2)
if(strategy.position_size == 0)
strategy.entry("SHORT", strategy.short, when = (low+high)/2)