Cette stratégie utilise une combinaison de deux moyennes mobiles exponentielles (EMA) et d'indicateurs de croisement de moyenne mobile (MACD) pour identifier les stocks surévalués à court terme et prendre des positions courtes pour tirer profit des baisses de prix.
Calculer l'EMA à 8 jours et l'EMA à 26 jours Lorsque l'EMA à 8 jours dépasse l'EMA à 26 jours, il est considéré comme un signal d'achat.
Calculer le MACD avec l'EMA de 12 jours, l'EMA de 26 jours et l'EMA de 9 jours de la différence appelée DEA. Lorsque le MACD dépasse DEA, il est considéré comme un signal d'achat.
Règle d'entrée: EMA à 8 jours > EMA à 26 jours et MACD se croisent au-dessus de la DEA, longue lorsque les deux conditions sont remplies.
Règle de sortie: définir un stop-loss à 3% du prix d'entrée, un stop-loss à 1% du prix d'entrée, sortir lorsque l'un ou l'autre est touché.
L'EMA rapide reflète la correction de la valeur intrinsèque à court terme par rapport à l'EMA plus lente, tandis que le MACD reflète les changements de puissance de négociation anticipant la direction des moyennes mobiles, améliorant la précision de la capture des opportunités de négociation à l'aide d'indicateurs doubles.
La combinaison de l'EMA et du MACD améliore la précision de la capture des signaux de trading.
L'arrêt de retard de 1% mis après l'entrée évite l'élargissement de la perte.
La stratégie est testée sur l'ensemble du marché baissier en 2022, simulant des environnements de négociation réels.
Les paramètres sont flexibles, le ratio de stop loss et le ratio de dimensionnement de position sont personnalisables selon les préférences personnelles.
Les transactions fréquentes nécessitent un suivi attentif. Le délai de 5 minutes signifie une fréquence élevée d'entrées et de sorties, nécessitant un temps suffisant pour suivre les transactions.
Un stop-loss trop serré peut entraîner une sortie prématurée.
Les performances sont faibles sur les marchés à tendance, l'EMA et le MACD fonctionnent mieux sur les marchés à tendance.
Les coûts de négociation doivent être pris en considération.
Ajustez les paramètres de la période EMA pour optimiser les entrées et les sorties. Pouvez tester en raccourcissant la période EMA rapide, en augmentant l'écart entre les EMA pour trouver des combinaisons optimales.
Optimiser le ratio de stop loss pour réduire le risque de stop prématuré.
Testez différentes périodes de détention pour trouver l'optimum. Évaluez les rendements pour différentes périodes de détention pour identifier la meilleure durée de détention.
Évaluer l'ajout d'autres filtres techniques, tester l'ajout d'un indice de volatilité, etc. pour améliorer l'efficacité des décisions de négociation.
Cette double stratégie de trading EMA et MACD vise à saisir les opportunités de retrait à court terme pour le shorting et le profit. Elle utilise pleinement la réaction rapide de l'EMA et la force de jugement du changement de momentum du MACD pour améliorer la précision dans le timing des transactions avec une double confirmation. Les espaces d'optimisation se trouvent dans le réglage des paramètres, le contrôle du glissement, la période de détention, etc. Une optimisation minutieuse des paramètres peut conduire à de bons rendements.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 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/ // © Coinrule //@version=5 // strategy('Fast EMA above Slow EMA with MACD (by Coinrule)', // overlay=true, // initial_capital=1000, // process_orders_on_close=true, // default_qty_type=strategy.percent_of_equity, // default_qty_value=30, // commission_type=strategy.commission.percent, // commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 // EMAs fastEMA = ta.ema(close, 8) slowEMA = ta.ema(close, 26) plot(fastEMA, color = color.blue) plot(slowEMA, color = color.green) //buyCondition1 = ta.crossover(fastEMA, slowEMA) buyCondition1 = fastEMA > slowEMA // DMI and MACD inputs and calculations [macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9) buyCondition2 = ta.crossover(macd, macd_signal) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 if (buyCondition1 and buyCondition2 and notInTrade and timePeriod) strategy.entry(id="Long", direction = strategy.long) strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice) //if (sellCondition1 and sellCondition2 and notInTrade and timePeriod) //strategy.close(id="Close", when = sellCondition1 or sellCondition2)