
Aperçu
La stratégie de détention de position dynamique à double équilibre est une stratégie de négociation quantitative basée sur deux signaux de croisement de moyennes mobiles simples (SMA) de différentes périodes. La stratégie utilise les croisements de moyennes mobiles à court et à long terme pour juger de la tendance du marché et ajuste la direction de la position en fonction des signaux de croisement et de la dynamique du rapport entre les prix et la moyenne à long terme. La stratégie fonctionne sur un graphique solaire et permet d’ajuster la sensibilité et la vitesse de réponse de la stratégie de manière flexible en définissant différents paramètres de moyennes mobiles.
Principe de stratégie
- Calcul des moyennes mobiles: la stratégie utilise deux moyennes mobiles simples (SMA) les 9e et 21e jours.
- Le signal de transaction est généré:
- Signaux d’achat: la moyenne courte (SMA du 9e jour) est portée sur la moyenne longue (SMA du 21e jour)
- Signal de vente: la moyenne à court terme est inférieure à la moyenne à long terme
- Gestion des placements:
- Ouverture de position: ouverture d’une position multiple lors d’un signal d’achat; ouverture d’une position vide lors d’un signal de vente
- Les positions en cours et les positions à rebours:
a) Lorsque vous détenez une position sur plusieurs têtes, si le prix d’ouverture est inférieur à la moyenne à long terme ou s’il y a un signal de vente, éliminez la position sur plusieurs têtes et ouvrez une position vide
b) Lorsque vous détenez une position à tête blanche, si le prix d’ouverture est supérieur à la moyenne à long terme ou si un signal de vente apparaît, vous devez liquider votre tête blanche et ouvrir une position à tête blanche.
- Contrôle du risque: la stratégie ne met pas en place de stop-loss fixes, mais régule le risque en modifiant dynamiquement la direction de la position
Avantages stratégiques
- Suivi des tendances: capture des tendances du marché à l’aide d’une croix de moyenne ligne pour obtenir des gains significatifs dans les grandes tendances
- Maintien de position dynamique: Maintien de position ajusté de manière flexible en fonction de la relation entre le prix et la moyenne à long terme, améliorant la flexibilité et l’adaptabilité de la stratégie
- Simplicité: la logique de la stratégie est claire, facile à comprendre et à mettre en œuvre
- Paramètres réglables: adaptation à différents environnements de marché et variétés de transactions en ajustant la périodicité moyenne
- Le trading 24 heures sur 24: la stratégie peut fonctionner de manière continue dans différentes conditions de marché, sans être limitée par l’état du marché
- Automatisation de l’exécution: les stratégies peuvent être programmées pour automatiser complètement les transactions et réduire les interférences émotionnelles humaines
- Gestion des risques: évite les pertes de points de glissement que peuvent entraîner les arrêts fixes en ajustant dynamiquement la direction de la position
Risque stratégique
- Inconvénients des marchés de choc: dans les marchés de compilation horizontale ou de choc, la fréquence des transactions peut entraîner des pertes
- Rarité: les moyennes mobiles sont essentiellement des indicateurs en retard, et peuvent passer à côté des premières étapes d’une évolution rapide
- Risque de fausse rupture: les fluctuations de prix à court terme peuvent entraîner une fausse rupture de la ligne moyenne, provoquant de faux signaux de négociation
- Absence de stop loss: la stratégie n’a pas de stop loss fixe et peut faire face à des pertes plus importantes dans des situations extrêmes
- Sur-transaction: des ajustements de position fréquents peuvent entraîner des coûts de transaction plus élevés
- Sensitivité aux paramètres: les performances des stratégies sont sensibles à la sélection des paramètres de la moyenne, et des paramètres différents peuvent entraîner des résultats très différents.
- Limites d’un seul indicateur: le fait de se fier uniquement à une croisement homogène peut négliger d’autres informations importantes sur le marché
Orientation de l’optimisation de la stratégie
- L’introduction d’indicateurs supplémentaires: combinés avec des indicateurs tels que le RSI, le MACD, pour améliorer la fiabilité du signal
- Optimiser le timing de l’entrée: augmenter les conditions de filtrage telles que le volume de transactions, les fluctuations, et réduire les fausses percées
- Adhésion à un mécanisme de stop-loss: définir un stop-loss fixe ou un stop-loss suivi, contrôler le risque d’une seule transaction
- Adaptation de la taille des positions: adaptation de la taille des positions en fonction de la dynamique de la volatilité du marché, optimisation de la gestion des fonds
- Augmentation du jugement sur l’état du marché: identifier les tendances et les mouvements du marché et adopter des stratégies différentes dans différents états du marché
- Sélection des paramètres d’optimisation: recherche de la combinaison optimale de paramètres de ligne moyenne à l’aide du repérage des données historiques
- Ajout d’un filtre de force de tendance: introduction d’indicateurs tels que l’ADX, pour la négociation uniquement dans les marchés à forte tendance
- Réalisation de paramètres d’adaptation: ajustement automatique du cycle de la moyenne en fonction de la volatilité du marché pour améliorer l’adaptabilité de la stratégie
Résumer
La stratégie de détention de position dynamique en croisement de deux lignes est une méthode classique et pratique de négociation quantitative pour saisir les tendances du marché en capturant les signaux de croisement de deux lignes et en ajustant dynamiquement la direction de la position. La stratégie est simple et facile à comprendre, entièrement automatisée, avec une meilleure capacité de suivi des tendances et de la flexibilité. Cependant, la stratégie présente également des risques potentiels tels que la mauvaise performance du marché en période de choc, le retard du signal.
Code source de la stratégie
/*backtest
start: 2024-06-29 00:00:00
end: 2024-07-29 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="MA Cross Backtest", overlay=true, default_qty_type=strategy.cash, default_qty_value=10)
// Parâmetros das Médias Móveis
shortlen = input.int(9, "Short MA Length", minval=1)
longlen = input.int(21, "Long MA Length", minval=1)
// Cálculo das Médias Móveis
short = ta.sma(close, shortlen)
long = ta.sma(close, longlen)
// Plotagem das Médias Móveis
plot(short, color=color.orange, title="Short MA")
plot(long, color=color.green, title="Long MA")
// Sinal de Compra baseado no cruzamento das médias móveis
buySignal = ta.crossover(short, long)
// Sinal de Venda (Short) baseado no cruzamento das médias móveis
sellSignal = ta.crossunder(short, long)
// Plotagem dos Sinais de Compra e Venda
plotshape(series=buySignal, location=location.belowbar, color=color.blue, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")
// Condições para alertas
alertcondition(buySignal, title="Buy Signal", message="MA Cross Buy Signal")
alertcondition(sellSignal, title="Sell Signal", message="MA Cross Sell Signal")
// Lógica da Estratégia de Backtest
if (buySignal)
// Se não há posição aberta ou se a posição atual é curta, feche a posição curta antes de abrir uma nova posição longa
if (strategy.position_size < 0)
strategy.close("Short", comment="Closing Short Position before Long Entry")
strategy.entry("Long", strategy.long)
// Alerta de compra
alert("MA Cross Buy Signal", alert.freq_once_per_bar_close)
if (strategy.position_size > 0)
// Se o preço abrir abaixo da média longa
if (open < long)
strategy.close("Long", comment="Price Opened Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Price Opened Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
// Se a média móvel curta cruzar abaixo da média móvel longa
else if (sellSignal)
strategy.close("Long", comment="Short MA Crossed Below Long MA")
strategy.entry("Short", strategy.short, comment="Switched to Short")
// Alerta de venda
alert("Short MA Crossed Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
if (strategy.position_size < 0)
// Se o preço abrir acima da média longa
if (open > long)
strategy.close("Short", comment="Price Opened Above Long MA")
strategy.entry("Long", strategy.long, comment="Switched to Long")
// Alerta de compra
alert("Price Opened Above Long MA - Switched to Long", alert.freq_once_per_bar_close)