Système de trading révolutionnaire d'ajustement de la volatilité à double cycle et stratégie de gestion dynamique des positions et de position pyramidale

ATR Donchian Channels BREAKOUT TREND FOLLOWING POSITION SIZING PYRAMIDING Turtle Trading
Date de création: 2025-06-16 15:14:24 Dernière modification: 2025-08-12 17:46:27
Copier: 0 Nombre de clics: 333
2
Suivre
319
Abonnés

Système de trading révolutionnaire d’ajustement de la volatilité à double cycle et stratégie de gestion dynamique des positions et de position pyramidale Système de trading révolutionnaire d’ajustement de la volatilité à double cycle et stratégie de gestion dynamique des positions et de position pyramidale

Aperçu

Le système de négociation d’une rupture à deux cycles est une stratégie quantitative basée sur la célèbre règle de négociation du tsunami, qui utilise deux périodes de temps différentes (les 20e et 55e jours) pour capturer les ruptures de marché, tout en combinant des indicateurs de volatilité pour la gestion dynamique des positions. Le système intègre plusieurs techniques de négociation quantitative, telles que le suivi de la tendance, la rupture de la transaction, l’ajustement de la position d’ajustement de la volatilité et l’ajout de la pyramide, afin de capturer efficacement les tendances du marché à moyen et à long terme. La logique centrale de la stratégie est d’entrer dans le marché au moment du pic ou de la baisse avant la rupture des prix, en calculant le taux de volatilité (ATR) et en effectuant un ajout de position pyramidale de taille raisonnable et en continuant la tendance, qui est finalement stoppée ou rentable par une rupture à court terme.

Principe de stratégie

L’analyse du code montre que les principes centraux de cette stratégie comprennent les aspects suivants:

  1. Décès en double cycleLa stratégie utilise deux systèmes d’entrée - le système 1 utilise le breakout du haut/bas du 20e jour comme signal d’entrée principal; le système 2 est activé après la perte de la transaction précédente et utilise le breakout du haut/bas du 55e jour comme signal d’entrée. Cette conception permet d’ajuster automatiquement la sensibilité d’entrée en fonction de l’état du marché.

  2. Mesure de la volatilité et gestion des positions: La stratégie utilise l’amplitude réelle moyenne de 20 jours (ATR) comme mesure de la volatilité du marché, en calculant une position raisonnable par la formule: unité de position = montant du risque / (N * valeur du point). Le montant du risque est égal au capital de la position multiplié par le pourcentage de risque défini (défaut de 1%). Cette méthode garantit un maintien de l’exposition au risque uniforme dans différents environnements de volatilité.

  3. Le mécanisme de mise en place de la pyramide: la stratégie permet d’ajouter de nouvelles unités de la même taille lorsque le prix d’une position déjà rentable continue de se déplacer dans une direction favorable (à une distance d’au moins 0,5 N). Cette méthode de mise en position pyramidale permet d’élargir le potentiel de profit dans un marché à forte tendance.

  4. La courte période a été inversée pour atteindre la parité.Stratégie: Utilisez le 10e jour de basse/haute comme signal de sortie pour les positions plus/casses. Lorsque le prix tombe au-dessous du 10e jour de basse, éliminez toutes les positions plus hautes; lorsque le prix franchit le 10e jour de haute, éliminez toutes les positions vides.

  5. Mécanisme de commutation: la stratégie ajuste automatiquement le système d’entrée en fonction des résultats de la transaction. Si une transaction dans une direction est perdante, la prochaine transaction dans la même direction utilisera le système 2 (cycle de 55 jours); Une fois que la transaction est rentable, elle reprendra le système 1 (cycle de 20 jours).

La combinaison de ces principes permet à la stratégie d’entrer plus tôt dans un marché en tendance, de se positionner en avance et de s’en retirer au début d’une inversion de tendance, capturant ainsi efficacement les tendances du marché à moyen et long terme.

Avantages stratégiques

