
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.
Les principes de base de cette stratégie reposent sur les composants techniques suivants:
Système de croisement des moyennes mobiles:
Filtrage à plusieurs reprises:
Mécanisme de filtrage du RSI:
Système de gestion des risques:
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.
En analysant le code en profondeur, cette stratégie présente les avantages suivants:
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.
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.
Une bonne maîtrise des risques:
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.
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.
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.
Bien que cette stratégie soit conçue de manière globale, les risques potentiels sont les suivants:
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.
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.
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.
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.
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:
Voici quelques pistes d’optimisation à considérer sur la base du cadre existant de la stratégie:
Mécanisme d’adaptation à la volatilité:
Renforcement de la cohérence dans le temps:
Confirmation de la transaction:
Optimisation des paramètres dynamiques:
Catégorie des états du marché:
L’optimisation de l’apprentissage automatique:
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.
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.
/*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()