
La stratégie est un système de négociation basé sur des moyennes à plusieurs périodes, l’identification des tendances et l’analyse quantitative. L’idée centrale est d’identifier les zones de concentration formées par les moyennes à court et à moyen terme, combinées à la direction de la tendance confirmée par les moyennes à long terme, d’entrer en négociation lors d’une reprise après que les prix aient franchi les zones de concentration et de gérer les risques en utilisant le stop loss dynamique ATR et le mécanisme d’arrêt mobile.
Les principes fondamentaux de cette stratégie reposent sur les éléments clés suivants:
Identification des zones à densité moyenneLa stratégie utilise les courts (20 jours) et les longs (60 jours) moyennes pour former une zone de concentration, qui représente généralement la zone de valeur consensuelle des acteurs du marché, avec une certaine résistance ou support.
Confirmation de la tendance: la direction de la tendance globale est déterminée en comparant la position relative de la moyenne à 60 jours (intermédiaire) et de la moyenne à 120 jours (long terme). La moyenne à moyen terme est identifiée comme tendance à la hausse lorsque la moyenne à long terme est au-dessus de la moyenne à long terme; elle est au contraire une tendance à la baisse.
Une fois sur le terrain, il s’y met à nouveau.La particularité de la stratégie réside dans le fait qu’elle ne s’engage pas directement au point de rupture, mais attend que le prix revienne à la zone de concentration après la rupture, ce qui réduit efficacement le risque de fausse rupture.
Confirmation de la livraisonLes signaux d’entrée doivent satisfaire à une condition de volume de transactions supérieure à 1,5 fois la moyenne des 20 jours, afin de garantir une participation suffisante du marché pour soutenir les mouvements de prix.
Gestion des risquesStratégie: utilisation d’un stop-loss dynamique et d’un stop-stop mobile basés sur les indicateurs ATR, permettant aux niveaux de stop-loss d’être automatiquement ajustés en fonction de la volatilité du marché et de s’adapter à différents environnements de marché.
D’un point de vue de la mise en œuvre du code, les conditions d’entrée à plusieurs têtes sont les suivantes: le prix a franchi la zone dense le jour précédent (la valeur maximale de smaShort et smaMid), le prix a reculé le jour même mais reste dans la zone dense (pas inférieur à la voie descendante), et la tendance à la hausse à moyen terme (smaMid > smaLong), tout en remplissant les conditions de volume.
Une analyse approfondie de la mise en œuvre du code de cette stratégie permet de résumer les avantages suivants:
Mécanisme de confirmation à plusieurs niveauxLa composition de la stratégie prend en compte les indicateurs de la ligne moyenne sur trois périodes de temps courtes, moyennes et longues et, combinée à l’action des prix et au volume des transactions, forme un mécanisme de confirmation de signal à plusieurs niveaux, réduisant efficacement le taux d’erreur de jugement.
Le risque de rechute réduitContrairement aux stratégies traditionnelles de rupture, qui permettent d’obtenir de meilleurs prix d’entrée en attendant d’entrer directement au point de rupture, la stratégie permet de réduire les coûts et les risques de transaction.
Le filtrage des tendances améliore le taux de réussite: Déterminer la direction de la tendance majeure à l’aide d’une relation de ligne égale à moyen et à long terme, ne négocier que lorsque la tendance est claire, éviter les pertes causées par les transactions fréquentes dans les marchés instables.
Gestion dynamique des risquesLe système de stop loss et de stop mobile basé sur l’ATR permet d’ajuster automatiquement la position de protection en fonction de la volatilité du marché, tout en protégeant les bénéfices et en donnant suffisamment de marge de manœuvre au prix.
Confirmation de livraison pour renforcer la fiabilité: Réduire les erreurs de jugement dans un environnement de faible liquidité en exigeant un volume de transactions supérieur à la moyenne de 1,5 fois, en veillant à ce que les transactions se produisent pendant les périodes de forte activité du marché.
Forte capacité de réglage des paramètres: La stratégie fournit plusieurs paramètres réglables, tels que la période de la moyenne, le multiplicateur ATR, le dégagement de la transaction, etc., permettant aux traders de s’adapter de manière flexible en fonction des différentes conditions du marché et des préférences de négociation.
Bien que la stratégie soit conçue de manière globale, les risques potentiels sont les suivants:
Décalage de la moyenneLa solution consiste à envisager de raccourcir de manière appropriée le cycle de la ligne moyenne dans les marchés très volatils, ou en combinaison avec d’autres indicateurs de premier plan pour aider à la décision.
Faux sauts fréquents: Dans les marchés à oscillation horizontale, les prix peuvent fréquemment franchir des zones denses, puis revenir en arrière, ce qui entraîne des transactions fréquentes et des pertes accumulées. Il est recommandé d’ajouter des conditions de filtrage supplémentaires, telles que l’exigence d’atteindre un certain pourcentage de rupture, ou en combinaison avec l’analyse des points de résistance des supports.
Réservation de périls: Les stop-loss ATR avec des multiplicateurs fixes peuvent être exagérés ou trop serrés dans différents environnements de marché. Les paramètres du multiplicateur ATR devraient être ajustés en fonction des caractéristiques de volatilité de chaque variété et des résultats des tests historiques.
Une dépendance excessive à l’égard des transactions: les données sur le volume de transactions peuvent ne pas être suffisamment transparentes ou précises dans certains marchés, et une dépendance excessive aux conditions de transaction peut entraîner la perte d’un signal efficace. Il peut être envisagé de définir les conditions de transaction comme optionnelles ou en combinaison avec l’analyse du comportement des prix.
Paramètres optimisés pour les surmesures: Les systèmes à paramètres multiples sont sujets aux pièges d’hyperadaptation, se comportent bien sur les données historiques mais moins bien sur le disque. Il est recommandé d’utiliser des tests de marche (Walk-Forward Analysis) pour vérifier la stabilité de la stratégie sur différentes périodes.
La stratégie peut être optimisée dans les directions suivantes, en fonction de l’analyse du code:
Ajouter un filtrage du tempsConsidérez d’ajouter une confirmation de tendance pour les plus grandes périodes de temps, afin de s’assurer que la direction des transactions est cohérente avec les tendances plus cycliques. Cela est dû au fait que les tendances plus cycliques ont généralement une plus grande continuité et fiabilité.
Mise en place d’un mécanisme d’adaptation à la volatilité des prixIl est possible d’ajuster automatiquement le cycle de la moyenne et le multiplicateur ATR en fonction des fluctuations récentes du marché, ce qui permet à la stratégie de bien fonctionner dans différents environnements de marché. Prolonger le cycle de la moyenne de manière appropriée dans les marchés à forte volatilité, réduire la fréquence du signal; Réduire le cycle de la moyenne de manière appropriée dans les marchés à faible volatilité, améliorer la sensibilité.
Ajouter des filtres saisonniers et temporels: certains marchés présentent des caractéristiques saisonnières évidentes ou des effets d’heure dans la journée, des conditions de filtrage temporel peuvent être ajoutées pour éviter les périodes historiques de mauvais rendement.
Optimisation de la logique de confirmation de retour: La confirmation de reprise actuelle est basée uniquement sur le fait que le prix se trouve dans une zone dense. Il est possible d’envisager d’ajouter des exigences de profondeur de reprise plus précises, telles que des exigences de position proportionnelle spécifique de la reprise dans une zone dense (par exemple, 38.2% et 50% de reprise), ou en combinaison avec la confirmation de fin de reprise en forme de ligne K.
Ajout d’un module de gestion de fondsLes stratégies actuelles utilisent des volumes fixes de transactions, ce qui peut être amélioré par une gestion de position dynamique basée sur la taille du compte et le ratio de risque, comme le ratio de risque fixe ou la formule Kelly, pour optimiser la courbe de fonds et le contrôle du retrait maximal.
Adhésion à l’identification de l’environnement du marché: accroître la classification des environnements de marché (marché en tendance/marché en choc), adopter des paramètres différents ou même des stratégies de négociation différentes dans différents environnements de marché, afin d’éviter de négocier fréquemment dans des environnements de marché inappropriés.
Le “système de négociation de rupture de reprise de tendance multilinéaire avec arrêt dynamique ATR” est une stratégie de négociation quantifiée qui combine plusieurs idées avancées de l’analyse technique. Il identifie les intervalles de valeur à travers des zones denses de régularité, utilise le système de régularité pour déterminer la direction de la tendance, combine le comportement des prix de rupture de reprise et la confirmation du volume de transaction, et construit un système de négociation relativement parfait. L’avantage de la stratégie réside dans le mécanisme de confirmation de signal à plusieurs niveaux et le système de gestion des risques flexible, adapté aux transactions de suivi de tendance à moyen et à long terme.
La stratégie a de grandes possibilités d’amélioration en ajoutant des mécanismes d’adaptation, l’identification de l’environnement du marché et une logique de confirmation de reprise plus fine. En outre, la stabilité et la rentabilité à long terme de la stratégie seront encore améliorées en combinaison avec un meilleur système de gestion des fonds.
Dans l’ensemble, il s’agit d’un système de trading conçu pour être logique et logique, qui incarne la philosophie de trading de “ suivre la tendance + gérer le risque dynamique ” et qui convient aux traders ayant une certaine expérience dans des marchés où la tendance est évidente.
/*backtest
start: 2024-03-05 00:00:00
end: 2025-03-03 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("均线密集区交易系统(优化版2)", shorttitle="MA_Zone_Opt2", overlay=true, initial_capital=10000, default_qty_type=strategy.fixed, default_qty_value=1000, commission_value=0.1)
// === 输入参数 ===
smaShortPeriod = input.int(20, title="短期SMA周期", minval=1)
smaMidPeriod = input.int(60, title="中期SMA周期", minval=1)
smaLongPeriod = input.int(120, title="长期SMA周期", minval=1)
atrPeriod = input.int(14, title="ATR周期", minval=1)
atrMultiplierStop = input.float(3.0, title="止损ATR倍数", minval=1.0)
atrMultiplierTrail = input.float(2.0, title="移动止盈ATR倍数", minval=1.0)
volPeriod = input.int(20, title="成交量周期", minval=1)
volThreshold = input.float(1.5, title="成交量倍数", minval=1.0)
// === 计算均线 ===
smaShort = ta.sma(close, smaShortPeriod) // MA20
smaMid = ta.sma(close, smaMidPeriod) // MA60
smaLong = ta.sma(close, smaLongPeriod) // MA120
// === 计算 ATR 和成交量 ===
atrValue = ta.atr(atrPeriod)
volAvg = ta.sma(volume, volPeriod)
volCondition = volume > volAvg * volThreshold // 成交量高于平均值 1.5 倍
// === 定义均线密集区(只用 SMA20 和 SMA60) ===
maMax = math.max(smaShort, smaMid)
maMin = math.min(smaShort, smaMid)
// === 趋势过滤:SMA60 和 SMA120 的相对位置 ===
trendUp = smaMid > smaLong // 60日均线上穿120日均线,上升趋势
trendDown = smaMid < smaLong // 60日均线下穿120日均线,下降趋势
// === 交易信号逻辑 ===
// 涨破密集区:K线收盘价突破 maMax
breakUp = ta.crossover(close, maMax)
// 跌破密集区:K线收盘价跌破 maMin
breakDown = ta.crossunder(close, maMin)
// 回踩条件:
// 买入 - 前一根K线跌至密集区内,当前K线仍在密集区内,且趋势向上
pullbackUp = close[1] <= maMax and close[1] >= maMin and close >= maMin and trendUp and volCondition
// 卖出 - 前一根K线涨至密集区内,当前K线仍在密集区内,且趋势向下
pullbackDown = close[1] >= maMin and close[1] <= maMax and close <= maMax and trendDown and volCondition
// === 买卖逻辑 ===
// 买入(多单):涨破后回踩,且趋势向上
if breakUp[1] and pullbackUp
strategy.entry("Long", strategy.long)
// 动态止损和移动止盈
stopLossPrice = strategy.position_avg_price * (1 - atrMultiplierStop * atrValue / close)
trailStopPrice = close * (1 - atrMultiplierTrail * atrValue / close)
strategy.exit("Long_Exit", "Long", stop=stopLossPrice, trail_points=trailStopPrice, trail_offset=0)
// 卖出(空单):跌破后回踩,且趋势向下
if breakDown[1] and pullbackDown
strategy.entry("Short", strategy.short)
// 动态止损和移动止盈
stopLossPriceShort = strategy.position_avg_price * (1 + atrMultiplierStop * atrValue / close)
trailStopPriceShort = close * (1 + atrMultiplierTrail * atrValue / close)
strategy.exit("Short_Exit", "Short", stop=stopLossPriceShort, trail_points=trailStopPriceShort, trail_offset=0)
// === 绘制信号点 ===
plotshape(breakUp[1] and pullbackUp, title="买入信号", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(breakDown[1] and pullbackDown, title="卖出信号", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)