Stratégie de l'indicateur BOLL Super Trend Moving Average


Date de création: 2023-12-01 16:29:56 Dernière modification: 2023-12-01 16:30:43
Copier: 0 Nombre de clics: 954
1
Suivre
1619
Abonnés

Stratégie de l’indicateur BOLL Super Trend Moving Average

Aperçu

La stratégie BOLL est une stratégie courante d’indicateur de stop-loss basée sur l’amplitude de mouvement réelle moyenne d’ATR. Cette stratégie utilise l’indicateur BOLL pour tracer un canal de tendance polyvalent sur le graphique et envoie un signal d’achat et de vente en combinaison avec l’indicateur Boll.

Principe de stratégie

La stratégie utilise deux paramètres principaux, le cycle de l’axe et le multiplicateur, 10 et 3 par défaut, respectivement, pour calculer la moyenne de la transition. La formule de calcul est la suivante:

Ligne supérieure: prix de clôture - (multiplié par la moyenne des fluctuations réelles d’ATR) Ligne du bas: prix de clôture + (multiplié par la moyenne des fluctuations réelles d’ATR)

Quand le prix de clôture est supérieur à la hausse du cycle précédent, il est considéré comme un signal à plusieurs têtes; quand le prix de clôture est inférieur à la baisse du cycle précédent, il est considéré comme un signal à vide.

La stratégie est également combinée avec l’indicateur de la bande de Brin, avec le milieu de la bande comme ligne de référence, séparant les deux écarts standards de la bande de haut en bas. Un signal d’achat est généré lorsque le prix franchit le milieu de la bande de bas en haut; un signal de vente est généré lorsque le prix franchit le milieu de la bande de haut en bas.

Avantages stratégiques

  1. L’utilisation de l’ATA pour calculer l’amplitude des fluctuations permet de saisir rapidement les tendances changeantes du marché
  2. Les signaux de trading sont plus fiables grâce à l’indicateur de la ceinture de Brin
  3. Paramètres personnalisables pour s’adapter à différents environnements de marché

Risque stratégique

  1. Les secousses peuvent générer de faux signaux.
  2. Une mauvaise configuration des paramètres peut entraîner des transactions fréquentes
  3. Il n’y a pas de point de basculement, il y a un certain retard.

Direction d’optimisation

  1. Optimisation des paramètres ATR pour réduire le bruit des transactions avec des filtres
  2. Le taux de rendement des bénéfices est réduit en combinant avec d’autres indicateurs pour juger de la résistance.
  3. Ajout d’un module de gestion des fonds pour contrôler les pertes individuelles

Résumer

La stratégie BOLL hypertrend alignée intègre les avantages de plusieurs indicateurs techniques et utilise un mécanisme de suivi des pertes dynamique pour suivre efficacement les tendances du marché. Les paramètres de la stratégie sont personnalisables, adaptatifs et constituent une stratégie de suivi de percée recommandée.

Code source de la stratégie
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
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 = 999)
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 = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short)
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)