
La stratégie est basée sur un graphique cyclique de 30 minutes, utilisant l’indice relativement faible (RSI) comme indicateur technique central, et est strictement limitée à la réalisation de transactions pendant les heures normales de négociation aux États-Unis (08h30-15h00, du lundi au vendredi). Lorsque le RSI franchit le seuil de vente à la hausse, le système entre automatiquement dans des positions en plusieurs positions.
Le principe central de la stratégie est basé sur les caractéristiques dynamiques de volatilité de l’indice relativement fort (RSI) et un mécanisme de filtrage strict des périodes de négociation:
RSI généréLa stratégie utilise l’indicateur RSI standard, dont la période par défaut est de 14, et permet de personnaliser les seuils de surachat (70), et de survente (30). Le code génère un signal d’entrée en surveillant l’intersection du RSI avec ces seuils.ta.crossover(vrsi, overSold)Utilisé pour détecter les cas où le RSI a franchi la marge de vente et a déclenché une entrée multiple;ta.crossunder(vrsi, overBought)Il est utilisé pour détecter le passage du RSI vers le bas au-delà de la marge d’achat, déclenchant l’entrée en bourse.
Système de filtrage du temps: La stratégie implique un mécanisme de contrôle précis des heures de négociation, qui permet d’exécuter des transactions uniquement pendant les heures normales de négociation aux États-Unis (8h30-15h00 heure centrale, du lundi au vendredi). Ceci est réalisé par la combinaison des conditions suivantes:
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.fridayLa fermeture forcée: Pour éviter le risque du jour au lendemain, la stratégie consiste à forcer tous les positions en position de placement à 15h00 chaque jour de négociation. Le code déclenche l’ordre de placement en vérifiant si l’heure actuelle a atteint ou dépassé l’heure de clôture:strategy.close_all(comment="Close All by 15:00 CT")。
Aide visuelle: La stratégie offre une fonctionnalité de coloration de fond optionnelle, affichant un fond vert lorsqu’on détient des positions multiples et un fond rouge lorsqu’on détient des positions vides, ce qui renforce la perception intuitive de l’état de la transaction.
L’analyse du code de la stratégie permet de résumer les avantages notables suivants:
Je me concentre sur le day trading.En limitant les heures de négociation et en imposant un mécanisme de clôture obligatoire, la stratégie évite complètement le risque du jour au lendemain, réduisant le risque de faille et le risque de volatilité que les détenteurs de positions peuvent rencontrer la nuit.
Adaptation au rythme du marchéLe RSI, en tant qu’indicateur de retournement, est capable de capturer efficacement les occasions de retournement de prix dans un état de survente du marché. Il est particulièrement adapté pour capturer les fluctuations de prix à court terme dans les transactions intraday.
Ajustabilité des paramètresLa stratégie fournit plusieurs paramètres personnalisables, y compris la longueur des cycles RSI, les seuils de sur-achat et de sur-vente, etc., permettant aux traders d’optimiser les ajustements en fonction des différentes conditions du marché et des préférences de risque personnelles.
Une réponse visuelle claire: La fonction de coloration de fond offre un affichage intuitif de l’état de position, permettant aux traders de voir immédiatement l’état actuel de leur position.
Le code est simple et efficace: stratégie de mise en œuvre logique claire, structure de code simplifiée, faible charge de calcul, adaptée à l’exécution en temps réel, ne provoque pas de retard du système ou de problèmes de performance.
La réaction est stable.Selon les données de retracement fournies par NQ pour le délai de 30 minutes du contrat de juin 2025, la stratégie présente un facteur de gain élevé (4,61) et un taux de victoire acceptable (soit 57,1%) et un contrôle de retrait maximal dans une plage raisonnable (soit 0,22%).
Bien que cette stratégie présente de nombreux avantages, elle comporte les risques potentiels suivants:
Fréquence limitée: Les signaux croisés RSI peuvent être relativement rares pendant les heures de négociation intra-journalières, en particulier lorsque la tendance du marché est claire, ce qui peut entraîner une insuffisance d’opportunités de négociation et affecter les gains globaux. Remède: Il est possible d’envisager d’ajouter des indicateurs complémentaires ou d’ajuster les paramètres RSI pour augmenter modérément la fréquence des signaux.
Risque de fausse percée: L’indicateur RSI peut générer de faux signaux de rupture, en particulier lorsque les fluctuations du marché sont fortes mais qu’il n’y a pas de direction claire. Solution: Vous pouvez ajouter des indicateurs de confirmation ou définir des conditions de filtrage supplémentaires, telles que la confirmation de la quantité de transaction ou le filtrage de la direction de la tendance.
Réglages de fuseau horaire sensiblesLa stratégie repose sur la configuration correcte du fuseau horaire. Une configuration erronée du fuseau horaire peut entraîner la défaillance de la fonction de filtrage des heures de transaction. La solution: Vérifiez et vérifiez soigneusement les paramètres du fuseau horaire avant le déploiement pour vous assurer qu’ils correspondent exactement aux heures de transaction du marché cible.
Manque de mécanisme de prévention: La stratégie actuelle ne permet pas d’arrêter les pertes dynamiques et peut entraîner des pertes plus importantes dans des conditions de marché extrêmes. Solution: Mise en place d’un mécanisme d’arrêt basé sur la volatilité ou un nombre de points fixe, limitant les pertes maximales pour une seule transaction.
Dépendance à une date de clôture fixeRemède: Vous pouvez envisager de mettre en œuvre des stratégies de clôture plus flexibles, telles que la décision de fermer ou non sur la base de l’état de la tendance de la traîne.
Sur la base d’une analyse approfondie du code stratégique, voici quelques pistes d’optimisation possibles:
Le RSI est à la baisse.: modifier les seuils fixes de survente et de survente en des seuils dynamiquement ajustés en fonction de la volatilité historique ou de l’ATR, afin de s’adapter aux caractéristiques de la volatilité dans différents environnements de marché. Ainsi, des seuils plus larges peuvent être utilisés dans des marchés à forte volatilité et des seuils plus étroits dans des marchés à faible volatilité, ce qui améliore la qualité du signal.
Ajouter un filtre de tendanceIntroduction d’indicateurs de tendance (comme les moyennes mobiles, le MACD ou l’ADX) comme filtres de direction, ouverture de positions uniquement dans le sens de la tendance principale, évitant ainsi les transactions fréquentes dans les marchés de liquidation et réduisant les faux signaux.
Mise en œuvre de la logique de placement partiel: contrairement aux mécanismes de placement total actuels, des stratégies de placement en lots peuvent être mises en œuvre, telles que la mise en place d’une partie de la position après atteinte d’un certain objectif de profit et la conservation d’une partie de la position pour capturer une tendance plus importante.
Ajouter une position ajustée sur la volatilitéAjuster dynamiquement la taille de la position en fonction de la volatilité du marché (par exemple, ATR), augmenter la position sur les marchés à faible volatilité, réduire la position sur les marchés à forte volatilité, optimiser le ratio de retour sur risque.
Confirmation de la quantité intégrée: sur la base de la génération de signaux RSI, augmenter les conditions de confirmation de volume et d’exécuter des transactions uniquement si le volume est supporté, améliorant la fiabilité du signal.
La mise en place d’un mécanisme de réduction des pertesL’introduction d’un mécanisme de stop-loss intelligent basé sur le support de la résistance ou de la gamme de fluctuations récentes, en remplacement de la simple position en cours, permet une gestion plus efficace du risque.
La stratégie de dynamique de croisement d’indices est un système de négociation intraday soigneusement conçu qui, en combinant des indicateurs techniques RSI et un filtrage rigoureux des heures de négociation, permet une logique de négociation efficace pour les futures d’indices boursiers. Le principal avantage de la stratégie réside dans l’évitement du risque du jour au lendemain, la capture des opportunités de revirement de survente et de vente du jour au lendemain et la fourniture d’une rétroaction visuelle claire. Malgré les risques potentiels tels que la fréquence de signal limitée et le manque de stop loss dynamique, la stabilité et la rentabilité de la stratégie peuvent être considérablement améliorées par la mise en œuvre de mesures telles que la valeur de la valeur du RSI dynamique, l’augmentation du filtrage de la tendance et l’optimisation de la confirmation de la quantité du commutateur intégré.
/*backtest
start: 2024-05-27 00:00:00
end: 2024-12-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Futures Trading Hours RSI Strategy", overlay=true)
// ——— INPUTS ——————————————————————————————
length = input(14, "RSI Length")
overSold = input(30, "RSI Oversold Level")
overBought = input(70, "RSI Overbought Level")
price = close
vrsi = ta.rsi(price, length)
// ——— TIME FILTER (CENTRAL TIME) ——————————————————
startHour = 8
startMinute = 30
endHour = 15
endMinute = 0
// Offset in hours from UTC to CST (not accounting for DST)
var timezoneOffset = 0
adjustedTime = time + (timezoneOffset * 60 * 60 * 1000)
adjustedHour = hour(adjustedTime)
adjustedMinute = minute(adjustedTime)
// Only trade Monday (1) through Friday (5) in the chart’s default time zone.
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.friday
// Determine if the current bar is within the session (08:30–15:00 CT)
inSession = (adjustedHour > startHour or (adjustedHour == startHour and adjustedMinute >= startMinute)) and (adjustedHour < endHour or (adjustedHour == endHour and adjustedMinute < endMinute))
// ——— SIGNALS ————————————————————————————————
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
// ——— ENTRY LOGIC ————————————————————————————
if not na(vrsi) and inSession and weekdayFilter
if co
strategy.entry("RsiLE", strategy.long, comment="RsiLE")
if cu
strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// ——— EXIT ALL ORDERS AT/AFTER 15:00 CT ——————————————————
// Closes any open positions once the clock hits 15:00 CT or later on weekdays
if weekdayFilter and (adjustedHour > endHour or (adjustedHour == endHour and adjustedMinute >= endMinute))
strategy.close_all(comment="Close All by 15:00 CT")
// ——— (Optional) Plot ————————————————————————————
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)
// ——— BACKGROUND SHADING WHEN POSITION IS OPEN ——————————————————
longOpen = strategy.position_size > 0
shortOpen = strategy.position_size < 0
bgcolor(longOpen ? color.new(color.green, 90) : na, title="Long Position Shading")
bgcolor(shortOpen ? color.new(color.red, 90) : na, title="Short Position Shading")