Stratégies avancées de suivi de tendance et de stop suiveur adaptatif

ATR SL TS
Date de création: 2024-12-20 14:12:05 Dernière modification: 2024-12-20 14:12:05
Copier: 1 Nombre de clics: 418
1
Suivre
1617
Abonnés

Stratégies avancées de suivi de tendance et de stop suiveur adaptatif

Aperçu

Il s’agit d’une stratégie de suivi des tendances basée sur les indicateurs Supertrend, combinée à un mécanisme de suivi des arrêts adaptatif. La stratégie identifie principalement la direction des tendances du marché à l’aide des indicateurs Supertrend et utilise le suivi des arrêts d’ajustement dynamique pour gérer les risques et optimiser les délais d’expiration. La stratégie prend en charge plusieurs modes de stop, y compris les arrêts en pourcentage, les arrêts ATR et les arrêts à points fixes, et peut être ajustée de manière flexible en fonction des différentes conditions du marché.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. L’utilisation de l’indicateur Supertrend comme base principale pour les jugements de tendance, qui est combiné avec l’ATR (Average True Rate) pour mesurer la volatilité du marché
  2. Les signaux d’entrée sont déclenchés par un changement de direction de la Supertrend, et prennent en charge les transactions en plus, en moins ou en deux sens.
  3. Le mécanisme de stop-loss utilise un stop-loss de suivi adaptatif qui peut être automatiquement ajusté en fonction des fluctuations du marché
  4. Le système de gestion de la transaction comprend la gestion des positions (default 15% des positions du compte) et le filtrage du temps

Avantages stratégiques

  1. Capture de tendances: les indicateurs Supertrend permettent d’identifier efficacement les principales tendances et de réduire les erreurs de jugement
  2. Contrôle des risques: utilisation de mécanismes de stop-loss diversifiés, adaptés aux différents environnements du marché
  3. Une grande flexibilité: configuration pour supporter plusieurs directions de négociation et modes de stop loss
  4. Adaptabilité: les stop-loss suivants s’adaptent automatiquement aux fluctuations du marché, améliorant ainsi la capacité d’adaptation de la stratégie
  5. Système de rétroaction complet: fonction de filtrage de temps intégrée pour faciliter l’analyse des performances historiques

Risque stratégique

  1. Risque de renversement de tendance: Faux signaux dans un marché très volatil
  2. Risque de glissement: la liquidité du marché peut affecter l’exécution des arrêts de suivi
  3. Sensitivité des paramètres: les facteurs de Supertrend et les paramètres de cycle ATR ont une influence plus grande sur la performance de la stratégie
  4. Dépendance aux conditions du marché: les transactions fréquentes peuvent entraîner des coûts accrus dans un marché en crise

Orientation de l’optimisation de la stratégie

  1. Optimisation du filtrage des signaux: ajout d’indicateurs techniques supplémentaires pour filtrer les faux signaux
  2. Optimisation de la gestion des positions: le ratio de position peut être ajusté en fonction de la dynamique de volatilité du marché
  3. Mechanisme de prévention des pertes amélioré: logique de prévention des pertes plus complexe peut être intégrée dans la conception du coût moyen
  4. Optimisation du timing de l’entrée: une analyse de la structure des prix peut être ajoutée pour améliorer l’exactitude de l’entrée
  5. Amélioration du système de rétroaction: ajout d’indicateurs statistiques permettant d’évaluer la performance de la stratégie

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et à risque contrôlable. La stratégie est capable de contrôler efficacement le risque tout en conservant une rentabilité élevée grâce à la combinaison des indicateurs de Supertrend et d’un mécanisme de stop-loss flexible. La stratégie est configurable et adaptée à différents environnements de marché, mais nécessite une optimisation des paramètres et une vérification des retours suffisants.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Supertrend Strategy with Adjustable Trailing Stop [Bips]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// Inputs
atrPeriod = input(10, "ATR Länge", "Average True Range „wahre durchschnittliche Schwankungsbreite“ und stammt aus der technischen Analyse. Die ATR misst die Volatilität eines Instruments oder eines Marktes. Mit ihr kann die Wahrscheinlichkeit für einen Trendwechsel bestimmt werden.", group="Supertrend Settings")
factor = input.float(3.0, "Faktor", step=0.1, group="Supertrend Settings")
tradeDirection = input.string("Long", "Trade Direction", options=["Both", "Long", "Short"], group="Supertrend Settings")
sl_type    = input.string("%", "SL Type", options=["%", "ATR", "Absolute"])
// Parameter für ST nur für einstieg -> Beim Ausstieg fragen ob der bool WWert true ist -> Für weniger und längere Trädes 

