La stratégie d'inversion de tendance de suivi est une stratégie de trading de tendance à court terme basée sur des contrats à terme NQ de 15 minutes.
La stratégie repose principalement sur les principes suivants:
Utilisez une EMA à 8 périodes comme filtre de tendance principal, avec des signaux longs au-dessus de l'EMA et des signaux courts au-dessous de l'EMA.
Identifiez des modèles spécifiques d'inversion de chandelier comme signaux d'entrée, y compris des bougies vertes longues suivies de bougies rouges courtes pour les signaux longs, et des bougies rouges longues suivies de bougies vertes courtes pour les signaux courts.
Les points d'entrée sont fixés près du haut/bas de la bougie d'inversion, avec des niveaux de stop loss au haut/bas de la bougie d'inversion elle-même, ce qui permet des ratios risque/rendement efficaces.
Valider les signaux d'inversion en utilisant des règles de relation de chandelier, par exemple le prix d'ouverture de la bougie rouge est au-dessus du corps de la dernière bougie verte, le corps engloutit complètement, etc. pour filtrer le bruit.
La stratégie ne doit être utilisée que pendant des heures de négociation spécifiques, en évitant les périodes de volatilité autour des principales renouvellements de contrats, etc., afin d'éviter des pertes inutiles dues à une évolution anormale des prix.
Les principaux avantages de cette stratégie sont les suivants:
Une logique de signal simple et efficace, facile à comprendre et à exécuter.
Basé sur la tendance et l'inversion, évitant les coups de fouet des marchés haussiers et baissiers.
Une bonne maîtrise des risques avec un placement raisonnable de stop loss pour préserver le capital.
Les faibles besoins en données s'adaptent à diverses plateformes et outils.
Une fréquence de négociation élevée convient à un style de négociation actif à court terme.
Il y a quelques risques à noter:
Des possibilités d'inversion insuffisantes et des signaux limités.
Il y a parfois de fausses fuites, il y a plus de filtres pour la logique combinée.
Volatilité dans les séances de nuit et non-principales.
La flexibilité d'optimisation est limitée. Considérez le machine learning pour un meilleur réglage des paramètres.
Il y a de la place pour l'optimisation:
Testez des périodes EMA plus longues pour améliorer la définition de la tendance.
Ajouter des filtres d'indice d'actions comme filtres de tendance supplémentaires.
Utilisez des techniques d'apprentissage automatique pour régler automatiquement l'entrée et arrêter les niveaux de perte.
Mettre en place un dimensionnement des positions ajusté à la volatilité et des arrêts dynamiques.
Explorer l'arbitrage entre actifs pour diversifier les risques systémiques liés à un seul actif.
La stratégie d'inversion de tendance de suivi offre un cadre de stratégie à court terme très pratique qui est simple à mettre en œuvre avec des paramètres limités et un bon contrôle du risque personnel.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © bdrex95 //@version=5 // Rob Reversal Strategy - Official // Using Rob Reversal Indicator: Original // Description // This indicator is based on the strategy created by Trader Rob on the NQ 15m chart. // // Timeframe for trading is 8:30am-1:15pm Central. // // Above the EMA line, look for a long position. You will have a short candle, then a long candle that opens below the short candle. It will have a lower high and a lower low. Once the long candle closes, your entry will be 1 tick above the wick (green line) and stop loss will be at the bottom of the bottom wick (red line). // // Below the EMA line, look for a short position. You will have a long candle, then a short candle that opens above the long candle. It will have a higher high and a higher low. Once the short candle closes, your entry will be 1 tick below the wick (green line) and stop loss will be at the top of the top wick (red line). // strategy("Trader Rob Reversal Strategy NQ 15min", shorttitle="Official Rob Rev Strat", overlay=true) //--- Session Input --- sess = input(defval = "0930-1415", title="Trading Session") t = time(timeframe.period, sess) sessionOpen = na(t) ? false : true flat_time = input(defval = "1515-1558", title="Close All Open Trades") ft = time(timeframe.period, flat_time) flatOpen = na(ft) ? false : true // Calculate start/end date and time condition startDate = input(timestamp('2018-12-24T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW") finishDate = input(timestamp('2029-02-26T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW") time_cond = true emaColor = input.color(color.orange, title="EMA Color") emaLength = input.int(8, title="EMA Length") emaInd = ta.ema(close, emaLength) rr = input(1.0,"Enter RR",group = "TP/SL CONDITION INPUTS HERE") sellShapeInput = input.string("Arrow", title="Sell Entry Shape", options=["Arrow", "Triangle"]) buyShapeInput = input.string("Arrow", title="Buy Entry Shape", options=["Arrow", "Triangle"]) sellShapeOption = switch sellShapeInput "Arrow" => shape.arrowdown "Triangle" => shape.triangledown buyShapeOption = switch buyShapeInput "Arrow" => shape.arrowup "Triangle" => shape.triangleup O = open C = close H = high L = low sellEntry = (C[1] > O[1]) and (C < O) and (H[1] < H) and (C < H[1]) and (C > L[1]) and (L > L[1]) and (C < emaInd) and sessionOpen and time_cond buyEntry = (C[1] < O[1]) and (C > O) and (H[1] > H) and (L[1] > L) and (C < H[1]) and (C > L[1]) and (C > emaInd) and sessionOpen and time_cond sellEntry_index = ta.valuewhen(sellEntry,bar_index,0) sellEntry_hi = ta.valuewhen(sellEntry,high,0) sellEntry_low = ta.valuewhen(sellEntry,low,0) buyEntry_index = ta.valuewhen(buyEntry,bar_index,0) buyEntry_hi = ta.valuewhen(buyEntry,high,0) buyEntry_lo = ta.valuewhen(buyEntry,low,0) plotshape(buyEntry, color = color.green, location = location.belowbar, style = buyShapeOption, size = size.small) plotshape(sellEntry, color = color.red, location = location.abovebar, style = sellShapeOption, size = size.small) plot(emaInd, color=emaColor) // Risk Management entry_price_long = (buyEntry_hi + syminfo.mintick) entry_price_short = (sellEntry_low - syminfo.mintick) long_sl_price = (buyEntry_lo-syminfo.mintick) short_sl_price = (sellEntry_hi + syminfo.mintick) long_tp_price = ((entry_price_long - long_sl_price)*rr) + entry_price_long short_tp_price = entry_price_short - ((short_sl_price - entry_price_short)*rr) long_sl_ticks = (entry_price_long - long_sl_price) / syminfo.mintick short_sl_ticks = (short_sl_price - entry_price_short) / syminfo.mintick long_tp_ticks = (long_tp_price - entry_price_long) / syminfo.mintick short_tp_ticks = (entry_price_short - short_tp_price) / syminfo.mintick // Positions if (buyEntry) strategy.entry("Long", strategy.long,stop = H + syminfo.mintick) if strategy.position_size > 0 strategy.exit("Long Ex","Long", loss = long_sl_ticks, profit = long_tp_ticks, comment_loss = "SL Long", comment_profit = "TP Long") if (sellEntry) strategy.entry("Short", strategy.short,stop = L - syminfo.mintick) if strategy.position_size < 0 strategy.exit("Short Ex","Short",loss = short_sl_ticks, profit = short_tp_ticks, comment_loss = "SL Short", comment_profit = "TP Short") // Cancel order if close beyond ema if (C < emaInd) strategy.cancel("Long") if (C > emaInd) strategy.cancel("Short") // Go flat at close (for futures funded account) if strategy.position_size > 0 and flatOpen strategy.close_all(comment = "EOD Flat") if strategy.position_size < 0 and flatOpen strategy.close_all(comment = "EOD Flat") //END