La double moyenne mobile Golden Cross Quantitative Strategy est une stratégie de trading quantitative basée sur des indicateurs techniques. Elle détermine les tendances du marché en calculant deux moyennes mobiles de différentes périodes et permet un trading à faible risque. Lorsque la moyenne mobile à plus courte période dépasse la moyenne mobile à plus longue période, un signal de croix dorée est généré pour aller long. Lorsque la moyenne mobile plus courte dépasse celle plus longue, un signal de croix de mort est généré pour aller court.
La stratégie quantitative de la moyenne mobile à double croix dorée est basée sur la théorie de la moyenne mobile. Les moyennes mobiles peuvent filtrer efficacement le bruit du marché et indiquer les directions de tendance à long terme. Lorsque la moyenne mobile à courte période dépasse la moyenne mobile à plus longue période, elle indique un renversement à la hausse du marché et est un signal d'achat. Lorsque la moyenne mobile plus courte dépasse la moyenne mobile plus longue, elle indique un renversement à la baisse et est un signal de vente. Cette stratégie définit deux groupes de moyennes mobiles - la première est la moyenne mobile à 2 et 3 jours, et la seconde est la moyenne mobile à 420 jours.
La logique clé du code de stratégie est la suivante:
Les principes spécifiques sont les suivants:
Il capte les opportunités d'inversion de tendance après des ajustements à court terme en déterminant les points tournants avec des croisements doubles de la moyenne mobile et en définissant des filtres de paramètres pour éviter les transactions erronées.
La stratégie quantitative à double moyenne mobile Golden Cross présente les avantages suivants:
La stratégie quantitative de la double moyenne mobile Golden Cross comporte également les risques suivants:
Les méthodes suivantes peuvent être utilisées pour réduire les risques:
La stratégie quantitative de la double moyenne mobile de la croix d'or peut également être optimisée dans les aspects suivants:
Optimisation des paramètresLes algorithmes génétiques peuvent aider à l'optimisation.
Sélection du moment: choisir les paramètres de moyenne mobile les plus appropriés en fonction des différentes caractéristiques du produit.
Optimisation de la stratégie de stop loss: Mettre en place des arrêts dynamiques, des arrêts de retard, etc. pour éviter les arrêts de recul.
Optimisation des échanges directionnels: Incorporer des indicateurs de tendance et adopter des opérations de suivi de tendance pour éviter les opérations de contre-tendance.
Combinaison d'apprentissage automatique: Utiliser LSTM, RNN et autres modèles d'apprentissage en profondeur pour aider à juger de la qualité du signal et à déterminer le moment de l'entrée.
La stratégie quantitative de la moyenne mobile double croix d'or détermine les tendances des prix à court terme grâce au principe simple des croisements de moyenne mobile. La définition des indicateurs de canal filtre efficacement les faux signaux. La stratégie a une logique simple et est facile à mettre en œuvre. Des ajustements de paramètres flexibles sont possibles avec des performances relativement bonnes validées dans le trading en direct.
/*backtest start: 2023-12-24 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Indicator420 by SeaSide420 strategy("Indicator420 strategy", overlay=true) q=input(title="HullMA",defval=420) z=input(title="HullMA cross",defval=3) a=input(title="VWMA",defval=14) rvwma=vwma(close,round(a)) rvwma2=vwma(close,round(a*2)) rvwma3=vwma(close,round(a*3)) n2ma=2*wma(close,round(z/2)) nma=wma(close,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(close[1],round(z/2)) nma1=wma(close[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(close[2],round(q/2)) nma2=wma(close[2],q) diff2=n2ma2-nma2 sqn2=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) b=n1>n2?red:lime c=n1>n2?green:red d=n3>rvwma3?red:green e=rvwma2>rvwma3?green:red f=n1>n2?red:green //plot(rvwma3, color=e, linewidth=1) plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1) plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = n1<n2 if (closelong) strategy.close("Long") closeshort = n1>n2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3 if (shortCondition) strategy.entry("Short",strategy.short)