En analysant le code, nous pouvons conclure que la stratégie présente les principaux avantages suivants:

  1. Décisions mécaniséesLa stratégie est entièrement basée sur des règles de trading quantitatives, éliminant les interférences émotionnelles artificielles et garantissant une application stricte de la discipline de trading. Le code définit clairement les conditions d’entrée, de mise en position et de sortie, sans jugement subjectif.

  2. Gestion dynamique des risques: en limitant le risque de chaque transaction à un pourcentage fixe de l’intérêt du compte (par défaut 1%) et en combinant la taille de position ATR, la stratégie permet de maintenir une exposition au risque constante dans différents environnements de volatilité. Cette méthode réduit automatiquement les positions dans les marchés à forte volatilité et augmente les positions de manière appropriée dans les marchés à faible volatilité.

  3. Adaptation aux conditions du marché: La conception à deux cycles permet à la stratégie de s’ajuster automatiquement en fonction de l’état du marché. Utilisez des cycles plus courts (de 20 jours) pour maintenir la sensibilité dans des marchés à tendance gagnante; Passez à des cycles plus longs (de 55 jours) pour réduire les faux signaux après avoir subi des pertes.

  4. Le mécanisme de repriseLa stratégie consiste à calculer la taille de la position en fonction des droits et intérêts du compte en cours, en augmentant automatiquement la position à mesure que le compte augmente, ce qui permet de réaliser un effet de rebond; et d’élargir le potentiel de profit dans une forte tendance grâce à un mécanisme de mise en position pyramidale.

  5. Adaptation à plusieurs marchés: La stratégie est conçue pour s’appliquer à de nombreuses catégories d’actifs, en particulier dans les marchés qui présentent des caractéristiques de tendance évidentes, comme l’or. En ajustant les paramètres, l’optimisation peut être adaptée aux différentes caractéristiques du marché.

  6. Une maîtrise claire des risques: Utilisation de la rupture inverse de 10 jours comme signal de sortie, pour fournir un point de stop-loss clair pour chaque transaction, contrôler efficacement le risque de chaque transaction; et contrôler le risque systémique en définissant le pourcentage de risque maximal.

Risque stratégique

Bien que cette stratégie présente de nombreux avantages, elle comporte les risques suivants:

  1. Risque de fausse percée: Dans un marché en tremblement de terre, les prix peuvent fréquemment franchir des hauts/bas, puis rapidement revenir en arrière, entraînant des pertes continues. Le manque de mécanisme de filtrage des fausses brises dans le code peut générer plus de signaux inefficaces dans un marché hors tendance.

  2. Le risque de surinvestissement est accru: le mécanisme de mise en position pyramidale est très efficace pendant la tendance, mais si la tendance est soudainement inversée, les positions à plusieurs unités peuvent entraîner de grandes pertes. Bien que la stratégie établisse des conditions d’exit, les pertes peuvent être plus importantes dans un revirement radical.

  3. Paramètre SensibilitéLa performance de la stratégie dépend fortement des paramètres définis (cycle d’entrée, cycle de sortie, cycle ATR, intervalle de prise de position, etc.). Différents environnements de marché peuvent nécessiter des combinaisons de paramètres différentes, et des paramètres fixes peuvent entraîner une performance instable.

  4. Risques liés à la liquidité: Dans les marchés peu liquides, une forte prise de position peut entraîner une augmentation des points de glissement ou des difficultés à négocier aux prix attendus, ce qui affecte l’efficacité de l’exécution réelle. Il n’y a pas de mécanisme de traitement des problèmes de liquidité dans le code.

  5. Exposition au risque systémique: En tant que pure stratégie de suivi de tendance, elle peut être très corrélée à d’autres stratégies de suivi de tendance, ce qui rend difficile la protection de la diversification en période de baisse générale ou de forte volatilité du marché.

  6. Problème de précision de calcul: Le code utilise la fonction math.floor pour calculer la position vers le bas, ce qui peut entraîner une position trop petite ou impossible à négocier dans un compte de petite taille. De plus, un mauvais réglage de la valeur du point peut également entraîner une erreur de calcul de la position.

Pour gérer ces risques, on peut envisager d’ajouter des filtres de tendance, de fixer des limites de position maximales, d’optimiser les règles de prise de position et d’augmenter les mécanismes d’ajustement de la volatilité.

Orientation de l’optimisation de la stratégie

