La double moyenne mobile et la stratégie de négociation combinée MACD est une stratégie de négociation quantitative qui utilise à la fois des moyennes mobiles et des indicateurs de dynamique pour la génération et la validation des signaux commerciaux.
Cette stratégie utilise une combinaison de la moyenne mobile simple (SMA) de 20 périodes et de la moyenne mobile exponentielle de 5 périodes (EMA). La SMA de 20 périodes peut lisser efficacement les fluctuations du marché et déterminer les tendances des prix à moyen et long terme, tandis que l'EMA de 5 périodes attribue des poids plus élevés aux prix récents et réagit de manière sensible aux changements de prix à court terme. Des signaux d'achat sont générés lorsque le prix franchit la ligne de 5 périodes alors qu'il est au-dessus de la ligne de 20 périodes, et des signaux de vente sont générés lorsque le prix franchit la ligne de 5 périodes alors qu'il est en dessous de la ligne de 20 périodes. Une telle combinaison de moyenne mobile double garantit que les signaux de trading suivent les tendances majeures tout en améliorant la sensibilité et le timing des signaux grâce à l'introduction de moyennes mobiles à court terme.
Après la génération des signaux commerciaux, l'indicateur MACD est introduit pour valider la tendance. Plus précisément, lorsque les signaux d'achat sont déclenchés, la ligne MACD DIFF doit voir une "croix dorée" avec la ligne DEA qui est maintenue pendant plusieurs périodes pour confirmer une tendance à la hausse; inversement, lorsque les signaux de vente sont déclenchés, une "croix morte" suivie d'une tendance à la baisse pendant plusieurs périodes doit être observée. Cela filtre les transactions bruyantes et évite d'ouvrir fréquemment des positions pendant les consolidations du marché.
Enfin, des niveaux de stop-loss raisonnables sont définis pour les positions longues et courtes. La ligne de stop-loss longue est définie en dessous du point le plus bas depuis l'entrée, tandis que la ligne de stop-loss court est définie au-dessus du point le plus élevé depuis l'entrée. Les niveaux de stop-loss sont mis à jour dynamiquement avec les fluctuations de prix.
Les paramètres MACD peuvent être ajustés pour une meilleure coopération. En outre, les paramètres de la moyenne mobile de la période doivent être optimisés par caractéristique du produit. Enfin, la plage de stop loss peut être assouplie raisonnablement pour permettre la libération complète des bénéfices pour les mouvements directionnels majeurs.
Des optimisations supplémentaires peuvent être poursuivies dans les directions suivantes pour cette stratégie:
Introduire des algorithmes adaptatifs de moyennes mobiles. Les combinaisons de moyennes mobiles à période dynamique s'adaptent automatiquement aux marchés sans avoir besoin de réglage manuel des paramètres.
Incorporer des modèles d'apprentissage automatique. Des algorithmes tels que l'apprentissage profond peuvent identifier automatiquement les caractéristiques du marché de différents produits et produire des paramètres optimaux en temps réel.
Ajouter des filtres supplémentaires. D'autres indicateurs techniques peuvent être introduits en plus des signaux actuels comme normes de jugement auxiliaires, comme l'intégration de facteurs de volume.
Optimiser les stratégies de stop loss. Des techniques de stop loss plus intelligentes telles que le stop loss de rupture et le stop loss de suivi devraient être recherchées, afin d'obtenir une plus grande récompense tout en contrôlant le risque.
La double moyenne mobile et la stratégie de combinaison MACD considèrent de manière exhaustive des aspects tels que la tendance, l'élan, le contrôle des risques au-delà des limitations d'indicateurs techniques uniques, et peuvent améliorer efficacement la stabilité du trading quantitatif.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true) // Inputs length = 20 mult = 1.5 src = close riskRewardRatio = input(3.0, title="Risk-Reward Ratio") // Calculating Bollinger Bands basis = ta.ema(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting Bollinger Bands plot(upper, "Upper Band", color=color.red) plot(lower, "Lower Band", color=color.green) // Tracking Two Candles Ago Crossing Bollinger Bands var float twoCandlesAgoUpperCrossLow = na var float twoCandlesAgoLowerCrossHigh = na if (close[2] > upper[2]) twoCandlesAgoUpperCrossLow := low[2] if (close[2] < lower[2]) twoCandlesAgoLowerCrossHigh := high[2] // Entry Conditions longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh) shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow) // Plotting Entry Points plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Execution if (longCondition) stopLoss = low - (high - low) * 0.05 takeProfit = close + (close - stopLoss) * riskRewardRatio strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit) if (shortCondition) stopLoss = high + (high - low) * 0.05 takeProfit = close - (stopLoss - close) * riskRewardRatio strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)