Stratégie Super Trend V


Date de création: 2023-10-18 12:35:53 Dernière modification: 2023-10-18 12:35:53
Copier: 0 Nombre de clics: 877
1
Suivre
1617
Abonnés

Stratégie Super Trend V

Aperçu

La stratégie de Super Trend V est une stratégie de négociation de courte ligne basée sur les moyennes mobiles et les écarts standard. Elle utilise l’indicateur Super Trend pour déterminer la direction de la tendance des prix, combinant le support et la résistance formés par les moyennes mobiles pour entrer dans le marché.

Principe de stratégie

La stratégie commence par calculer l’indicateur de Super Trend, qui utilise l’ATR et la relation entre le prix et la direction de la tendance. Il est optimiste lorsque le prix est supérieur à la tendance haussière et négatif lorsque le prix est inférieur à la tendance baissière.

On calcule ensuite l’EMA de la moyenne mobile du prix et l’EMA de la moyenne mobile du prix d’ouverture. On obtient un signal d’achat lorsque le prix est au-dessus de la moyenne mobile et au-dessus de la moyenne moyenne ouverte, et un signal de vente lorsque le prix est en dessous de la moyenne mobile et au-dessous de la moyenne ouverte.

Il est ensuite utilisé pour calculer la montée et la descente du canal de prix et le traitement de lissage. Le signal d’arrêt est donné lorsque le prix dépasse la montée et le signal d’arrêt est donné lorsque le prix dépasse la descente.

Enfin, les moyennes mobiles de différentes périodes permettent de juger de la direction de la tendance et, combinées à l’indicateur Super Trend, forment une estimation de la tendance stable.

Avantages stratégiques

  • Utilisez les indicateurs de Super Trend pour déterminer la direction de la tendance des prix et éviter les pertes causées par le renversement de tendance
  • Les moyennes mobiles combinées avec le prix d’ouverture aident à déterminer le moment d’entrée et à éviter les fausses percées
  • Le canal de décalage standard prédit les zones de support et de résistance potentiels du prix et définit un prix stop-loss
  • La combinaison de plusieurs cycles de temps pour déterminer la direction de la tendance et améliorer la stabilité

Risque stratégique

  • Les indicateurs de la Super Trend sont en retard et risquent de manquer le point de conversion de la tendance
  • Les moyennes mobiles génèrent des signaux croisés avec des délais d’entrée inadéquats.
  • La portée du canal de déviation standard est trop fixe pour refléter les fluctuations du marché en temps réel
  • Les jugements de plusieurs périodes peuvent entrer en conflit.

Comment gérer les risques:

  • Réduire les paramètres de Super Trend de manière appropriée pour améliorer la sensibilité
  • Optimiser le cycle de la moyenne mobile, ou ajouter d’autres indicateurs pour juger de l’admission
  • Adaptation dynamique des paramètres du canal de décalage standard pour que la portée soit adaptée au marché
  • Définir clairement la logique de jugement pluricyclique et gérer les conflits possibles

Orientation de l’optimisation de la stratégie

  • Optimiser les paramètres de Super Trend pour trouver la meilleure combinaison de paramètres
  • Essayez d’autres indicateurs combinés avec la moyenne mobile pour déterminer le moment de l’entrée
  • Essayez d’ajuster dynamiquement les paramètres du canal de déviation standard
  • Tester différentes combinaisons de périodes pour trouver la meilleure correspondance
  • Optimiser les stratégies de stop-loss pour augmenter la marge de profit de la stratégie

Résumer

La stratégie V hyper-trend intègre les avantages des indicateurs tels que la tendance, la moyenne et le canal standard d’écart, permet de juger de manière stable la direction de la tendance, de choisir le bon moment d’entrée et de définir une stratégie de négociation en ligne courte pour les arrêts de perte de la zone de prix. L’amélioration de la stabilité et de la rentabilité de la stratégie grâce à l’optimisation des paramètres, de l’optimisation des indicateurs et de l’optimisation des arrêts de perte. Sa logique solide et sa pensée rigoureuse méritent d’être apprises et étudiées.

Code source de la stratégie
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Super trend V Strategy version", overlay = true, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

v =  spreadvol + cum(spreadvol)
smooth = sma(v, v_len)
v_spread = stdev(v - smooth, window_len)
shadow = (v - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//
src = out
src1=open
src2=low
src3=high
tf =input(720)
len = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

c = ema(src, len)
plot(c,color=color.red)
o = ema(src1,len)
plot(o,color=color.blue)
//h = ema(src3,len)
//l=ema(src2,len)
//
col=c > o? color.lime : color.orange
vis = true
vl = c
ll = o
m1 = plot(vl, color=col, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=col, linewidth=2, transp=80)

fill(m1, m2,  color=col, transp=70)
//

vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = vpt - (st_mult * atr(st_period))
dn_lev = vpt + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( close, st_line) and close>o
sell=crossunder(close, st_line) and close<o
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon


//
multiplier = input(title="TP VWAP Deviation", type=input.float, defval=2, minval=1)
src5 = vwap
len5 = input(title="TP length", defval=150, minval=1)
offset = 0

calcSlope(src5, len5) =>
    sumX = 0.0
    sumY = 0.0
    sumXSqr = 0.0
    sumXY = 0.0
    for i = 1 to len5
        val = src5[len5-i]
        per = i + 1.0
        sumX := sumX + per
        sumY := sumY + val
        sumXSqr := sumXSqr + per * per
        sumXY := sumXY + val * per
        
        
    slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
    average = sumY / len5
    intercept = average - slope * sumX / len5 + slope
    [slope, average, intercept]

var float tmp = na
[s, a, i] = calcSlope(src5, len5)

vwap1=(i + s * (len5 - offset))
sdev = stdev(vwap, len5)
dev = multiplier * sdev
top=vwap1+dev
bott=vwap1-dev

//
z1 = vwap1 + dev
x1 = vwap1 - dev

low1 = crossover(close, x1)  
high1 = crossunder(close, z1) 

plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon



//
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

l = buy
s1 = sell
        
if l and testPeriod()
    strategy.entry("buy", strategy.long)
if s1 and testPeriod()
    strategy.entry("sell", strategy.short)