Sur la base de l’analyse du code, la stratégie peut être optimisée dans les domaines suivants:

  1. Ajouter un filtre de tendanceLa stratégie actuelle est purement basée sur des transactions de rupture de prix, susceptibles d’être affectées par de fausses ruptures. Des indicateurs de tendance peuvent être ajoutés (comme les moyennes mobiles, l’ADX, etc.) comme conditions de filtrage, exécutant des transactions uniquement lorsque la direction de la tendance est cohérente, réduisant ainsi les pertes de transactions sur les marchés en crise.

  2. Optimisation des règles de mise en placeLes mécanismes existants sont relativement simples, et il est possible d’envisager l’introduction d’un ratio de prise de risque décroissant (avec une diminution progressive des unités de prise de risque ultérieures) ou d’établir une limite au nombre maximal de prises de risque, en équilibrant la nécessité d’augmenter les gains et de contrôler les risques.

  3. Ajustement des paramètres dynamiquesIl est possible d’ajuster les cycles d’entrée/sortie et les intervalles de prise de position en fonction de la volatilité du marché ou de l’intensité de la tendance. Par exemple, le cycle d’entrée est allongé dans les marchés à forte volatilité et le cycle de sortie est raccourci dans les marchés à faible volatilité, ce qui rend la stratégie plus adaptative.

  4. Ajouter un filtrage de tempsLes conditions de filtrage des heures de transaction ont été ajoutées afin d’éviter les périodes de publication de données économiques importantes ou de mobilité réduite et de réduire le risque de fluctuations anormales.

  5. Confirmation de plusieurs périodes: la direction de la tendance associée à des périodes de temps plus longues comme condition de filtrage des transactions, par exemple, l’exécution de transactions uniquement lorsque la tendance du jour est en accord avec la direction de la tendance des 4 heures, améliorant la qualité du signal.

  6. Optimisation de la gestion des fondsIl est possible d’introduire des modèles de gestion de fonds plus complexes, tels que la formule de Kelly ou la méthode de la valeur optimale de f, afin d’optimiser davantage la courbe de croissance des fonds en ajustant le ratio de risque en fonction de la dynamique du taux de réussite et du rapport de gain / perte attendus.

  7. Augmentation de l’arrêtLes stratégies actuelles sont basées uniquement sur des sorties de rupture inversées, mais on peut envisager d’ajouter des mécanismes de blocage partiel des bénéfices, tels que la liquidation de certaines positions lorsque des objectifs de bénéfices spécifiques sont atteints, tout en capturant les tendances et en protégeant les bénéfices.

Ces orientations d’optimisation permettent d’améliorer efficacement la stabilité et la rentabilité de la stratégie, en particulier son adaptabilité à différents environnements de marché.

Résumer

Le système de négociation de rupture de fluctuation à deux cycles est une stratégie de négociation quantitative complète basée sur les règles de négociation de la pirogue, qui intègre plusieurs techniques de négociation quantitative telles que l’entrée de rupture, la gestion de la position de fluctuation, la mise en garde pyramidale et le cycle d’adaptation. La stratégie capture les ruptures de prix pour entrer dans la tendance, exploite les ouvertures de risque de contrôle de la fluctuation et maximise les gains de tendance grâce à la mise en garde pyramidale.

La valeur centrale de la stratégie réside dans sa conception globale du système, comprenant tous les aspects de l’entrée, de la sortie, de la gestion des positions et du contrôle des risques, formant un système de négociation autonome. En particulier, son mécanisme d’ajustement des positions à la volatilité et sa conception d’adaptation à deux cycles permettent à la stratégie de maintenir une performance relativement stable dans différents environnements de marché.

Cependant, en tant que stratégie de suivi de tendance, elle peut mal fonctionner dans les marchés volatiles et doit être améliorée par des méthodes telles que l’ajout de filtres de tendance, l’optimisation des règles d’hypothèque et l’ajustement des paramètres dynamiques. En outre, la stratégie est adaptée pour être utilisée dans le cadre d’un portefeuille d’investissement et en combinaison avec d’autres types de stratégies (comme la stratégie de retour au cours moyen) pour obtenir une courbe de rendement plus lisse.

Dans l’ensemble, il s’agit d’une stratégie de trading quantitatif conçue de manière rationnelle, logique et claire, avec une bonne base théorique et une valeur pratique. Grâce à l’optimisation des paramètres appropriés et à des mécanismes de supplémentation, la stratégie a le potentiel de générer des rendements stables dans une variété d’environnements de marché.

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

//@version=5
//策略声明和基础设置
strategy("Turtle Trading System (Full Version)", overlay=true, pyramiding=5)

//风险控制参数
riskPercent = input.float(0.5, title="每笔交易风险占资金百分比", minval=0.1, maxval=5.0, step=0.1)
pointValue = input.float(1.0, title="点值($/点)")

//入场周期参数
entryPeriod1 = input.int(20, title="系统1入场周期")
entryPeriod2 = input.int(55, title="系统2入场周期(亏损后)")

//出场和波动性参数
exitPeriod = input.int(10, title="出场周期")
nPeriod = input.int(20, title="N周期(ATR)")
pyramidSpacing = input.float(0.5, title="每N x ...添加单位", step=0.1)

