
La stratégie de trading multi-charteur est une méthode de trading quantitative qui combine l’analyse des marchés à long terme et à court terme. Elle combine habilement les techniques d’analyse multi-charteur pour identifier les tendances globales du marché sur une période de 15 minutes et d’identifier des formes de graphiques spécifiques (comme la forme d’absorption des bulls) sur une période de 1 minute pour déterminer le moment où entrer en jeu.
La logique centrale de cette stratégie de trading quantifié est basée sur l’analyse de plusieurs périodes et une gestion rigoureuse du temps de transaction.
Identifier les tendancesPar le passé:request.securityLa fonction obtient des données de prix sur une période de 15 minutes et détermine la direction de la tendance à moyen et long terme. La stratégie consiste à comparer la relation entre le prix de clôture actuel et le prix de clôture de la période précédente.trend_15m > trend_15m[1]Le nombre de cas confirmés a augmenté de près de deux fois depuis le début de l’année.
Reconnaissance de forme: sur une période de 1 minute, la stratégie identifie une tendance à l’absorption de l’or, c’est-à-dire que le prix de clôture de la ligne K actuelle est supérieur au prix d’ouverture (ligne droite) et que le prix d’ouverture de la ligne K précédente est supérieur au prix de clôture (ligne gauche) et que le prix de clôture de la ligne K actuelle est supérieur au prix d’ouverture de la ligne K précédente.bullish_engulfing = close > open and open[1] > close[1] and close > open[1]accomplir.
Filtre par tempsLa stratégie impose deux conditions importantes de filtrage temporel:
Gestion des risquesStratégie: après confirmation du signal d’entrée, le stop loss est automatiquement réglé sur le point le plus bas de la ligne K précédentestop_loss := low[1]Le taux de rentabilité est calculé sur la base d’un ratio de risque/rendement de 2:1.take_profit := close + 2 * (close - stop_loss))。
Limite des transactions au jour le jourLa stratégie consiste à forcer la fermeture de toutes les positions à la fin de chaque jour de négociation (à 16h00), en veillant à ne pas les tenir pendant la nuit, par exemple:strategy.close_all()Mise en œuvre de la fonction.
Analyse du marché à plusieurs niveaux: En combinant l’analyse des périodes de 15 minutes et de 1 minute, la stratégie est capable de saisir à la fois les tendances à moyen terme et les opportunités d’entrée à court terme, ce qui améliore considérablement la précision des transactions. Les tendances à moyen terme fournissent une orientation sur la direction globale du marché, tandis que les formes à court terme fournissent des opportunités d’entrée précises.
Un mécanisme de filtrage du temps efficace: évite les périodes de forte volatilité et de faible liquidité avant l’ouverture et la fermeture du marché, qui sont généralement plus bruyantes et de mauvaise qualité, ce qui peut entraîner une fausse rupture ou une augmentation des points de glissement.
Gestion automatisée des risques: La stratégie a une définition claire des objectifs de stop-loss et de profit, et un rapport de risque/rendement de 2:1, un critère de contrôle du risque couramment utilisé par les traders professionnels, qui contribue à la rentabilité à long terme.
Stratégies de day tradingEn imposant la clôture de la position, la stratégie évite les risques de détention du jour au lendemain, y compris les pertes incontrôlables pouvant résulter d’événements imprévus ou de sauts de nuit.
Le code est simple et efficaceLa stratégie: le code est structuré de manière claire et logiquement cohérente, avec des fonctions intégrées dans le langage PineScript telles querequest.securityetstrategy.exitLe projet a été lancé en mars dernier.
Rarité des cadres temporels multiplesUtilisationrequest.securityLes fonctions qui obtiennent des données sur des délais plus longs peuvent introduire une certaine latence, ce qui peut entraîner des points d’entrée manqués ou des sorties retardées dans des marchés qui évoluent rapidement. La solution est d’envisager d’utiliser des délais dynamiques ou d’ajouter des indicateurs de confirmation de tendance instantanée.
La dépendance à une seule forme: La stratégie consiste à utiliser uniquement les formes d’absorption de bulls-eye comme signal d’entrée, ce qui peut entraîner la perte d’autres opportunités de négociation efficaces. L’extension de la reconnaissance d’autres formes à forte probabilité (comme les astres de croix, les cordes de cordon, etc.) peut augmenter la fréquence des transactions.
Résultats de l’analyse: L’utilisation d’un rapport de risque/rendement fixe de 2:1 peut ne pas être suffisamment flexible dans différents environnements de volatilité. La solution consiste à considérer des niveaux de stop-loss et de profit ajustés dynamiquement en fonction de l’ATR (Average True Range).
Limite de filtrage temporel: Bien que le filtrage temporel évite les périodes à haut risque, il est possible de manquer des opportunités de trading de haute qualité, en particulier les jours de tendance forte générés par les sauts d’ouverture. Il est possible d’envisager d’ajouter des conditions de confirmation supplémentaires plutôt que d’éviter complètement ces périodes.
Manque d’adaptation à la situation du marché: la stratégie ne fait pas de distinction entre les différents états du marché (comme les marchés tendances, les marchés tendances) et peut mal fonctionner dans certaines conditions de marché. L’introduction d’un mécanisme d’identification des états du marché peut améliorer l’adaptabilité de la stratégie.
Indicateur de confirmation de tendanceIl est possible d’ajouter des indicateurs techniques tels que le MACD, le RSI ou le système de moyennes mobiles sur une période de 15 minutes pour fournir une confirmation de tendance plus fiable. Par exemple, l’ajout d’une confirmation croisée ou directionnelle du MACD ou du RSI peut réduire les faux signaux.
Gestion dynamique des risques: Ajustez les objectifs de stop loss et de profit en fonction de la volatilité du marché (comme ATR), plutôt que d’utiliser un ratio de retour sur risque fixe.
Ajout d’autres modes d’accès: En plus de la forme d’absorption de la couronne, il est possible d’ajouter la reconnaissance d’autres formes de couronne à haute probabilité, telles que la forme de la couronne d’étoiles, la couronne de pigeons, etc., pour augmenter la fréquence et la diversité des transactions.
Introduction de la confirmation de livraison: intégrer l’analyse de la quantité de transaction dans la logique de la stratégie, confirmer la forme d’absorption uniquement dans le cas d’une augmentation de la quantité de transaction, ce qui peut améliorer la qualité du signal.
Les conditions du marché s’adaptent: Ajout de fonctionnalités d’identification de l’environnement du marché, par exemple en utilisant des indicateurs de volatilité (comme l’ATR) ou des indicateurs de force de tendance (comme l’ADX) pour distinguer les marchés tendance et les marchés oscillante, et ajuster les paramètres de stratégie en conséquence.
Optimiser le filtrage du tempsIl est possible d’envisager d’utiliser des mécanismes de filtrage de temps plus précis, par exemple en déterminant les meilleurs moments de transaction en fonction de l’analyse des données historiques, plutôt que de simplement exclure les périodes fixes.
La stratégie de trading multiframe de détection de tendances et de modélisation graphique est un système de trading intégré qui combine l’analyse de tendances à moyen et long terme et les techniques d’entrée à court terme. La stratégie permet d’améliorer efficacement l’exactitude de l’entrée en confirmant la direction de la tendance globale du marché sur les plus longues périodes de temps (environ 15 minutes) et en identifiant les tendances de pénétration de bullish avec une forte probabilité sur les plus petites périodes de temps (environ 1 minute).
Une autre caractéristique importante de cette stratégie est l’intégration d’un mécanisme de filtrage strict et d’un système de gestion des risques, qui évite les périodes de forte volatilité du marché et contrôle les risques par un rapport de rendement de risque fixe et une position de plage obligatoire avant la clôture. Ces fonctionnalités rendent cette stratégie particulièrement adaptée aux day traders qui recherchent des gains solides.
Malgré la logique claire et les contrôles rigoureux du risque, il reste encore beaucoup de place pour l’optimisation, notamment l’amélioration des mécanismes de reconnaissance de tendances, l’introduction de la gestion dynamique des risques, l’ajout de plus de reconnaissance des formes d’entrée, l’intégration de l’analyse du volume de transactions et le développement de fonctionnalités d’adaptation aux environnements de marché. Grâce à ces optimisations, la stratégie devrait être plus stable dans différents environnements de marché.
/*backtest
start: 2024-03-07 00:00:00
end: 2025-03-05 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Multi-Timeframe Strategy with Time Filters", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Define the 15-minute trend (long-term trend)
trend_15m = request.security(syminfo.tickerid, "15", close)
// Identify Bullish Engulfing pattern on the 1-minute chart
bullish_engulfing = close > open and open[1] > close[1] and close > open[1]
// Define the entry condition: Bullish Engulfing on the 1-minute chart and uptrend on the 15-minute chart
long_condition = bullish_engulfing and trend_15m > trend_15m[1]
// Define the current time
current_hour = hour
current_minute = minute
// Check if it's within the first 45 minutes or last 60 minutes of the trading day
first_45_minutes = (current_hour == 9 and current_minute < 45) // First 45 minutes of the day (9:00 - 9:45 AM)
last_60_minutes = (current_hour == 15 and current_minute >= 0) or (current_hour == 16 and current_minute < 60) // Last 60 minutes (3:00 - 4:00 PM)
// Block trades if within the restricted time windows
time_restricted = first_45_minutes or last_60_minutes
// Execute the strategy logic for long entry only if not within restricted time window
if (long_condition and not time_restricted)
strategy.entry("Long", strategy.long)
// Initialize stop loss and take profit variables
var float stop_loss = na
var float take_profit = na
// Update stop loss and take profit values when a long entry is triggered
if (long_condition and not time_restricted)
stop_loss := low[1] // Set stop loss to the low of the previous candle
take_profit := close + 2 * (close - stop_loss) // Set take profit to 2:1 risk-to-reward ratio
// Set stop loss and take profit for the trade using strategy.exit
strategy.exit("Exit Long", "Long", stop=stop_loss, limit=take_profit)
// Close all positions at the end of the trading day (for example, at 16:00 EST)
end_of_day = (hour == 16 and minute == 0) // 16:00 EST is the end of the day for most US markets
if (end_of_day)
strategy.close_all() // Close all open positions at the end of the day