
L’optimiseur de stratégie de croisement d’une moyenne mobile à deux indices est une stratégie quantitative qui permet de négocier sur la base de signaux de croisement de deux moyennes mobiles à deux indices de différentes périodes. La stratégie utilise la relation croisée entre les EMA rapides et les EMA lents pour déterminer la direction de la tendance du marché et exécuter des transactions bidirectionnelles multichannelles lorsque des conditions spécifiques sont remplies.
Les principes centraux de la stratégie sont basés sur la théorie classique de la transversalité dans l’analyse technique et comprennent principalement les éléments clés suivants:
Double EMA croisée: la stratégie utilise deux moyennes mobiles indicielles de différentes périodes ((EMA), respectivement une EMA rapide avec un paramètre par défaut de 6 et une EMA lente avec un paramètre par défaut de 16. Lorsque l’EMA rapide traverse l’EMA lente par le bas, un signal de multiplication est généré; lorsque l’EMA rapide traverse l’EMA lente par le haut, un signal de blanchiment est généré
Filtrage de direction: la stratégie permet à l’utilisateur de choisir la direction de la transaction en entrant des paramètres ((multi-têtes, blancs ou bidirectionnels), ce qui augmente la flexibilité de la stratégie.longOKetshortOKLe contrôle des variables permet d’effectuer des transactions dans le sens correspondant.
Confirmation de la forme de la ligne K: la stratégie introduit un mécanisme de confirmation de prix supplémentaire, exigeant que le prix de clôture de la ligne K actuel soit supérieur au prix d’ouverture lorsque plusieurs signaux apparaissent (ligne du soleil); lorsque le signal de fermeture de la ligne K actuel est inférieur au prix d’ouverture (ligne du soleil). Cette conception filtre efficacement certains faux signaux.
Mécanisme de stop-loss: la stratégie définit respectivement le pourcentage de stop-loss pour les lots et les lots vides (default de 4%), et se termine automatiquement lorsque le prix atteint l’objectif de profit prédéfini, bloquant les bénéfices.
La stratégie déclenche une opération de placement pour contrôler efficacement l’expansion des pertes.
Une analyse approfondie du code de la stratégie peut être résumée comme suit:
Flexibilité des paramètres: les stratégies permettent aux utilisateurs de personnaliser les cycles des EMA rapides et lents, l’orientation des transactions et le pourcentage de stop-loss, ce qui permet aux stratégies de s’adapter à différents environnements de marché et aux préférences de risque personnelles.
Mécanisme de double confirmation: la stratégie ne repose pas uniquement sur les signaux croisés EMA, mais combine également la forme de ligne K ((câble / faisceau) comme confirmation supplémentaire, ce qui améliore la fiabilité du signal et réduit les pertes dues aux fausses percées.
Le trading omni-directional: le trading bidirectional multi-channel permet de saisir des opportunités dans différentes tendances du marché, et pas seulement dans une seule direction.
Optimisation des stop-loss: grâce à un ratio de stop-loss prédéfini, la stratégie est capable de verrouiller automatiquement les bénéfices lorsque le prix atteint l’objectif attendu, évitant ainsi les retours de bénéfices déjà réalisés en raison d’un renversement du marché.
Marge de reprise: lorsque la tendance du marché est susceptible d’être inversée (cross-over inverse), la stratégie se termine en temps opportun pour contrôler efficacement le risque.
Efficacité du calcul: stratégies utilisant des intégrationsta.ema、ta.crossoveretta.crossunderLes signaux de calcul fonctionnels sont efficaces et faciles à exécuter en temps réel.
Prise en charge visuelle: les stratégies affichent les lignes EMA rapides et lentes sur le graphique, ainsi que les niveaux d’arrêt, pour permettre aux utilisateurs de comprendre intuitivement la mise en œuvre de la stratégie.
Malgré la bonne conception de cette stratégie, les risques potentiels sont les suivants:
L’EMA est essentiellement un indicateur de retard, qui peut générer des signaux de retard dans des marchés en évolution rapide, ce qui entraîne de mauvaises heures d’entrée et de sortie.
Risque de choc: les signaux de croisement EMA sont fréquents mais peu durables dans les zones de choc, ce qui peut entraîner des transactions fréquentes et des pertes continues.
Manque de mécanisme de stop-loss: La stratégie actuelle ne met en place que des stop-loss, sans mécanisme de stop-loss explicite, et peut faire face à des pertes plus importantes dans des conditions de marché extrêmes.
Restriction de confirmation de la ligne K: la nécessité de confirmer la forme de la ligne K peut entraîner la perte de certains signaux valides, en particulier lors de changements rapides de tendance.
Risque de taux de stop-loss fixe: le taux de stop-loss fixe prédéfini peut ne pas convenir à tous les environnements de marché, et dans les marchés à forte tendance, il est possible de réaliser des gains prématurés et de perdre des gains plus importants.
Manque de mécanisme d’adaptation à la volatilité: la stratégie n’a pas la fonction d’ajuster les paramètres en fonction de la dynamique de la volatilité du marché et peut mal fonctionner dans des environnements à forte ou faible volatilité.
Les stratégies d’optimisation pour ces risques peuvent s’orienter dans les directions suivantes:
L’introduction de paramètres d’adaptation: les paramètres EMA peuvent être ajustés dynamiquement en fonction de l’ATR ou de la volatilité historique, afin que la stratégie puisse mieux s’adapter aux différents environnements de volatilité du marché. La raison en est que les paramètres fixes ont une plus grande variation de performance dans les différents marchés de volatilité.
Augmentation des mécanismes de stop loss: introduction de mécanismes de stop loss basés sur l’ATR ou des pourcentages fixes, qui compensent automatiquement les positions lorsque les prix sont très défavorables, afin de contrôler efficacement les pertes de transactions uniques.
Ajout d’un filtre de tendance: vous pouvez ajouter des indicateurs de jugement de tendance à plus long terme (comme l’EMA de 50 jours), exécuter des transactions uniquement dans la direction de la tendance principale et éviter de négocier fréquemment dans des marchés instables.
Optimisation de l’heure d’entrée: il peut être combiné avec d’autres indicateurs techniques tels que le RSI, le MACD comme confirmation auxiliaire, pour améliorer la qualité du signal.
Stop-loss dynamique: un stop-loss dynamique basé sur la volatilité du marché peut être réalisé, ou un stop-loss mobile (stop-loss tracking) peut être utilisé, permettant une augmentation des bénéfices tout en protégeant les bénéfices.
Ajout d’un filtre de volume de transaction: le facteur volume de transaction est pris en compte lors de la génération du signal et les transactions ne sont exécutées que si le volume de transaction est supporté, ce qui améliore la fiabilité du signal.
Filtrage temporel: ajouter des fenêtres de temps de négociation afin d’éviter de négocier à des périodes de faible volatilité ou d’irrégularité.
Optimisation de la gestion des fonds: introduction d’un mécanisme de gestion de position dynamique qui permet d’ajuster le pourcentage de fonds pour chaque transaction en fonction de la force du signal, de la volatilité du marché et du taux de victoire historique.
L’optimiseur de stratégie de croisement d’une moyenne mobile binaire est un système de négociation quantifiée conçu de manière rationnelle, qui réalise des fonctions de négociation bidirectionnelles multichannelles grâce à des relations croisées d’EMA rapides et lents, combinées à des mécanismes de confirmation et de freinage de la forme de la ligne K. L’avantage de la stratégie réside dans la flexibilité des paramètres, le mécanisme de double confirmation et la capacité de négociation complète, mais il existe également des problèmes tels que le retard de la ligne de parité, le risque de choc du marché et le manque de mécanismes de freinage.
L’introduction de paramètres d’adaptation, l’augmentation des mécanismes de stop-loss, l’ajout de filtres de tendance et l’optimisation de la gestion des fonds peuvent considérablement améliorer la stabilité et la rentabilité de la stratégie. En particulier, l’ajustement des paramètres dynamiques combiné avec le mécanisme de gestion des risques peut permettre à la stratégie de maintenir une performance relativement stable dans différents environnements de marché.
Pour les traders, il est recommandé de combiner l’analyse macro-marché avec le choix d’un environnement de marché clairement tendanciel, tout en effectuant un suivi historique adéquat et une optimisation des paramètres afin de trouver la meilleure combinaison de paramètres pour une variété de transactions particulière. En outre, la surveillance continue de la performance de la stratégie et l’ajustement des paramètres en temps opportun en fonction des changements du marché sont essentiels pour maintenir l’efficacité à long terme de la stratégie.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// This strategy has been created for illustration purposes only and should not be relied upon as a basis for buying, selling, or holding any asset or security.
// © kirilov
//@version=6
strategy(
"gosho bot Strategy",
overlay=true,
calc_on_every_tick=true,
currency=currency.USD
)
// INPUT:
// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title="Fast EMA", defval=6, minval=1, maxval=9999)
emaSlow = input.int(title="Slow EMA", defval=16, minval=1, maxval=9999)
// Option to select trade directions
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
// CALCULATIONS:
// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
// PLOT:
// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.orange, linewidth=2)
plot(series=slowEMA, color=color.blue, linewidth=2)
percentageDiff = (fastEMA - slowEMA) / slowEMA * 100
// Translate input into trading conditions
longOK = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")
// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
profit_long = input.float(4, "Profit_long %", minval=0.0, step=0.1) * 0.01
profit_short = input.float(4, "Profit_short %", minval=0.0, step=0.1) * 0.01
short_stop_profit = strategy.position_avg_price * (1 - profit_short)
long_stop_profit = strategy.position_avg_price * (1 + profit_long)
// ORDERS:
// Submit entry (or reverse) orders
if (longCondition and close > open )
strategy.entry(" Long ", strategy.long)
if (shortCondition and close < open )
strategy.entry(" Short ", strategy.short)
// Submit exit orders in the cases where we trade only long or only short
if (strategy.position_size > 0 and shortCondition )
strategy.exit(id="exit long", stop=close)
if (strategy.position_size < 0 and longCondition )
strategy.exit(id="exit short", stop=close)
plot(short_stop_profit)