Il s'agit d'une stratégie de trading de rupture de gamme basée sur les points hauts et bas de la journée précédente. La stratégie cherche des opportunités de trading en identifiant les ruptures ou ruptures de prix au-delà des points hauts ou bas de la journée précédente, en exécutant un seul trade par direction de rupture ou de rupture. La stratégie utilise des paramètres fixes de prise de profit et de stop-loss de 50 points et réinitialise les drapeaux de trading au début de chaque journée de trading pour assurer une négociation ordonnée.
La logique de base de la stratégie comprend les aspects suivants: 1. Génération de signal commercial: le système détermine la direction du trading en vérifiant si le prix de clôture actuel dépasse le plus haut ou le plus bas de la journée précédente. 2. Contrôle de la fréquence des échanges: la stratégie utilise des drapeaux pour assurer une seule transaction par direction et par jour. Cette conception empêche les échanges répétés dans la même zone de prix et réduit les coûts de négociation. 3. Gestion des risques: Chaque transaction a un profit fixe de 50 points et un stop-loss, offrant une gestion des risques symétrique qui contrôle efficacement le risque d'une seule transaction. 4. Mécanisme de réinitialisation quotidienne: le système réinitialise les drapeaux commerciaux au début de chaque journée de négociation, en se préparant à de nouvelles opportunités commerciales. Ce mécanisme garantit que la stratégie peut saisir de nouvelles opportunités commerciales.
Cette stratégie est un système de trading classique basé sur les ruptures quotidiennes de gamme, adapté pour suivre les tendances du marché dans une seule direction grâce à une gestion stricte du commerce et un contrôle des risques. Bien qu'il existe certains risques inhérents, la stabilité et la rentabilité de la stratégie peuvent être améliorées grâce à une optimisation et une amélioration raisonnables. La clé du succès réside dans la gestion appropriée des faux risques de rupture, la fixation de niveaux appropriés de prise de profit et de stop-loss et le maintien de l'adaptabilité de la stratégie dans différentes conditions de marché.
/*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")