//波动性指标计算
N = ta.atr(nPeriod)//计算ATR作为市场波动性的量化标准

//系统1入场通道计算(20周期)
entryHigh1 = ta.highest(high, entryPeriod1)//计算20周期内最高价作为做多突破位
entryLow1 = ta.lowest(low, entryPeriod1)//计算20周期内最低价作为做空突破位

//系统2入场通道计算(55周期)
entryHigh2 = ta.highest(high, entryPeriod2)//计算55周期内最高价作为保守做多突破位
entryLow2 = ta.lowest(low, entryPeriod2)//计算55周期内最低价作为保守做空突破位

//出场通道计算(10周期)
exitLong = ta.lowest(low, exitPeriod)//计算10周期内最低价作为多头出场位
exitShort = ta.highest(high, exitPeriod)//计算10周期内最高价作为空头出场位

//交易状态跟踪变量
var bool lastLongLoss = false//记录上次多头交易是否亏损
var bool lastShortLoss = false//记录上次空头交易是否亏损
var float lastLongEntryPrice = na//记录上次多头入场价格
var float lastShortEntryPrice = na//记录上次空头入场价格

//账户权益和风险计算
equity = strategy.equity//获取当前账户总权益
riskDollars = equity * (riskPercent / 100)//计算每笔交易允许的风险金额
unitSize = riskDollars / (N * pointValue)//基于ATR计算标准头寸规模
positionSize = math.round(unitSize, 3)//设定最终头寸大小

//入场信号生成逻辑
useSystem1Long = close > entryHigh1[1]//系统1多头入场条件
useSystem2Long = lastLongLoss and close > entryHigh2[1]//系统2多头入场条件(仅在上次亏损后)
useSystem1Short = close < entryLow1[1]//系统1空头入场条件
useSystem2Short = lastShortLoss and close < entryLow2[1]//系统2空头入场条件(仅在上次亏损后)

//金字塔加仓条件
canAddLong = strategy.opentrades > 0 and strategy.position_size > 0 and close >= lastLongEntryPrice + (pyramidSpacing * N)
//多头加仓条件
canAddShort = strategy.opentrades > 0 and strategy.position_size < 0 and close <= lastShortEntryPrice - (pyramidSpacing * N)
//空头加仓条件

//出场信号生成
longExit = close < exitLong//多头出场条件
shortExit = close > exitShort//空头出场条件

//多头入场执行
if (useSystem1Long or useSystem2Long)
    strategy.entry("Long", strategy.long, qty=positionSize)//执行多头开仓
    lastLongEntryPrice := close//记录多头入场价格作为加仓基准
    lastLongLoss := false//重置多头亏损状态

//空头入场执行
if (useSystem1Short or useSystem2Short)
    strategy.entry("Short", strategy.short, qty=positionSize)//执行空头开仓
    lastShortEntryPrice := close//记录空头入场价格作为加仓基准
    lastShortLoss := false//重置空头亏损状态

//多头加仓执行
if (canAddLong)
    strategy.entry("Long Add", strategy.long, qty=positionSize)//执行多头加仓
    lastLongEntryPrice := close//更新多头入场价格基准

//空头加仓执行
if (canAddShort)
    strategy.entry("Short Add", strategy.short, qty=positionSize)//执行空头加仓
    lastShortEntryPrice := close//更新空头入场价格基准

//多头出场执行
if (longExit)
    strategy.close("Long")//平掉初始多头头寸
    strategy.close("Long Add")//平掉所有多头加仓头寸
    lastLongLoss := close < lastLongEntryPrice//根据出场价格更新亏损状态

//空头出场执行
if (shortExit)
    strategy.close("Short")//平掉初始空头头寸
    strategy.close("Short Add")//平掉所有空头加仓头寸
    lastShortLoss := close > lastShortEntryPrice//根据出场价格更新亏损状态

//系统1入场信号可视化
plot(entryHigh1, title="20周期高点", color=color.green)//绘制系统1多头入场线
plot(entryLow1, title="20周期低点", color=color.red)//绘制系统1空头入场线

//系统2入场信号可视化
plot(entryHigh2, title="55周期高点", color=color.lime, linewidth=1)//绘制系统2多头入场线
plot(entryLow2, title="55周期低点", color=color.maroon, linewidth=1)//绘制系统2空头入场线

//出场信号可视化
plot(exitLong, title="10周期低点(多头出场)", color=color.orange)//绘制多头出场信号线
plot(exitShort, title="10周期高点(空头出场)", color=color.blue)//绘制空头出场信号线