
Cette stratégie s’appelleStratégie de croisement de la moyenne mobile quantitative pondéréeLa stratégie de croisement des moyennes mobiles pondérées (WAMC) est basée sur la combinaison de plusieurs indicateurs tels que le prix, le volume des transactions, la conception de lignes rapides et lentes, et l’émission de signaux d’achat et de vente lorsqu’ils se produisent.
L’indicateur central de cette stratégie est la moyenne mobile quantitative. La QMA mesure la direction de la tendance en calculant une moyenne pondérée des prix sur une période de temps. Elle diffère de la moyenne mobile ordinaire par le fait que le poids des prix est égal au poids des prix.*Le volume des transactions (en volume) diminue avec le temps. Ainsi, les prix les plus récents ont plus de poids et peuvent répondre plus rapidement aux changements du marché.
Plus précisément, cette stratégie construit une ligne QMA rapide et une ligne QMA lente. Le paramètre de la ligne rapide est défini à 25 jours et le paramètre de la ligne lente à 29 jours. Un signal d’achat est généré lorsque la ligne rapide traverse la ligne lente par le bas; un signal de vente est généré lorsque la ligne rapide traverse la ligne lente par le haut.
Par rapport à la moyenne mobile ordinaire, cette stratégie présente les avantages suivants:
Cette stratégie présente aussi des risques:
Ces risques peuvent être atténués par un ajustement approprié de la fréquence des paramètres, une analyse rigoureuse de la marche en avant et une combinaison d’autres indicateurs.
Il y a encore de la place pour optimiser la stratégie:
Cette stratégie est généralement une stratégie de trading à court terme qui présente une meilleure stabilité. Ses indicateurs reflètent mieux la relation d’offre et de demande du marché que la moyenne des prix uniques. Grâce à l’ajustement des paramètres et à l’introduction de moyens de contrôle du risque, cette stratégie peut fonctionner de manière stable à long terme et obtenir de bons rendements.
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Brad VWMACD Strategy 2233", overlay=false, max_bars_back=500,default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent, commission_value=0.18, default_qty_value=100)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT SMA ===
//fastMA = input(defval = 16, type = integer, title = "FastMA", minval = 1 )
//slowMA = input(defval = 23, type = integer, title = "SlowMA", minval = 1)
fastMA = input(defval = 25, title = "FastMA", minval = 1 )
slowMA = input(defval = 29, title = "SlowMA", minval = 1)
Long_period = slowMA
Short_period = fastMA
Smoothing_period = input(9, minval=1)
xLongMAVolPrice = ema(volume * close, Long_period)
xLongMAVol = ema(volume, Long_period)
xResLong = (xLongMAVolPrice * Long_period) / (xLongMAVol * Long_period)
xShortMAVolPrice = ema(volume * close, Short_period)
xShortMAVol = ema(volume, Short_period)
xResShort = (xShortMAVolPrice * Short_period) / (xShortMAVol * Short_period)
xVMACD = xResShort - xResLong
xVMACDSignal = ema(xVMACD, Smoothing_period)
nRes = xVMACD - xVMACDSignal
//plot(nRes*20+slowMA, color=blue, style = line )
//plot(3000, color=red, style = line )
// === SERIES SETUP ===
buy = crossover( xVMACD,xVMACDSignal) // buy when fastMA crosses over slowMA
sell = crossunder( xVMACD,xVMACDSignal) // sell when fastMA crosses under slowMA
// === SERIES SETUP ===
//buy = crossover(vwma(close, fastMA),7+vwma(close, slowMA)) // buy when fastMA crosses over slowMA
//sell = crossunder(vwma(close, fastMA),vwma(close, slowMA)-7) // sell when fastMA crosses under slowMA
// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy) // buy long when "within window of time" AND crossover
strategy.close("L", when = window() and sell) // sell long when "within window of time" AND crossunder
// === EXECUTION ===
strategy.entry("S", strategy.short, when = window() and sell) // buy long when "within window of time" AND crossover
strategy.close("S", when = window() and buy) // sell long when "within window of time" AND crossunder
plotshape(window() and buy, style=shape.triangleup, color=green, text="up")
plotshape(window() and sell, style=shape.triangledown, color=red, text="down")
plot(xVMACD*100, title = 'FastMA', color = orange, linewidth = 2, style = line) // plot FastMA
plot(xVMACDSignal*100, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA