Stratégie quantitative croisée SMA-EMA multi-échéances

SMA EMA RSI HTF TP/SL Trailing Stop
Date de création: 2025-06-16 14:55:14 Dernière modification: 2025-06-16 14:55:14
Copier: 4 Nombre de clics: 257
2
Suivre
319
Abonnés

Stratégie quantitative croisée SMA-EMA multi-échéances Stratégie quantitative croisée SMA-EMA multi-échéances

Aperçu

La stratégie de quantification croisée SMA-EMA à plusieurs créneaux horaires est une stratégie d’analyse technique qui combine des signaux croisés de moyennes mobiles simples (SMA) et de moyennes mobiles indicielles (EMA) et aide à juger par le filtrage de plusieurs créneaux horaires et l’indicateur RSI. L’idée centrale de la stratégie est de capturer les points de croisement entre les EMA15 et les SMA60 comme point d’entrée, tout en introduisant les signaux EMA200 comme référence de tendance à long terme et en combinant les créneaux horaires plus élevés EMA200 pour filtrer la direction de la transaction et évite finalement de négocier dans des zones de survente par l’indicateur RSI.

Principe de stratégie

Les principes de base de cette stratégie reposent sur les composants techniques suivants:

  1. Système de croisement des moyennes mobiles

    • Un croisement entre une EMA de 15 cycles et une SMA de 60 cycles est utilisé comme signal principal.
    • La formation de signaux multiples à travers SMA60 sur EMA15
    • Le signal de crevaison se forme à travers le SMA60 sous l’EMA15
    • L’EMA cyclique 200 comme référence à long terme
  2. Filtrage à plusieurs reprises

    • L’introduction d’un créneau de temps plus élevé (par défaut 60 minutes) pour l’EMA200 comme outil de jugement des tendances
    • Le surplus est autorisé uniquement si le prix est au-dessus de la barre haute de l’EMA 200
    • La marge de manœuvre n’est autorisée que lorsque le prix est en dessous de la barre haute de l’EMA 200
    • Ce mécanisme de filtrage assure que la direction des transactions est cohérente avec la tendance sur une période plus longue.
  3. Mécanisme de filtrage du RSI

    • Utilisez l’indicateur RSI à 14 cycles pour éviter de prendre des positions dans des zones de survente
    • RSI inférieur à 30 est une zone de survente, limitant le shorting
    • Le RSI supérieur à 70 est une zone d’achat excessif, la limite est la survente
    • Cette conception permet d’éviter les transactions négatives et d’améliorer la qualité des entrées.
  4. Système de gestion des risques

    • Réglages de freinage flexibles, avec prise en charge de points fixes ou de pourcentages
    • Réglages de stop-loss avec un nombre de points fixe
    • Le mécanisme de stop-loss de suivi, qui bloque les bénéfices
    • Contrôle du moment de la transaction pour éviter de détenir des positions avant la clôture du marché

La logique de négociation de la stratégie est basée sur le principe du “ suivi de la tendance + confirmation multiple “, qui assure la négociation uniquement dans des directions à forte probabilité grâce à un mécanisme de filtrage à plusieurs niveaux, tout en protégeant la sécurité des fonds grâce à des mesures strictes de contrôle des risques.

Avantages stratégiques

En analysant le code en profondeur, cette stratégie présente les avantages suivants:

  1. Mécanisme de confirmation multiple: La combinaison de la croisée des moyennes mobiles à court terme, de la détermination de la tendance à long terme et du filtrage RSI forme un mécanisme de triple confirmation, améliorant considérablement la qualité du signal et réduisant les fausses ruptures et les faux signaux.

  2. Adaptation à une situation de marché différenteParamétriquement, la stratégie peut être adaptée de manière flexible pour s’adapter à différents environnements de marché et variétés de transactions, telles que la modification des cycles de moyenne mobile, des valeurs RSI, etc.

  3. Une bonne maîtrise des risques

    • Prise en charge de plusieurs modes d’arrêt ((point fixe / pourcentage))
    • Fonds de protection contre les pertes
    • Le blocage de la perte de suivi pour le blocage des bénéfices
    • Ce mécanisme de gestion des risques à plusieurs niveaux maîtrise efficacement les risques les plus importants d’une transaction
  4. Gestion des périodes de transaction: la fixation automatique d’une période de clôture avant la clôture évite les risques du jour au lendemain et les incertitudes liées à la volatilité de la clôture, particulièrement adaptée aux traders intraday.

  5. Filtre de tendance à la hausseLe taux de réussite a été amélioré en introduisant un jugement de tendance à une plus grande échelle de temps, ce qui a permis d’assurer la cohérence de la direction des transactions avec les grandes tendances.

  6. Conception modulaire: les composants de la stratégie (signalisation, mécanisme de filtrage, gestion des risques) sont clairement séparés pour faciliter la compréhension et l’adaptation, ainsi que l’optimisation et l’extension ultérieures.

Risque stratégique

Bien que cette stratégie soit conçue de manière globale, les risques potentiels sont les suivants:

  1. Paramètre SensibilitéL’efficacité de la stratégie dépend fortement de paramètres tels que la période des moyennes mobiles, les seuils RSI. Différents environnements de marché peuvent nécessiter des combinaisons de paramètres différentes, et une mauvaise optimisation des paramètres peut entraîner une suradaptation des données historiques.

  2. Le problème du retardLes moyennes mobiles sont essentiellement des indicateurs à retardement, et peuvent donner des signaux plus tardifs, manquer les meilleurs points d’entrée ou entraîner des retraits plus importants dans des marchés très volatils ou en revers rapide.

  3. Les marchés horizontaux ne sont pas performants: Dans les marchés de couverture horizontale où il n’y a pas de tendance claire, les croisements de moyennes mobiles peuvent générer de fréquents faux signaux, entraînant des pertes continues.

  4. Une dépendance excessive à l’égard des indicateurs techniquesLa stratégie est entièrement basée sur des indicateurs techniques, sans tenir compte des facteurs fondamentaux et de l’humeur du marché, ce qui peut entraîner une mauvaise performance dans un marché axé sur des nouvelles ou des événements majeurs.

  5. Risque de stop-loss fixeLe stop-loss à points fixes peut ne pas être suffisamment souple dans un marché en pleine volatilité, peut être trop serré lorsque la volatilité augmente et trop serré lorsque la volatilité diminue.

La solution est simple:

  • Retour sur différents marchés et périodes pour trouver une combinaison de paramètres solide
  • Mettre en place des mécanismes de freinage pour augmenter la volatilité
  • Ajout de conditions de filtrage supplémentaires dans les marchés horizontaux, telles que la dévaluation des taux de volatilité
  • Stratégie de renforcement combinée à des facteurs fondamentaux ou à des indicateurs de sentiment du marché
  • Considérer l’ajout d’un mécanisme de confirmation de volume pour améliorer la qualité du signal

Orientation de l’optimisation de la stratégie

Voici quelques pistes d’optimisation à considérer sur la base du cadre existant de la stratégie:

  1. Mécanisme d’adaptation à la volatilité

    • Introduction de l’indicateur ATR (Average True Range) pour ajuster les niveaux de stop loss et d’arrêt
    • Élargissement du périmètre d’arrêt dans un environnement à forte volatilité et resserrement du périmètre d’arrêt dans un environnement à faible volatilité
    • Ce mécanisme d’adaptation peut mieux s’adapter aux différentes conditions du marché.
  2. Renforcement de la cohérence dans le temps

    • Confirmation de l’ajout d’une colonne de temps intermédiaire, créant une triple exigence de cohérence de la période ” à court terme + moyen terme + long terme “
    • Les transactions ne sont exécutées que lorsque les signaux de plusieurs périodes sont identiques
    • Cela réduit encore plus le risque de faux signaux.
  3. Confirmation de la transaction

    • Ajout d’une analyse de volume de transaction, demandant une augmentation du volume de transaction lorsque le signal apparaît
    • On peut utiliser des indicateurs de volume de transaction relatif tels que OBV ou Chaikin Money Flow
    • La confirmation de volume de transactions peut améliorer considérablement la qualité du signal et l’efficacité de la percée.
  4. Optimisation des paramètres dynamiques

    • Mise en œuvre d’un mécanisme d’ajustement dynamique des paramètres pour optimiser automatiquement les cycles des moyennes mobiles et les seuils du RSI en fonction des performances récentes du marché
    • Cette approche d’adaptation peut aider les stratégies à mieux s’adapter aux changements de l’état du marché
  5. Catégorie des états du marché

    • Ajout d’un module d’identification de l’état du marché pour différencier les marchés tendance et les marchés oscillants
    • Différentes règles de génération et de filtrage de signaux sont utilisées dans différents états de marché
    • Cette adaptation dynamique peut améliorer l’adaptabilité de la stratégie dans divers environnements de marché.
  6. L’optimisation de l’apprentissage automatique

    • Optimisation des décisions d’admission à l’aide d’algorithmes d’apprentissage automatique tels que des arbres de décision ou des réseaux neuronaux
    • Prendre en compte d’autres facteurs tels que la saisonnalité, l’humeur du marché et la volatilité
    • Cela améliore la prévisibilité et l’adaptabilité des stratégies.

Ces orientations d’optimisation permettent d’améliorer les insuffisances de la stratégie afin de la maintenir stable dans un environnement de marché plus large.

Résumer

La stratégie de quantification croisée SMA-EMA en couches de temps multiples est un système de négociation d’analyse technique bien structuré et logiquement clair. Elle forme un cadre de décision de négociation à plusieurs niveaux en combinant les signaux de croisement des moyennes mobiles, le filtrage des tendances en couches de temps multiples et les jugements de survente et de survente du RSI.

Les principaux avantages de cette stratégie résident dans son mécanisme de confirmation multiple et sa bonne maîtrise des risques, ce qui lui permet d’exceller dans les marchés tendanciels tout en contrôlant efficacement les risques. Cependant, la stratégie présente également des problèmes tels qu’une sensibilité élevée aux paramètres et une mauvaise adaptation aux marchés horizontaux.

Il y a beaucoup de place pour l’amélioration de la stratégie en introduisant des mécanismes d’adaptation automatique des taux de volatilité, en renforçant les exigences de cohérence de plusieurs périodes, en augmentant les confirmations de volume et en optimisant les paramètres dynamiques. Ces optimisations peuvent aider la stratégie à mieux s’adapter aux différents environnements de marché et à améliorer la stabilité globale et la rentabilité.

Dans l’ensemble, il s’agit d’une stratégie de suivi de tendance bien conçue et adaptée aux traders ayant une certaine base en analyse technique. Avec un ajustement et une optimisation appropriés des paramètres, il peut devenir un outil de trading fiable, particulièrement adapté aux environnements de marché où les tendances sont claires à moyen et long terme.

Code source de la stratégie
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-15 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy(title="PhaiSinh_SMA & EMA [VNFlow]", overlay=true, slippage=1, backtest_fill_limits_assumption=1, initial_capital=100.000, default_qty_type=strategy.fixed, default_qty_value=4, commission_type=strategy.commission.cash_per_order, commission_value=2700,fill_orders_on_standard_ohlc=true, calc_on_order_fills=true, process_orders_on_close=true)

// === Chỉ báo chính ===
sma60 = ta.sma(close, 60)
ema15 = ta.ema(close, 15)
ema200 = ta.ema(close, 200)
plot(sma60, title="SMA 60", color=color.rgb(227, 10, 251), linewidth=1)
plot(ema15, title="EMA 15", color=color.rgb(246, 222, 11), linewidth=1)
plot(ema200, title="EMA 200", color=color.rgb(13, 141, 245), linewidth=1)

// === Cấu hình thời gian thoát trước khi hết phiên ===
session_close_hour = input.int(14, title="Giờ đóng phiên (24h)")
session_close_minute = input.int(30, title="Phút đóng phiên")
minutes_before_close = input.int(5, title="Số phút thoát lệnh trước đóng phiên")
exit_hour = session_close_hour
exit_minute = session_close_minute - minutes_before_close
exit_hour := exit_minute < 0 ? exit_hour - 1 : exit_hour
exit_minute := exit_minute < 0 ? exit_minute + 60 : exit_minute
cutoff_time = (hour > exit_hour) or (hour == exit_hour and minute >= exit_minute)

// === Bộ lọc RSI ===
use_rsi_filter = input.bool(true, title="Bộ lọc RSI?")
rsi_period = input.int(14, title="Chu kỳ RSI")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
rsi_val = ta.rsi(close, rsi_period)

// === Bộ lọc EMA từ HTF ===
use_htf_filter = input.bool(true, title="Bộ lọc EMA HTF?")
htf_tf = input.timeframe("60", title="Khung thời gian EMA cao hơn")
htf_ema = request.security(syminfo.tickerid, htf_tf, ta.ema(close, 200))
ema_trend_up = close > htf_ema
ema_trend_down = close < htf_ema

// === Cài đặt TP/SL/Trailing ===
use_percent_tp = input.bool(false, title="TP theo % (nếu không: tính theo tick)")
tp_value = input.float(1.0, title="Take Profit (tick hoặc %)")
sl_value = input.float(20.0, title="Stop Loss (tick)")
trail_offset = input.int(10, title="Trailing Stop (tick)")

// === Logic tín hiệu vào/ra ===
long_entry = ta.crossover(ema15, sma60) and close >= ema15 and not cutoff_time
short_entry = ta.crossunder(ema15, sma60) and close <= ema15 and not cutoff_time
long_ok = long_entry and (not use_htf_filter or ema_trend_up) and (not use_rsi_filter or rsi_val > rsi_oversold)
short_ok = short_entry and (not use_htf_filter or ema_trend_down) and (not use_rsi_filter or rsi_val < rsi_overbought)

// === Vào lệnh ===
if long_ok
    strategy.entry("Long", strategy.long)
if short_ok
    strategy.entry("Short", strategy.short)

// === Tính TP theo giá nếu chọn % ===
long_tp_price = close * (1 + tp_value / 100)
short_tp_price = close * (1 - tp_value / 100)

// === Thoát lệnh với TP/SL/Trailing ===
if strategy.position_size > 0
    if use_percent_tp
        strategy.exit("Dừng Long %", from_entry="Long", loss=sl_value, limit=long_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng Long Tick", from_entry="Long", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

if strategy.position_size < 0
    if use_percent_tp
        strategy.exit("Dừng Short %", from_entry="Short", loss=sl_value, limit=short_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng short Tick", from_entry="Short", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

// === Đóng toàn bộ trước phiên ===
if cutoff_time
    strategy.close_all()