sl_perc    = input.float(4.0, "% SL", group="Stop Loss Einstellung")
atr_length = input.int(10, "ATR Length", group="Stop Loss Einstellung")
atr_mult   = input.float(2.0, "ATR Mult", group="Stop Loss Einstellung")
sl_absol   = input.float(10.0, "Absolute SL", group="Stop Loss Einstellung")

//-------------------------//
// BACKTESTING RANGE
fromDay   = input.int(defval=1, title="From Day", minval=1, maxval=31, group="Backtesting Einstellung")
fromMonth = input.int(defval=1, title="From Month", minval=1, maxval=12, group="Backtesting Einstellung")
fromYear  = input.int(defval=2016, title="From Year", minval=1970, group="Backtesting Einstellung")
toDay     = input.int(defval=1, title="To Day", minval=1, maxval=31, group="Backtesting Einstellung")
toMonth   = input.int(defval=1, title="To Month", minval=1, maxval=12, group="Backtesting Einstellung")
toYear    = input.int(defval=2100, title="To Year", minval=1970, group="Backtesting Einstellung")

startDate  = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond  = time >= startDate and time <= finishDate

//-------------------------//
// Supertrend calculation
[_, direction] = ta.supertrend(factor, atrPeriod)

// SL values
sl_val = sl_type == "ATR"      ? atr_mult * ta.atr(atr_length) : 
         sl_type == "Absolute" ? sl_absol : 
         close * sl_perc / 100
         
// Init Variables
var pos         = 0
var float trailing_sl = 0.0

// Signals
long_signal  = nz(pos[1]) !=  1 and high > nz(trailing_sl[1])
short_signal = nz(pos[1]) != -1 and low  < nz(trailing_sl[1]) 

// Calculate SL
trailing_sl := short_signal     ? high + sl_val : 
               long_signal      ? low  - sl_val : 
               nz(pos[1]) ==  1 ? math.max(low  - sl_val, nz(trailing_sl[1])) :  
               nz(pos[1]) == -1 ? math.min(high + sl_val, nz(trailing_sl[1])) : 
               nz(trailing_sl[1])
               
// Position var               
pos := long_signal  ? 1 : short_signal ? -1 : nz(pos[1]) 

// Entry logic
if ta.change(direction) < 0 and time_cond
    if tradeDirection == "Both" or tradeDirection == "Long"
        strategy.entry("Long", strategy.long, stop=trailing_sl)
    else
        strategy.close_all("Stop Short")

if ta.change(direction) > 0 and time_cond
    if tradeDirection == "Both" or tradeDirection == "Short"
        strategy.entry("Short", strategy.short, stop=trailing_sl)
    else
        strategy.close_all("Stop Long")

// Exit logic: Trailing Stop and Supertrend
//if strategy.position_size > 0 and not na(trailing_sl)
    //strategy.exit("SL-Exit Long", from_entry="Long", stop=trailing_sl)

//if strategy.position_size < 0 and not na(trailing_sl)
    //strategy.exit("SL-Exit Short", from_entry="Short", stop=trailing_sl)

// Trailing Stop visualization
plot(trailing_sl, linewidth = 2, color = pos == 1 ? color.green : color.red)
//plot(not na(trailing_sl) ? trailing_sl : na, color=pos == 1 ? color.green : color.red, linewidth=2, title="Trailing Stop")