Stratégie de trading à sens unique avec percée quotidienne

OHLC ADX ATR MA RSI BB
Date de création: 2024-12-11 15:23:37 Dernière modification: 2024-12-11 15:23:37
Copier: 1 Nombre de clics: 382
1
Suivre
1617
Abonnés

Stratégie de trading à sens unique avec percée quotidienne

Aperçu

Il s’agit d’une stratégie de négociation de rupture de fourchette basée sur les hauts et les bas de la journée de négociation précédente. La stratégie recherche des opportunités de négociation en identifiant les hauts et les bas de la journée précédente, chaque rupture ou baisse n’exécutant qu’une seule transaction.

Principe de stratégie

La logique centrale de la stratégie est la suivante:

  1. Génération de signaux de négociation: le système détermine la direction de la transaction en déterminant si le prix de clôture actuel a franchi le sommet ou le bas du jour de négociation précédent. Lorsque le prix de clôture franchit le sommet de la veille, le système émet un signal de multiplication; lorsque le prix de clôture tombe au-dessus du bas de la veille, le système émet un signal de vide.
  2. Contrôle de la fréquence des transactions: La stratégie utilise des flags pour s’assurer qu’une seule transaction est exécutée par jour dans chaque direction. Cette conception permet d’éviter les transactions répétitives dans la même zone de prix et de réduire les coûts de transaction.
  3. Gestion des risques: Chaque transaction est réglée sur un point fixe de 50 points de stop-loss. Cette gestion des risques symétrique permet de contrôler efficacement les risques d’une seule transaction.
  4. Mécanisme de réinitialisation de la journée: au début de chaque jour de négociation, le système réinitialise les marqueurs de négociation pour préparer le nouveau jour de négociation. Ce mécanisme garantit que la stratégie peut capturer de nouvelles opportunités de négociation.

Avantages stratégiques

  1. Logique de négociation claire: la stratégie est basée sur une simple théorie de la rupture des prix, les règles de négociation sont claires et faciles à comprendre et à exécuter.
  2. Contrôle des risques strict: le risque de chaque transaction est contrôlé efficacement grâce à des points de stop-loss fixes et à des limites de transaction unidirectionnelles.
  3. Évitez les transactions excessives: une seule transaction par jour est autorisée dans chaque direction, afin d’éviter les pertes causées par des transactions fréquentes dans des marchés instables.
  4. Autonomie élevée: La stratégie peut être exécutée de manière entièrement automatisée, sans intervention humaine.
  5. Adaptabilité: Les stratégies peuvent être appliquées à différents environnements de marché et fonctionnent mieux, en particulier dans les marchés où la tendance est évidente.

Analyse des risques

  1. Risque de fausse rupture: le marché peut subir une fausse rupture, entraînant une perte de trading. Il est recommandé de confirmer la rupture en combinaison avec d’autres indicateurs techniques.
  2. Risque de marché oscillant: Dans les marchés oscillants horizontaux, des ruptures et des baisses fréquentes peuvent entraîner des pertes continues. Cela peut être amélioré en ajoutant des conditions de filtrage.
  3. Risque de stop-loss fixe: un nombre de points de stop-loss fixe peut ne pas convenir à tous les environnements de marché et peut être arrêté trop tôt dans les marchés plus volatiles.
  4. Risque de glissement: dans les cas d’une forte volatilité du marché, un glissement peut entraîner un écart du point de stop réel par rapport aux attentes.

Direction d’optimisation

  1. paramètres de stop-loss dynamiques: le nombre de points de stop-loss peut être ajusté dynamiquement en fonction de la volatilité du marché (par exemple, l’indicateur ATR).
  2. Ajout de filtres de tendance: filtrage des signaux de négociation en combinaison avec des indicateurs de tendance (comme les moyennes mobiles ou l’ADX).
  3. Optimisation de la confirmation de rupture: la confirmation de la transaction ou d’autres indicateurs techniques peuvent être ajoutés pour améliorer la fiabilité de la rupture.
  4. Filtrage temporel: des conditions de filtrage temporel peuvent être ajoutées pour éviter de négocier pendant les périodes les plus volatiles.
  5. Optimisation de la gestion des positions: la taille des positions peut être ajustée dynamiquement en fonction de la volatilité du marché et de la capacité de prise de risque du compte.

Résumer

La stratégie est un système de négociation classique basé sur la rupture de la zone de la ligne solaire, adapté pour suivre les tendances unidirectionnelles du marché grâce à une gestion de la transaction et un contrôle des risques rigoureux. Bien que certains risques inhérents existent, la stabilité et la rentabilité de la stratégie peuvent être améliorées par une optimisation et une amélioration raisonnables. La clé du succès de la stratégie réside dans le traitement correct du risque de fausse rupture, la mise en place raisonnable d’un stop-loss et le maintien de l’adaptabilité de la stratégie dans différents environnements de marché.

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

//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)

// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0

// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50

// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])

// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false

// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
    breakout_traded := false
    breakdown_traded := false

// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded

// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded

// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
    breakout_traded := true  // Set breakout flag

// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
    breakdown_traded := true  // Set breakdown flag

// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")