Stratégie de stop-profit et de stop-loss de trading de solde de retracement adaptatif

OCA GAP
Date de création: 2024-12-12 14:25:36 Dernière modification: 2024-12-12 14:25:36
Copier: 2 Nombre de clics: 82
1
Suivre
1166
Abonnés

Stratégie de stop-profit et de stop-loss de trading de solde de retracement adaptatif

Aperçu

La stratégie est un système de trading auto-adaptatif basé sur les lacunes et les variations de prix, qui permet de réaliser des gains stables en définissant des points d’entrée flexibles et des stop-loss dynamiques. La stratégie utilise une méthode de mise en position pyramidale, tout en combinant le système de gestion des ordres OCA pour contrôler le risque. Le système ajuste automatiquement la direction de la position en fonction de l’évolution du marché et ferme la position en temps opportun en cas de signal de revers.

Principe de stratégie

La stratégie fonctionne principalement par les mécanismes centraux suivants:

  1. Mécanisme de négociation de la faille: identification des failles à la hausse et à la baisse, mise en place d’un ordre de stop-loss à la place de la faille
  2. Suivi des tendances: déterminer la direction des tendances en fonction de la relation entre les prix d’ouverture et de clôture
  3. Enchère pyramidale: jusqu’à 100 ordres dans la même direction
  4. Stop loss dynamique: Stop loss dynamique basé sur le prix moyen d’une position
  5. Gestion des ordres OCA: utilisation d’ordres de portefeuille OCA pour s’assurer que les ordres stop et stop loss sont mutuellement exclusifs
  6. Limite de transaction sur une journée: maîtrisez vos risques en définissant un nombre maximal de transactions sur une journée

Avantages stratégiques

  1. Adaptabilité: la stratégie permet d’ajuster automatiquement la direction des transactions et le volume des positions en fonction des conditions du marché
  2. Risques maîtrisés: les risques sont maîtrisés par de multiples mécanismes, y compris les arrêts de perte, les ordres OCA et les restrictions de transaction intraday
  3. Plus de flexibilité: soutenir les hausses pyramidales pour obtenir plus de bénéfices dans des conditions de tendance
  4. Efficacité d’exécution: entrée en bourse à l’aide d’un stop loss permettant une mise en place rapide à des prix critiques
  5. Un niveau élevé de systématisation: la prise de décision sur les transactions est complètement systématisée, ce qui réduit l’impact émotionnel de l’intervention humaine.

Risque stratégique

  1. Risque de glissement: un risque de glissement important dans un contexte de vitesse
  2. Risque de surtransaction: les entrées et sorties fréquentes peuvent entraîner des coûts de transaction plus élevés
  3. Risque systémique: risque de pertes importantes dans des marchés très volatils
  4. Risques liés à la gestion des fonds: les hausses pyramidales peuvent entraîner une utilisation excessive des fonds
  5. Risques techniques: les interruptions de fonctionnement du programme peuvent entraîner des problèmes de gestion des commandes

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de volatilité: paramètres de stop-loss ajustés en fonction de la dynamique de la volatilité du marché
  2. Optimiser les mécanismes d’acquisition: concevoir des règles d’acquisition plus détaillées pour éviter une utilisation excessive des fonds
  3. Amélioration du système de contrôle du vent: ajout d’indicateurs de contrôle du vent, tels que la limite maximale de retrait en une journée
  4. Amélioration de l’exécution des commandes: optimisation des mécanismes d’envoi des commandes et réduction de l’impact des points de glissement
  5. Augmenter le sentiment des marchés: optimiser l’entrée en bourse en combinant des indicateurs tels que le volume de transactions

Résumer

Il s’agit d’une stratégie de négociation rationnelle et logiquement rigoureuse, conçue pour garantir la stabilité et la sécurité des transactions grâce à de multiples mécanismes. Le principal avantage de la stratégie réside dans sa capacité d’adaptation et de contrôle des risques, mais il faut également être attentif aux risques liés aux fluctuations du marché.

Code source de la stratégie
/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
backtestStartDate = input(timestamp("1 Jan 1990"),
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
inTradeWindow = true
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
// strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
if inTradeWindow and upGap
    strategy.entry("GapUp", strategy.long, stop = high[1])
else
    strategy.cancel("GapUp")
if inTradeWindow and dn
    strategy.entry("Dn", strategy.short, stop = close)
else
    strategy.cancel("Dn")
if inTradeWindow and dnGap
    strategy.entry("GapDn", strategy.short, stop = low[1])
else
    strategy.cancel("GapDn")
if inTradeWindow and up
    strategy.entry("Up", strategy.long, stop = close)
else
    strategy.cancel("Up")
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false)
if inTradeWindow and not revCond and XQty > 0
    strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  "TPSL")
    strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL")
if XQty == 0 or revCond
    strategy.cancel("TP")
    strategy.cancel("SL")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)