
La stratégie de trading VMA est une stratégie de trading quantitatif basée sur des moyennes mobiles variables. Cette stratégie utilise des moyennes mobiles variables pour capturer les tendances du marché et générer des signaux de trading en conséquence.
Le cœur d’une stratégie de trading VMA est de calculer une moyenne mobile de longueur variable. La moyenne mobile est un indicateur technique bien connu qui calcule le prix moyen sur une période donnée.
Plus précisément, la stratégie commence par calculer une série d’intermédiaires, tels que les indicateurs de mouvement de direction des prix (PDM, MDIM) et les données de traitement en douceur (PDMs, MDMs). Ces données sont finalement utilisées pour obtenir la force de l’indicateur (iS) qui reflète la force des fluctuations des prix.
La stratégie TradingVMA ajuste ensuite dynamiquement la longueur des moyennes mobiles en fonction de la force de l’indicateur. Lorsque les fluctuations du marché sont plus fortes, les moyennes mobiles sont plus courtes et les moyennes mobiles plus longues. Cela permet de répondre plus rapidement aux changements du marché.
Enfin, la stratégie compare le prix actuel à la taille de la VMA, générant un signal de transaction. Faire plus lorsque le prix est supérieur à la VMA et faire moins lorsque le prix est inférieur à la VMA.
La stratégie de trading VMA présente les principaux avantages suivants:
Les cycles variables Filters Noise sont plus stables - les cycles des moyennes mobiles variables s’adaptent aux changements du marché, ce qui permet de filtrer le bruit des ondes et d’obtenir un signal de tendance plus stable.
Les moyennes mobiles variables peuvent être utilisées pour répondre rapidement aux changements de prix et pour capturer les points de basculement des nouvelles tendances.
Reduce Overtrading - Comparé aux indicateurs à cycle fixe, le Trading VMA réduit le nombre de transactions inutiles.
Paramètres flexibles - Cette stratégie permet à l’utilisateur de choisir des paramètres en fonction de ses préférences et de s’adapter à différents environnements de marché.
La stratégie de trading VMA comporte également les principaux risques suivants:
Miss Rapid Reversals - lorsque la tendance se retourne rapidement, les moyennes mobiles continuellement ajustées peuvent être retardées.
Bias de retard - Toutes les stratégies de moyenne mobile ont un certain niveau de retard.
Erreurs de signaux de plus-value - Dans les marchés classés horizontalement, TradingVMA peut générer de faux signaux de plus-value.
Difficulté d’optimisation des paramètres - Trouver la meilleure combinaison de paramètres peut être difficile.
Ces risques peuvent être maîtrisés par l’arrêt des pertes, l’ajustement des combinaisons de paramètres, etc.
Les stratégies de trading VMA peuvent également être optimisées dans les directions suivantes:
L’intégration d’autres indicateurs Combine Other Indicators - L’utilisation d’une combinaison d’autres indicateurs tels que la tendance, le renversement de tendance peut améliorer la qualité du signal.
Optimisation des paramètres - Trouver la meilleure combinaison de paramètres grâce à la rétroaction historique et à l’optimisation des paramètres.
Adaptive Trading Rules - différentes règles d’ouverture et de fermeture de positions sont appliquées en fonction des conditions du marché.
Systématisation des transactions algorithmiques - algorithmisation et systématisation des stratégies afin de faciliter la rétroaction et l’optimisation.
Le trading VMA est une stratégie quantitative auto-adaptative. Elle utilise des indicateurs VMA spécialement conçus pour capturer les tendances du marché, avec l’avantage de répondre rapidement et de filtrer le bruit. La stratégie peut être optimisée de plusieurs façons pour obtenir de meilleures performances.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
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/
// © laptevmaxim92
//@version=4
strategy("Variable Moving Average Strategy", overlay=true)
src=close
l =input(5, title="VMA Length")
std=input(true, title="Show Trend Direction Colors")
utp = input(false, "Use take profit?")
pr = input(100, "Take profit pips")
usl = input(false, "Use stop loss?")
sl = input(100, "Stop loss pips")
fromday = input(01, defval=01, minval=01, maxval=31, title="From Day")
frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month")
fromyear = input(2000, minval=1900, maxval=2100, title="From Year")
today = input(31, defval=01, minval=01, maxval=31, title="To Day")
tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month")
toyear = input(2019, minval=1900, maxval=2100, title="To Year")
use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))
k = 1.0/l
pdm = 0.0
pdm := max((src - src[1]), 0)
mdm = 0.0
mdm := max((src[1] - src), 0)
pdmS = 0.0
pdmS := ((1 - k)*nz(pdmS[1]) + k*pdm)
mdmS = 0.0
mdmS := ((1 - k)*nz(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = 0.0
pdiS := ((1 - k)*nz(pdiS[1]) + k*pdi)
mdiS = 0.0
mdiS := ((1 - k)*nz(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = 0.0
iS := ((1 - k)*nz(iS[1]) + k*d/s1)
hhv = highest(iS, l)
llv = lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = 0.0
vma := (1 - k*vI)*nz(vma[1]) + k*vI*src
vmaC=(vma > vma[1]) ? color.lime : (vma<vma[1]) ? color.red : (vma==vma[1]) ? color.yellow : na
plot(vma, color=std?vmaC:color.white, linewidth=3, title="VMA")
longCondition = vma > vma[1]
if (longCondition)
strategy.entry("BUY", strategy.long and use_date)
shortCondition = vma < vma[1]
if (shortCondition)
strategy.entry("SELL", strategy.short and use_date)
if (utp and not usl)
strategy.exit("TP", "BUY", profit = pr)
strategy.exit("TP", "SELL", profit = pr)
if (usl and not utp)
strategy.exit("SL", "BUY", loss = sl)
strategy.exit("SL", "SELL", loss = sl)
if (usl and utp)
strategy.exit("TP/SL", "BUY", loss = sl, profit = pr)
strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)