
La stratégie de résonance de tendance du double MACD est un système de trading quantitatif orienté analyse technique qui combine les signaux de déviation des indicateurs MACD rapides et lents avec un filtre de rapprochement de la moyenne mobile simple à 28 cycles (SMA28) pour capturer les retournements de tendance potentiels. La stratégie crée un système de trading plus fiable en exigeant que les signaux de déviation du MACD de deux périodes de temps se produisent simultanément, et en combinant les conditions selon lesquelles le prix doit être proche de la SMA28. La stratégie est conçue pour identifier automatiquement les opportunités de trading bidirectionnel polyvalent et gérer les sorties de trading par un rapport de retour sur risque prédéterminé, particulièrement adapté aux transactions sur des périodes de 15 minutes.
Le principe de base de cette stratégie est basé sur la confirmation simultanée de plusieurs indicateurs techniques, à savoir:
Double MACD dévié de la détection du signal:
Le SMA28 est proche de la rupture:
Logique de confirmation par résonance:
Le mécanisme de gestion des risques:
Une analyse approfondie du code de la stratégie permet de résumer les avantages notables suivants:
Mécanisme de confirmation multiple: le fait d’exiger que deux MACD avec des paramètres différents apparaissent simultanément réduit considérablement la probabilité de faux signaux et améliore la qualité des transactions.
Conception du filtre régional: En exigeant que les prix soient situés à proximité de SMA28, on assure que les transactions se déroulent dans des endroits techniquement significatifs et on évite de négocier dans des zones non significatives.
Transfert automatique dans les deux sensLes stratégies permettent d’identifier et d’exécuter automatiquement des transactions bidirectionnelles multi-zones, de s’adapter à différents environnements de marché et de saisir pleinement les opportunités dans différentes directions.
Gestion des risques par défaut: Ratio de risque/rendement fixe intégré ((1:1.5)), paramètre automatiquement les points de stop et de stop loss pour chaque transaction, garantissant la régularité et la cohérence de la gestion des fonds.
Signaux de négociation visualisés: les signaux de négociation, les points d’arrêt et de perte sont affichés de manière intuitive sur le graphique grâce aux fonctions plotshape et plot, ce qui permet aux traders de surveiller et de comprendre la mise en œuvre de la stratégie.
Intégration des fonctionnalités d’alerte: paramètres d’alarme intégrés pour faciliter l’intégration avec un robot de trading automatique, pour une exécution de transactions entièrement automatisée, réduisant l’intervention humaine et l’influence émotionnelle.
Optimisation des paramètresLes paramètres de la stratégie (par exemple, les cycles MACD, les cycles SMA, la dépréciation de proximité, le ratio de retour sur risque, etc.) peuvent être ajustés et optimisés en fonction des conditions spécifiques du marché.
Malgré la bonne conception de la stratégie, les risques et les défis potentiels sont les suivants:
Risques liés à la survente: Dans les marchés très volatils mais sans direction claire, les déviations du signal du double MACD peuvent être fréquentes, entraînant une sur-trading et une érosion des commissions. La solution consiste à ajouter des conditions de filtrage supplémentaires, telles que des indicateurs de force de tendance ou des restrictions de fréquence de négociation.
Risque de stop-loss fixe: L’utilisation d’un stop-loss à pourcentage fixe peut ne pas être suffisante pour protéger les fonds pendant les périodes de forte volatilité. L’utilisation d’un stop-loss dynamique basé sur la volatilité (comme le multiplicateur d’ATR) peut être envisagée pour rendre le point de stop-loss plus adapté à l’environnement actuel du marché.
Fausse déviationIl est recommandé d’ajouter des indicateurs de confirmation, tels que le RSI ou l’indicateur de volume de transaction, pour vérifier davantage l’efficacité du signal.
Dépendance des paramètresLa performance de la stratégie dépend fortement des paramètres choisis et peut nécessiter des ajustements fréquents pour s’adapter à différents environnements de marché. La solution consiste à effectuer des tests d’optimisation de paramètres complets pour trouver des combinaisons de paramètres plus robustes.
Limite de proximité de la SMA: Dans un environnement de rupture rapide ou de chute brutale, le prix peut s’écarter rapidement du SMA28, ce qui entraîne la perte d’importantes opportunités de négociation. L’ajout d’une logique de reconnaissance de tendance peut être envisagé, l’assouplissement des exigences de proximité lors de la confirmation d’un changement de tendance.
Risque de récurrence des pertes: Dans certaines conditions de marché, la stratégie peut générer une série de transactions perdantes successives. Des mécanismes de contrôle des risques globaux doivent être mis en œuvre, tels que des limites de perte maximale par jour ou des contrôles de risque pour les pourcentages de fonds.
Sur la base d’une analyse approfondie du code, voici quelques pistes d’optimisation possibles:
Amélioration de la gestion dynamique des risques:
Amélioration de la qualité du signal:
Optimisation du timing de trading:
Analyse de plusieurs périodes:
Le renforcement de l’apprentissage automatique:
Améliorations de la détection et de la vérification:
La stratégie de résonance de la tendance du double MACD est un système de négociation quantifié et sophistiqué qui offre une méthode structurée de recherche de points de retournement de tendance potentiels en intégrant la confirmation de plusieurs indicateurs techniques. Le principal avantage de la stratégie réside dans son mécanisme de confirmation multiple et son système de gestion des risques intégré, particulièrement adapté aux transactions sur une période de 15 minutes.
La stratégie a le potentiel d’être un système de négociation plus robuste et plus adaptable en optimisant davantage la qualité du signal, la gestion des risques et la sélection des opportunités. En particulier, l’introduction de mécanismes de gestion des risques dynamiques et d’analyses sur plusieurs délais peut considérablement améliorer la performance globale de la stratégie. Pour les traders quantifiés qui recherchent une solution de négociation automatisée alimentée par l’analyse technique, cela fournit un cadre de base solide qui peut être personnalisé et étendu en fonction des préférences de risque individuelles et des conditions du marché.
/*backtest
start: 2024-04-26 00:00:00
end: 2025-04-25 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("BTC 雙MACD 背離策略(基礎共振 / 適用15分鐘 / 多空自動)", overlay=true, default_qty_type=strategy.fixed, default_qty_value=100)
// === 均線(SMA28) ===
sma28 = ta.sma(close, 28)
sma_touch = math.abs(close - sma28) / sma28 < 0.015
// === MACD 計算(慢速) ===
[macdSlow, signalSlow, _] = ta.macd(close, 14, 28, 9)
histSlow = macdSlow - signalSlow
bullish_div_slow = ta.lowest(low, 5) < ta.lowest(low[10], 5) and histSlow > histSlow[1]
bearish_div_slow = ta.highest(high, 5) > ta.highest(high[10], 5) and histSlow < histSlow[1]
// === MACD 計算(快速) ===
[macdFast, signalFast, _] = ta.macd(close, 10, 21, 7)
histFast = macdFast - signalFast
bullish_div_fast = ta.lowest(low, 5) < ta.lowest(low[10], 5) and histFast > histFast[1]
bearish_div_fast = ta.highest(high, 5) > ta.highest(high[10], 5) and histFast < histFast[1]
// === 基礎共振條件 ===
superLong = bullish_div_slow and bullish_div_fast and sma_touch
superShort = bearish_div_slow and bearish_div_fast and sma_touch
longEntry = superLong
shortEntry = superShort
// === 可調式風報比(改為 1:1.5) ===
risk = 0.01
reward = 0.015
long_tp = close * (1 + reward)
long_sl = close * (1 - risk)
short_tp = close * (1 - reward)
short_sl = close * (1 + risk)
if longEntry
strategy.entry("做多進場", strategy.long)
strategy.exit("做多出場", from_entry="做多進場", limit=long_tp, stop=long_sl)
if shortEntry
strategy.entry("做空進場", strategy.short)
strategy.exit("做空出場", from_entry="做空進場", limit=short_tp, stop=short_sl)
plotshape(superLong, title="共振多", location=location.belowbar, color=color.green, style=shape.labelup, size=size.tiny)
plotshape(superShort, title="共振空", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.tiny)
plot(longEntry ? long_tp : na, title="多TP", color=color.green, linewidth=1)
plot(longEntry ? long_sl : na, title="多SL", color=color.red, linewidth=1)
plot(shortEntry ? short_tp : na, title="空TP", color=color.green, linewidth=1)
plot(shortEntry ? short_sl : na, title="空SL", color=color.red, linewidth=1)
// === Alert 設定 ===
alertcondition(longEntry, title="多單共振進場", message="LONG_ENTRY")
alertcondition(shortEntry, title="空單共振進場", message="SHORT_ENTRY")