Stratégie de suivi de tendance avec stop loss


Date de création: 2024-02-05 16:00:35 Dernière modification: 2024-02-05 16:00:35
Copier: 0 Nombre de clics: 726
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance avec stop loss

Aperçu

La stratégie de suivi de tendance est une stratégie de trading de suivi de la perte basée sur l’indicateur de tendance TrendAlert. Elle détermine la direction de la tendance grâce à l’indicateur de tendance TrendAlert, permettant l’entrée de suivi de tendance.

Principe de stratégie

La stratégie est principalement composée des éléments suivants:

  1. L’indicateur de TrendAlert détermine la direction de la tendance. Quand TrendAlert est supérieur à 0, c’est un signal positif, et quand il est inférieur à 0, c’est un signal négatif.

  2. L’indicateur ATR calcule la portée des fluctuations récentes des prix. ATR est multiplié par ATR StopMultiplier atStopMultiplier en tant que stop fixe.

  3. Le prix le plus bas est le prix le plus bas et le prix le plus élevé est le prix le plus élevé, combiné avec le stop loss ATR pour construire le stop loss de suivi. Le contrôle des paramètres de structure est activé ou non.

  4. En fonction de la direction du signal de tendance, entrez dans une position de prise de plus ou de moins. Après l’entrée, définissez un Take Profit et un Stop Loss.

  5. Position de placement après le déclenchement d’un stop loss ou d’un stop-loss.

Cette stratégie permet de détecter les fausses alertes en fonction des tendances, de suivre les risques de contrôle des pertes, d’obtenir des bénéfices pour assurer la rentabilité et d’améliorer globalement la stabilité du système de négociation.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Le filtrage des tendances et le suivi des arrêts de perte sont doublement garantis, évitant ainsi la poursuite du bruit du marché et assurant la maîtrise des risques de transaction.

  2. L’ATR est adapté aux paramètres de stop-loss pour éviter la sur-optimisation et s’applique à une variété d’environnements de marché.

  3. L’objectif est de s’assurer que les bénéfices ne soient pas perdus.

  4. La logique de la stratégie est claire et concise, les modifications sont faciles à comprendre et conviennent aux traders quantifiés.

  5. Il est écrit dans le langage de script Pine et peut être utilisé directement sur la plateforme TradingView, sans avoir besoin de connaissances en programmation.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Des erreurs de jugement de tendance peuvent entraîner des entrées et des arrêts inutiles. Des signaux d’arrêt ou de filtrage des entrées peuvent être relâchés de manière appropriée.

  2. En cas de forte volatilité, l’ATR peut sous-estimer l’ampleur réelle de la vague. Dans ce cas, il peut augmenter le multiplicateur de stop loss de l’ATR.

  3. Le stop à la cible peut limiter l’espace de profit de la stratégie. Le paramètre limitMultiplier peut être ajusté en fonction du marché.

  4. La logique exist du code est basée uniquement sur le prix et devrait être combinée avec la gestion du temps.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimisez les paramètres ATR de longueur atRLength et de multiplicateur d’arrêt atRStopMultiplier, et ajustez la sensibilité de l’algorithme d’arrêt.

  2. L’objectif est d’essayer différentes tendances et de trouver de meilleures opportunités d’entrée sur le marché.

  3. Sélectionnez ou ajustez les paramètres d’arrêt cible en fonction des caractéristiques de la variété de transaction spécifique.

  4. Il est également possible d’augmenter les mécanismes d’arrêt de la perte de temps pour éviter le risque d’une nuit en solitaire.

  5. La combinaison de filtrage de faux-pas avec le volume des transactions améliore la stabilité de la stratégie.

Résumer

Cette stratégie est une stratégie de suivi de tendance très pratique. Elle utilise des indicateurs pour déterminer la direction de la tendance, tout en s’adaptant aux arrêts pour assurer le contrôle des risques. La stratégie est logiquement claire, simple à utiliser et très adaptée aux débutants.

Code source de la stratégie
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jaque_verdatre

//@version=5
strategy("TrendAlert Based", overlay = true)

// Get inputs
TrendAlert = input.source(close, "TrendAlert")
atrLength = input.int(title="ATR Length", defval=15, minval=1)
useStructure = input.bool(title="Use Structure?", defval=true)
lookback = input.int(title="How Far To Look Back For High/Lows", defval=8, minval=1)
atrStopMultiplier = input.float(title="ATR Multiplier", defval=0.2, minval=0.1)
LimitMultiplier = input.float(title = "Limit Multiplier", defval = 0.5, minval = 0.1)
PineConnectorID = input.int(title = "Pine Connector ID",defval = 0)
CurrencyToSend = input.string(title = "personilized currency", defval = "ETHUSD")
Risk = input.int(title = "risk in % to send", defval = 10, minval = 1)

