Stratégie de suivi des super tendances


Date de création: 2023-12-26 15:58:55 Dernière modification: 2023-12-26 15:58:55
Copier: 1 Nombre de clics: 611
1
Suivre
1623
Abonnés

Stratégie de suivi des super tendances

Aperçu

Cette stratégie est une stratégie de suivi de super-tendances, dont l’idée principale est de combiner des indicateurs de super-tendances avec différents paramètres pour obtenir un effet de suivi et de contrôler les risques en utilisant des indicateurs de filtrage. L’idée centrale de la stratégie est simple, pratique et facile à comprendre, adaptée aux débutants.

Principe de stratégie

La stratégie est composée principalement de trois groupes d’indicateurs de super-tendance avec différents paramètres. Le premier groupe d’indicateurs de super-tendance principaux utilise des paramètres par défaut pour déterminer la direction de la tendance de la marque. Le deuxième groupe d’indicateurs de super-tendance secondaires permet de suivre plus sensiblement les variations de prix en réduisant les cycles ATR et en augmentant le multiplicateur ATR.

Lorsque la tendance supérieure émet un signal d’achat, la stratégie adopte un achat de suivi si la tendance supérieure émet également un signal en même temps et si le filtre est orienté à la hausse; lorsque la tendance supérieure émet un signal de vente, la stratégie adopte un suivi de vente si la tendance supérieure émet également un signal en même temps et si le filtre est orienté à la baisse. Ainsi, tout en garantissant la capture de la tendance principale, l’indicateur de la tendance supérieure peut être utilisé pour suivre de près les ajustements de finesse afin d’effectuer des entrées et des arrêts en temps opportun.

Avantages stratégiques

  1. Les stratégies sont simples, claires et faciles à comprendre, adaptées aux débutants.
  2. Les paramètres de la stratégie sont réglés de manière rationnelle pour suivre efficacement les tendances et contrôler les risques.
  3. Les signaux stratégiques sont plus précis, plus fiables et ont un taux de réussite plus élevé.
  4. Combinaison de différentes combinaisons de paramètres pour un suivi efficace
  5. Ajout d’un mécanisme de filtrage permettant de filtrer efficacement les signaux de fausses alertes et de contrôler les risques

Risque stratégique

  1. Le risque systémique des actions elles-mêmes
  2. L’indicateur de super-tendance peut être en retard sur certains marchés
  3. Une mauvaise configuration des paramètres utilisés par l’indicateur ATR peut entraîner une déviation du signal stratégique
  4. Un volume insuffisant de transactions stratégiques pourrait entraîner des pertes difficiles à compenser

Les principales mesures de prévention des risques:

  1. Choisissez des actions à forte liquidité et à forte volatilité
  2. Optimiser les paramètres de manière appropriée pour réduire le risque de retard
  3. Optimisation des tests de paramètres pour une meilleure précision du signal
  4. Augmenter le volume des transactions de manière appropriée pour assurer une marge de manœuvre

Orientation de l’optimisation de la stratégie

  1. Tester différentes combinaisons de paramètres ATR pour optimiser le suivi
  2. Essayez d’utiliser d’autres indicateurs de volatilité plutôt que l’ATR
  3. Augmentation ou diminution du nombre de combinaisons de super-tendances, effet de test
  4. Essayez d’optimiser le filtrage du signal en combinant avec d’autres indicateurs
  5. Tester différentes façons de réduire les pertes et trouver la meilleure solution

Résumer

L’idée générale de cette stratégie est claire et simple. Un ensemble d’indicateurs de super-tendance se coordonnant entre eux grâce à différents paramètres, permettant de suivre l’entrée et de contrôler les risques. Les signaux de la stratégie sont plus précis, fonctionnent mieux en direct, conviennent aux débutants et peuvent également servir de modèle pour l’optimisation des tests de divers indicateurs et paramètres.

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

//@version=4
strategy("Supertrend TEST 2 Strategy", overlay = true, format=format.price, precision=2)

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close

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 )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
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 )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
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

sPeriods=input(title="ATR Period", type=input.integer, defval=8)
sMultiplier=input(title="dop ATR Multiplier", type=input.float, step=0.1, defval=1.5)
satr2 = sma(tr, sPeriods)
satr= changeATR ? atr(sPeriods) : satr2
ssup=ohlc4-(sMultiplier*satr)
ssup1 = nz(ssup[1],ssup)
ssup := close[1] > ssup1 ? max(ssup,ssup1) : ssup
sdn=ohlc4+(sMultiplier*satr)
sdn1 = nz(sdn[1], sdn)
sdn := close[1] < sdn1 ? min(sdn, sdn1) : sdn
strend = 1
strend := nz(strend[1], strend)
strend := strend == -1 and close > sdn1 ? 1 : strend == 1 and close < ssup1 ? -1 : strend
sbuySignal = strend == 1 and strend[1] == -1
ssellSignal = strend == -1 and strend[1] == 1

fPeriods=input(title="ATR Period", type=input.integer, defval=10)
fMultiplier=input(title="filter ATR Multiplier", type=input.float, step=0.1, defval=5)
fatr2 = sma(tr, fPeriods)
fatr= changeATR ? atr(fPeriods) : fatr2
fup=ohlc4-(fMultiplier*fatr)
fup1 = nz(fup[1],fup)
fup := close[1] > fup1 ? max(fup,fup1) : fup
fdn=ohlc4+(fMultiplier*fatr)
fdn1 = nz(fdn[1], fdn)
fdn := close[1] < fdn1 ? min(fdn, fdn1) : fdn
ftrend = 1
ftrend := nz(ftrend[1], ftrend)
ftrend := ftrend == -1 and close > fdn1 ? 1 : ftrend == 1 and close < fup1 ? -1 : ftrend
fbuySignal = ftrend == 1 and ftrend[1] == -1
fsellSignal = ftrend == -1 and ftrend[1] == 1
tcolor=color.new(color.gray,50)
fdnPlot = plot(ftrend == 1 ? na : fdn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=tcolor)
fupPlot = plot(ftrend == 1 ? fup : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=tcolor)



if (strategy.position_size > 0)
	tp:=tp[1]
	sl:=up
	strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
	
if (strategy.position_size < 0)
	tp:=tp[1]
	sl:=dn
	strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)



if ((buySignal and  ftrend==1) or (sbuySignal and trend==1 and  ftrend==1)) 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if ((sellSignal and ftrend==-1) or (ssellSignal and trend==-1 and  ftrend==-1)) 
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))