L'idée de base de cette stratégie est d'utiliser la croix d'or et la croix de la mort des lignes moyennes mobiles rapides et lentes pour juger de la tendance du marché et mettre en œuvre un trading à faible risque.
Cette stratégie utilise la moyenne mobile exponentielle des prix. La moyenne mobile est un indicateur d'analyse de tendance qui facilite les données de prix pour juger des tendances des prix. La moyenne mobile rapide a un paramètre plus petit et peut répondre aux changements de prix plus rapidement; la moyenne mobile lente a un paramètre plus grand et répond aux changements de prix plus lentement. Lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, cela indique que le marché peut entrer dans un marché haussier et une position longue doit être établie; lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, cela indique que le marché peut entrer dans un marché baissier et une position courte doit être établie.
Plus précisément, cette stratégie définit deux moyennes mobiles exponentielles, avec des périodes de 21 et 55 pour la moyenne mobile rapide et lente respectivement. La stratégie détermine l'entrée et la sortie en fonction de la croix dorée et de la croix de la mort des deux lignes de moyenne mobile.
En outre, cette stratégie utilise également l'indicateur de volatilité ATR pour définir le stop loss et le take profit. ATR peut évaluer efficacement le degré de volatilité du marché. Le stop loss est défini à 1,5 fois la distance ATR du prix; le take profit est défini près de 1 fois la distance ATR du prix.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte également des risques:
Pour faire face aux risques susmentionnés, nous pouvons optimiser les aspects suivants:
Cette stratégie peut être encore optimisée dans les domaines suivants:
Utiliser des méthodes d'apprentissage automatique pour optimiser automatiquement les paramètres de moyenne mobile pour une meilleure adaptabilité.
Ajoutez des fondamentaux comme conditions de filtrage pour éviter de faire une position longue ou courte à l'aveuglette lorsque des nouvelles négatives importantes arrivent, telles que les décisions de la Fed sur les taux et les communiqués de données macro importantes.
Définir les limites supérieures et inférieures de la volatilité, mettre en pause les transactions lorsque l'ATR devient trop élevé ou trop bas pour éviter les pertes dans des environnements de marché extrêmes.
Incorporer les fondamentaux des actions tels que le ratio P/E et l'expansion du volume des transactions pour définir des plages de stop loss et de profit dynamiques.
Ajouter des mécanismes de dimensionnement des positions, réduire progressivement les positions lorsque le taux de profit atteint un niveau, suspendre les transactions pendant une période lorsque les pertes sont relativement importantes, etc.
La logique générale de cette stratégie est claire et simple, en utilisant des croisements doubles de moyennes mobiles pour déterminer les tendances du marché, une tendance typique de la stratégie suivante. Pendant ce temps, la stratégie contrôle également très bien les risques en utilisant l'indicateur ATR pour définir dynamiquement le stop loss et le profit. Avec une optimisation supplémentaire, la stratégie peut être améliorée en termes de contrôle du retrait et de conduite de tendance, conduisant ainsi à une performance d'investissement plus stable.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="No-Nonsense Strategy Template [WM]", overlay = true) price = close // // ATR stuff // atrLength = input(14, "ATR Length") slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP1") atr = atr(atrLength) // // Strategy under test. MA crossover // fastInput = input(21) slowInput = input(55) fast = ema(price, fastInput) slow = ema(price, slowInput) plot(fast, color = red) plot(slow, color = blue) goLong = crossover(fast, slow) goShort = crossunder(fast, slow) if (goLong) sl = price - atr * slMultiplier tp = price + atr * tpMultiplier strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop = sl, limit = tp) if (goShort) sl = price + atr * slMultiplier tp = price - atr * tpMultiplier strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop = sl, limit = tp)