
Cette stratégie, qui consiste à calculer un croisement d’une moyenne mobile à court terme et d’une moyenne mobile à long terme pour déterminer le moment de l’entrée et de la sortie d’une position, est une stratégie typique de suivi de la tendance. Elle s’applique aux marchés qui ont une tendance à la hausse évidente et qui peuvent être suivis en douceur et augmenter leur multiplication dans une tendance à la hausse, en arrêtant les pertes en temps opportun lors d’une inversion de tendance.
La stratégie consiste principalement à calculer des moyennes mobiles à court terme et à long terme et à observer leur intersection pour déterminer la tendance du marché. La logique est la suivante:
Calculer une moyenne mobile simple de 3 jours short_ma comme moyenne mobile à court terme
Calculer la moyenne mobile simple de 19 jours long_ma comme moyenne mobile à long terme
Lorsque les moyennes mobiles à court terme sont surchargées par les moyennes mobiles à long terme, les signaux de multiplication sont émis et les positions longues sont prises.
Quand la hausse des prix dépasse le prix d’entrée*Le taux de couverture est de 1 + Stop Loss %, et la position est levée.
Lorsque la moyenne mobile à court terme est inférieure à la moyenne mobile à long terme, un signal de vide est émis et la position est vide.
Limiter la durée de fonctionnement de la stratégie en effectuant des retouches sur une période donnée
En calculant une moyenne mobile simple de 100 jours comme indicateur de la tendance majeure, les transactions ne sont effectuées que lorsque la tendance majeure est à la hausse.
Cette stratégie exploite pleinement le principe de la croix d’or des moyennes mobiles. En cas de tendance à la hausse continue de l’indice, l’entrée en position sur les moyennes mobiles à court terme, en traversant les moyennes mobiles à long terme, permet de capturer efficacement les opportunités de la tendance. En traversant les moyennes mobiles à long terme, en sortant des positions sur les moyennes mobiles à court terme et en entrant dans des positions vides, il est possible de contrôler efficacement les risques.
Cette stratégie présente les avantages suivants:
Les stratégies sont claires et faciles à comprendre, et la direction des tendances peut être déduite par la croix des moyennes mobiles.
Les règles d’admission sont simples et efficaces, permettant de contrôler efficacement les risques.
Le stop loss est un paramètre qui permet de bloquer les gains et d’arrêter les pertes en cas de revers.
Les traders qui ne négocient que pendant les grandes tendances à la hausse peuvent filtrer les faux signaux de la plupart des périodes de choc.
Les paramètres de la moyenne mobile peuvent être personnalisés pour s’adapter aux caractéristiques des différents marchés.
La période de récupération peut être réglée et la validation peut être effectuée sur une période donnée.
Cette stratégie comporte aussi des risques:
Les stratégies de moyennes mobiles sont sensibles aux paramètres et les paramètres peuvent avoir des conséquences sur la performance de la stratégie.
Les données historiques ne permettent pas de traiter les anomalies.
L’incapacité à gérer efficacement les hausses de prix peut entraîner des pertes supérieures au seuil de rupture.
Il est susceptible d’être piégé lors d’une secousse, il faut mettre en place des points d’arrêt raisonnables.
Il ne s’applique qu’à des conditions de marché où la tendance est évidente, et n’est pas adapté pour les marchés à oscillation horizontale.
Le choix de la plage de temps de détection influe sur les résultats de la validation de la stratégie.
Cette stratégie peut être optimisée dans les domaines suivants:
Essayez différentes combinaisons de paramètres pour trouver le meilleur, comme le nombre de cycles de la moyenne mobile.
L’ajout d’autres indicateurs techniques pour un jugement global, tels que MACD, Bollinger Bands, etc., améliore l’efficacité de la prise de décision.
La mise en place d’un stop-loss de suivi dynamique permet de mieux contrôler les risques.
Optimisation de l’entrée, logique d’arrêt des pertes, comme la prise en compte de la rupture du point d’entrée de la période préliminaire.
Test des données sur différents environnements de marché pour évaluer la stabilité de la stratégie.
Considérer l’intégration de modèles tels que l’apprentissage automatique pour l’optimisation des paramètres ou le jugement des signaux.
L’augmentation de la gestion des cas exceptionnels de sauts de prix et de dommages à la couverture.
Cette stratégie utilise un principe simple et efficace de croisement des moyennes mobiles pour capturer les tendances à la hausse, définir des points d’arrêt pour contrôler les risques et obtenir de meilleurs rendements dans les marchés où la tendance est évidente. Cependant, la stratégie présente certaines limites.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ta3MooChi
//@version=5
strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100)
short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1))
long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1))
trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평"))
up_trend = (trend_ma > trend_ma[1])
use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" )
inTrendMa = not use_trend_ma or up_trend
useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트")
backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트")
backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트")
inTradeWindow = true
longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01
longcondition = ta.crossover(short_ma, long_ma)
shortcondition = ta.crossunder(short_ma, long_ma)
if (longcondition) and inTradeWindow and inTrendMa
strategy.entry("long", strategy.long)
if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow
strategy.close_all()
if not inTradeWindow and inTradeWindow[1]
strategy.cancel_all()
strategy.close_all(comment = "매매 종료")
plot(short_ma,color = color.yellow)
plot(long_ma,color = color.blue)
plot(trend_ma,color = color.gray)