Objectif de profit à plusieurs niveaux et stratégie quantitative améliorée par stop loss dynamique

TP SL ML QS AT EXIT ENTRY
Date de création: 2025-02-20 11:36:09 Dernière modification: 2025-02-20 14:56:34
Copier: 1 Nombre de clics: 314
2
Suivre
319
Abonnés

Objectif de profit à plusieurs niveaux et stratégie quantitative améliorée par stop loss dynamique Objectif de profit à plusieurs niveaux et stratégie quantitative améliorée par stop loss dynamique

Aperçu

Il s’agit d’une stratégie de trading quantifiée et améliorée développée sur la base du testeur de stratégie metrobonez1ty. La principale caractéristique de cette stratégie est la réalisation d’un objectif de profit à plusieurs niveaux et d’un mécanisme de stop-loss dynamique, tout en conservant la flexibilité d’intégration avec les signaux de l’indicateur externe.

Principe de stratégie

La logique de base de la stratégie s’articule autour d’un mécanisme de sortie à plusieurs niveaux. Sur le plan de l’entrée, la stratégie déclenche des signaux de négociation à plusieurs niveaux et à vide via deux sources d’entrée: longEntry et shortEntry. Pour chaque direction de négociation, la stratégie définit trois objectifs de profit indépendants (TP1, TP2 et TP3), chacun pouvant être ajusté dynamiquement en fonction de signaux externes.

Avantages stratégiques

  1. Mécanisme de retrait flexible: prise en charge de plusieurs positions de profit cible, avec possibilité de retrait progressif des positions en fonction de la situation du marché.
  2. Gestion dynamique des risques: réglage dynamique de la position d’arrêt grâce à des signaux d’indicateurs externes, offrant un contrôle des risques plus intelligent.
  3. Haute personnalisation: les conditions d’entrée et de sortie de la stratégie peuvent être personnalisées via des indicateurs externes pour s’adapter à différents styles de négociation.
  4. Un mécanisme de filtrage perfectionné: réduire l’impact des faux signaux en demandant la confirmation de plusieurs signaux.

Risque stratégique

  1. Risque de dépendance du signal: la stratégie dépend fortement de la qualité du signal de l’indicateur externe, qui peut entraîner des transactions erronées si le signal est inexact.
  2. Risque d’optimisation des paramètres: plusieurs objectifs de profit et paramètres de stop-loss doivent être soigneusement optimisés, et une optimisation excessive peut entraîner une suradaptation.
  3. Risque d’adaptation aux conditions du marché: dans différents environnements de marché, des objectifs de profit à plusieurs niveaux fixes peuvent ne pas être suffisamment flexibles.

Orientation de l’optimisation de la stratégie

  1. Adaptation dynamique des paramètres: un mécanisme d’adaptation peut être introduit pour ajuster automatiquement les objectifs de profit et les paramètres de stop-loss en fonction de la volatilité du marché.
  2. Évaluation de la qualité des signaux: ajout d’un mécanisme d’évaluation de la qualité des signaux d’entrée et de sortie pour améliorer encore la précision des transactions.
  3. Optimisation de la gestion des positions: différents ratios de répartition des positions peuvent être définis en fonction des différents objectifs de profit.
  4. Identification de l’environnement de marché: ajout d’un module d’identification de l’environnement de marché qui utilise différents paramètres dans différentes conditions de marché.

Résumer

La stratégie fournit un cadre de négociation complet grâce à des objectifs de profit à plusieurs niveaux et à un mécanisme de stop-loss dynamique. L’avantage de la stratégie réside dans sa flexibilité et sa personnalisation, mais elle nécessite également un traitement prudent des problèmes d’optimisation des paramètres et d’adaptabilité au marché.

Code source de la stratégie
/*backtest
start: 2025-02-04 00:00:00
end: 2025-02-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Enhanced Strategy Tester with multi TP and SL Trigger", overlay=true, margin_long=100, margin_short=100)

// Entry Signals
longEntry = input.source(close, 'Long Entry Trigger', 'long signal source')
shortEntry = input.source(close, 'Short Entry Trigger', 'short signal source')

// Exit Triggers
activateLongExit = input.bool(false, 'Activate Long Exit Signals')
longExit1 = input.source(high, 'Long Exit TP1')
longExit2 = input.source(high, 'Long Exit TP2')
longExit3 = input.source(high, 'Long Exit TP3')

activateShortExit = input.bool(false, 'Activate Short Exit Signals')
shortExit1 = input.source(low, 'Short Exit TP1')
shortExit2 = input.source(low, 'Short Exit TP2')
shortExit3 = input.source(low, 'Short Exit TP3')

// Stop Loss from External Indicator
useSLSignal = input.bool(false, 'Activate SL Signal')
slSignal = input.source(low, 'SL', 'SL Signal Source')

// Long Entry Condition
longCondition = not na(longEntry) and longEntry > 0
if (longCondition and strategy.opentrades == 0)
    strategy.entry('long', strategy.long)
    strategy.exit('exit_long_tp1', 'long', limit=longExit1, comment='TP1 hit')
    strategy.exit('exit_long_tp2', 'long', limit=longExit2, comment='TP2 hit')
    strategy.exit('exit_long_tp3', 'long', limit=longExit3, comment='TP3 hit')
    strategy.exit('exit_long_sl', 'long', stop=useSLSignal ? slSignal : na, comment='SL hit')

// Long Exit Condition
if (activateLongExit)
    if (not na(longExit1) and longExit1 > 0)
        strategy.close('long', comment='TP1 at Exit')
    if (not na(longExit2) and longExit2 > 0)
        strategy.close('long', comment='TP2 at Exit')
    if (not na(longExit3) and longExit3 > 0)
        strategy.close('long', comment='TP3 at Exit')

// Short Entry Condition
shortCondition = not na(shortEntry) and shortEntry > 0
if (shortCondition and strategy.opentrades == 0)
    strategy.entry('short', strategy.short)
    strategy.exit('exit_short_tp1', 'short', limit=shortExit1, comment='TP1 hit')
    strategy.exit('exit_short_tp2', 'short', limit=shortExit2, comment='TP2 hit')
    strategy.exit('exit_short_tp3', 'short', limit=shortExit3, comment='TP3 hit')
    strategy.exit('exit_short_sl', 'short', stop=useSLSignal ? slSignal : na, comment='SL hit')

// Short Exit Condition
if (activateShortExit)
    if (not na(shortExit1) and shortExit1 > 0)
        strategy.close('short', comment='TP1 at Exit')
    if (not na(shortExit2) and shortExit2 > 0)
        strategy.close('short', comment='TP2 at Exit')
    if (not na(shortExit3) and shortExit3 > 0)
        strategy.close('short', comment='TP3 at Exit')