La stratégie de rupture de l'oscillation de moyenne mobile double est une stratégie de trading à court terme qui utilise un système de moyenne mobile double.
La stratégie de rupture de l'oscillation à moyenne mobile double utilise des canaux de prix de 20 périodes et des bandes de Bollinger comme indicateurs de négociation principaux. Le canal de prix se compose des moyennes mobiles des prix les plus élevés et les plus bas, représentant la plage d'oscillation actuelle des prix. Les bandes de Bollinger sont formées par la ligne médiane du canal de prix et les écarts types, qui décrivent intuitivement la plage de fluctuation des prix. Lorsque les prix approchent les rails supérieur et inférieur du canal, cela indique que les prix peuvent franchir la plage d'oscillation et former une nouvelle tendance. À ce stade, combiné à l'indicateur RSI rapide pour juger des conditions d'achat ou de survente, la direction de la tendance peut être déterminée et des décisions de négociation peuvent être prises.
En particulier, lorsque le RSI rapide est inférieur à 5, il est considéré comme la zone de survente, et lorsque le RSI rapide dépasse 99, il est considéré comme la zone de surachat.
Le plus grand avantage de la stratégie de rupture de la moyenne mobile double est qu'elle capture les points d'inflexion des tendances des prix à moyen terme pour le profit. Par rapport aux moyennes mobiles simples et aux canaux, les bandes de Bollinger doubles reflètent plus intuitivement les fluctuations et les volumes des prix. Et par rapport aux indicateurs de cycle plus long tels que les moyennes mobiles de 20 jours et de 60 jours, elle répond plus rapidement aux changements de prix et a un taux de réussite plus élevé pour capturer les tours. En outre, la combinaison de l'indicateur RSI rapide peut filtrer efficacement les fausses ruptures. Par conséquent, cette stratégie peut maximiser la probabilité de profit.
La stratégie de rupture de l'oscillation moyenne mobile double comporte certains risques. Premièrement, le trading à moyen terme lui-même comporte des risques d'arrêt-perte plus élevés. Dans une tendance forte, de fausses ruptures peuvent se produire plusieurs fois sur les indicateurs à moyen terme, provoquant des arrêts. Deuxièmement, l'efficacité des indicateurs RSI rapides pour juger des zones de surachat et de survente sera affectée par le sentiment du marché. Lorsque des changements structurels se produisent sur le marché, l'utilité de ces indicateurs auxiliaires diminuera. Enfin, l'intégration d'autres facteurs tels que les prix de clôture, le volume et le chiffre d'affaires peut améliorer la précision des décisions.
La contre-mesure consiste à ajuster de manière appropriée la plage de stop loss, à assouplir le point de stop loss dans une tendance haussière et à le resserrer dans une tendance baissière. En outre, prenez pleinement en compte plus d'indicateurs auxiliaires pour éviter de ne compter que sur un ou deux indicateurs. Lorsque l'effet de jugement diminue, réduisez la position de manière appropriée pour éviter les risques.
Il reste encore de la place pour une optimisation supplémentaire de la stratégie de rupture de l'oscillation moyenne mobile double. Premièrement, l'optimisation des paramètres. Plus de paramètres de cycle peuvent être testés pour trouver la combinaison optimale de paramètres. Deuxièmement, l'optimisation du modèle. Introduire des modèles d'apprentissage automatique pour juger plus précisément les zones d'achat et de survente. Troisièmement, l'optimisation des délais. Tester sous différents délais tels que quotidien et 60 minutes séparément pour déterminer le meilleur scénario d'application. Quatrièmement, l'optimisation de la condition. Ajouter plus d'indicateurs de volume et de prix aux signaux de filtre, tels que l'expansion du volume et l'indice de tendance DMI.
La stratégie de rupture de la moyenne mobile double capte les ruptures de prix à moyen terme en construisant un système de bande de Bollinger double, qui est une stratégie de suivi de tendance efficace. La stratégie a un taux de réussite élevé et une réponse rapide, et peut profiter efficacement.
/*backtest start: 2023-01-07 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.4", shorttitle = "NoroBands str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, "Use ColorBar") usecb = input(true, "Use CryptoBottom") usersi = input(true, "Use RSI") usemm = input(true, "Use min/max") needbb = input(false, defval = false, title = "Show Bands") needbg = input(false, defval = false, title = "Show Background") needlo = input(false, defval = false, title = "Show Locomotive") src = close //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //CryptoBottom mac = sma(close, 10) lencb = abs(close - mac) sma = sma(lencb, 100) max = max(open, close) min = min(open, close) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd2 = center + distsma * 2 ld2 = center - distsma * 2 //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2") plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) ? 1 : 0 up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom //dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom up3 = fastrsi < 5 ? 1 : 0 //dn3 = fastrsi > 99 ? 1 : 0 //Locomotive uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0 plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0) longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true) if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)