Stratégie de percée en matière d'oscillation à double moyenne mobile


Date de création: 2024-01-08 14:43:48 Dernière modification: 2024-01-08 15:51:13
Copier: 0 Nombre de clics: 570
1
Suivre
1617
Abonnés

Stratégie de percée en matière d’oscillation à double moyenne mobile

Aperçu

Une stratégie de rupture de la courte courbe est une stratégie de négociation de courte courbe qui utilise le système de la double courbe. La stratégie est basée sur les canaux de prix et les bandes de double brin pour construire un signal de transaction, complété par l’indicateur RSI rapide pour juger de la survente et de la survente, afin de générer des signaux d’entrée et de sortie.

Principe de stratégie

La double stratégie de rupture de la chaîne de fluctuation de la moyenne utilise des canaux de prix de 20 cycles et des bandes de bourgeons comme indicateurs de trading principaux. Les canaux de prix sont constitués de la moyenne des prix les plus élevés et les plus bas, représentant la zone de fluctuation du prix actuel. Les bandes de bourgeons sont constituées de l’axe central du canal de prix et de l’écart standard, et les zones en forme de bandes décrivent plus intuitivement la zone de fluctuation des prix.

Plus précisément, lorsque le RSI rapide est inférieur à 5, il est considéré comme une zone de survente. Lorsque le RSI rapide est supérieur à 99, il est considéré comme une zone de survente.

Avantages stratégiques

Le plus grand avantage de la double moyenne est de capturer les points de basculement des tendances de prix de la courte ligne moyenne et de réaliser des gains. Par rapport à la moyenne simple et à la voie, la double bande de bourgeons reflète plus intuitivement les fluctuations et la capacité des prix. Par rapport aux indicateurs à plus longues périodes, tels que la moyenne de 20 jours, 60 jours, etc., elle réagit plus rapidement aux changements de prix et a un taux de réussite plus élevé pour capturer les revirements.

Risque stratégique

Il existe un certain risque dans la stratégie de rupture de la doublure de la moyenne. Tout d’abord, la négociation de la courte et moyenne ligne présente elle-même un risque plus élevé d’arrêt. Dans une tendance forte, l’indicateur de la courte et moyenne ligne peut provoquer plusieurs fausses ruptures de la tête, ce qui entraîne des pertes.

La contre-mesure consiste à ajuster correctement l’amplitude de stop loss, à assouplir les points de stop loss dans les tendances à la hausse et à resserrer dans les tendances à la baisse. De plus, il faut prendre en compte davantage d’indicateurs auxiliaires et éviter de s’appuyer uniquement sur un ou deux indicateurs. Lorsque l’efficacité du jugement est réduite, il convient de réduire le risque d’évitement de position.

Orientation de l’optimisation de la stratégie

Il y a encore de la place pour une optimisation supplémentaire de la stratégie de rupture de la double ligne de moyenne. Premièrement, l’optimisation des paramètres. Vous pouvez tester plus de paramètres de cycle pour trouver la combinaison optimale de paramètres. Deuxièmement, l’optimisation des modèles.

Résumer

La stratégie de rupture de la courte ligne dans le prix par la construction d’un système de double bande de broyage est une stratégie de suivi de tendance efficace. La stratégie a un taux de réussite élevé, une réponse rapide et une rentabilité efficace. La performance de la stratégie peut être encore améliorée par des moyens tels que l’optimisation des paramètres, l’optimisation des modèles et la sélection du délai.

Code source de la stratégie
/*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)