La stratégie identifie les opportunités d’entrée sur les longues lignes à l’aide de l’indicateur SuperTrend. Elle utilise l’ATR de la plage réelle moyenne et le multiplicateur pour déterminer le support dynamique et effectuer une entrée sur les longues positions. La stratégie se concentre sur les opportunités de négociation sur les longues positions.
Les hausses et les baisses sont calculées en fonction des cycles et des multiples de l’ATR.
Pour calculer la tendance actuelle, 1 représente la hausse, -1 représente la baisse. Lorsqu’un prix franchit la ligne supérieure, la tendance est inversée par une baisse, déclenchant un signal d’achat. Lorsqu’il franchit la ligne inférieure, la tendance est inversée par une baisse, déclenchant un signal de vente.
En combinant les moyennes mobiles comme filtre de tendance, il est nécessaire de demander un prix supérieur à la MA pour acheter une rupture de la voie, et un prix inférieur à la MA pour vendre une rupture de la voie, afin d’éviter les fausses ruptures.
L’assistant affiche visuellement les tendances, les signaux de trading, etc. pour aider à juger.
Cette stratégie présente les avantages suivants:
L’indicateur SuperTrend permet de suivre dynamiquement les variations de prix et de refléter en temps réel les retournements de tendance.
La méthode ATR permet d’ajuster le stop loss en fonction des fluctuations du marché, ce qui est avantageux pour le verrouillage des bénéfices.
La combinaison de l’élimination des fausses ruptures de MA permet de filtrer efficacement les signaux de négociation bruyants des marchés en tremblement de terre.
La conception visuelle présente intuitivement les stratégies de négociation et les conditions du marché, avec une simplicité d’utilisation.
Les traders qui ne font que négocier des points de basculement de tendance sont parfaits pour les longues lignes.
La stratégie présente principalement les risques suivants:
L’indicateur SuperTrend est sensible aux paramètres, il est souvent ajusté sur plusieurs lignes aériennes et peut être fréquemment négocié.
Dans les cas de tremblements de terre, les lignes de stop-loss sont fréquemment activées.
Le coût de la transaction n’est pas pris en compte, mais les petits fonds sont plus affectés par les frais de transaction.
Il n’y a pas de stop-loss, le risque de retrait est plus élevé.
La vague de tendance a peut-être manqué une partie de l’occasion.
Le risque peut être réduit par:
Optimisation des paramètres ATR pour réduire la fréquence de réglage des lignes aériennes multiples
Ajout d’un filtre équivalent pour les fils K afin d’éviter d’être perturbé par les ondes de basse fréquence.
La mise en place d’un Stop Loss est une protection contre les gains.
Ajustez la moyenne mobile de manière appropriée pour équilibrer l’effet de filtrage.
Optimisation de la gestion des fonds et réduction des coûts de transaction.
Cette stratégie peut être optimisée dans les domaines suivants:
Test des sources de prix différentes, telles que les prix de clôture, les prix les plus élevés, etc.
Essayez d’utiliser d’autres indicateurs de stop-loss dynamiques, tels que la sortie de Chandelier.
Ajout d’un module de gestion des positions et optimisation de l’utilisation des fonds.
Le temps d’entrée de refinement combiné à l’indicateur de volatilité.
Ajout d’un module d’arrêt de perte, de blocage et de contrôle des risques.
Paramètres d’ajustement pour différents marchés
Découvrez les algorithmes d’apprentissage automatique pour optimiser les paramètres.
La combinaison d’autres indicateurs permet d’améliorer la précision du filtrage.
La stratégie utilise SuperTrend pour intégrer la dynamique des arrêts de perte et des jugements de tendance, et est complétée par MA pour le filtrage des tendances afin d’identifier le moment de l’achat de la ligne longue. La conception visuelle simplifie l’opération.
/*backtest
start: 2020-09-13 00:00:00
end: 2023-09-19 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SuperTrend Long Strategy", overlay=true, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)
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
// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)
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 and close > ma
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 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 and close < ma
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 70) : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 70) : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", 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, when = window())
shortCondition = sellSignal
if (shortCondition)
strategy.close("BUY")
strategy.entry("SELL", strategy.short, when = window())
buy1 = barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)