// Calculate data
atr = ta.atr(atrLength)
lowestLow = ta.lowest(low, lookback)
highestHigh = ta.highest(high, lookback)
longStop = (useStructure ? lowestLow : close) - atr * atrStopMultiplier
shortStop = (useStructure ? highestHigh : close) + atr * atrStopMultiplier

// Draw data to chart
plot(atr, color=color.rgb(33, 149, 243), title="ATR", display = display.none)
plot(longStop, color=color.green, title="Long Trailing Stop")
plot(shortStop, color=color.red, title="Short Trailing Stop")

var float LimitL = na
var float LimitS = na
var float LPosPrice = na
var float SPosPrice = na
var float LPosLongStop = na
var float SPosShortStop = na

KnowLimit (PosPrice, PosStop) =>
    (PosPrice-PosStop)*LimitMultiplier+PosPrice


NotInTrade = strategy.position_size == 0
InLongTrade = strategy.position_size > 0
InShortTrade = strategy.position_size < 0

longCondition = TrendAlert > 0 and NotInTrade
if (longCondition)
    LPosPrice := close
    LPosLongStop := longStop
    LimitL := KnowLimit(LPosPrice, LPosLongStop)
    strategy.entry("long", strategy.long)
    LTPPip = LimitL-LPosPrice
    LSLPip = LPosPrice-longStop
    alert(str.tostring(PineConnectorID)+',buy,'+str.tostring(CurrencyToSend)+',risk='+str.tostring(Risk)+',sl='+str.tostring(LSLPip)+'tp='+str.tostring(LTPPip), alert.freq_once_per_bar_close)
    strategy.exit("exit", "long", stop = longStop, limit = LimitL)

shortCondition = TrendAlert < 0 and NotInTrade
if (shortCondition)
    SPosPrice := close
    SPosShortStop := shortStop
    LimitS := KnowLimit(SPosPrice, SPosShortStop)
    strategy.entry("short", strategy.short)
    STPPip = SPosPrice-LimitS
    SSLPip = shortStop - SPosPrice
    alert(str.tostring(PineConnectorID)+',sell,ETHUSD,risk=10,sl='+str.tostring(SSLPip)+'tp='+str.tostring(STPPip), alert.freq_once_per_bar_close)
    strategy.exit("exit", "short", stop = shortStop, limit = LimitS)

plotshape(longCondition, color = color.green, style = shape.labelup, location = location.belowbar, size = size.normal, title = "Long Condition")
plotshape(shortCondition, color = color.red, style = shape.labeldown, location = location.abovebar, size = size.normal, title = "Short Condition")

if (InShortTrade)
    LimitL := close
    LPosLongStop := close
    LPosPrice := close

PlotLongTakeProfit = plot(LimitL, color = InLongTrade ? color.rgb(0, 255, 64) : color.rgb(120, 123, 134, 100), title = "Long Take Profit")
PlotLongStopLoss = plot(LPosLongStop, color = InLongTrade ? color.rgb(255, 0, 0) : color.rgb(120, 123, 134, 100), title = "Long Stop Loss")
PlotLongPosPrice = plot(LPosPrice, color = InLongTrade ? color.gray : color.rgb(120, 123, 134, 100), title = "Long Position Price")

if (InLongTrade)
    LimitS := close
    SPosShortStop := close
    SPosPrice := close

PlotShortTakeProfit = plot(LimitS, color = InShortTrade ? color.rgb(0, 255, 64) : color.rgb(120, 123, 134, 100), title = "Short Take Profit")
PlotShortStopLoss = plot(SPosShortStop, color = InShortTrade ? color.rgb(255, 0, 0) : color.rgb(120, 123, 134, 100), title = "Short Stop Loss")
PlotShortPosPrice = plot(SPosPrice, color = InShortTrade ? color.gray : color.rgb(120, 123, 134, 100), title = "Short Position Price")

fill(PlotLongPosPrice, PlotLongTakeProfit, color = InLongTrade ? color.rgb(0, 255, 0, 95) : color.rgb(0, 255, 0, 100))
fill(PlotShortPosPrice, PlotShortTakeProfit, color = InShortTrade ? color.rgb(0, 255, 0, 95) : color.rgb(0, 255, 0, 100))

fill(PlotLongPosPrice, PlotLongStopLoss, color = InLongTrade ? color.rgb(255, 0, 0, 95) : color.rgb(255, 0, 0, 100))
fill(PlotShortPosPrice, PlotShortStopLoss, color = InShortTrade ? color.rgb(255, 0, 0, 95) : color.rgb(255, 0, 0, 100))