Stratégie de négociation à court terme basée sur le canal EMA et le MACD

Auteur:ChaoZhang est là., Date: 2024-01-23 14h30:02
Les étiquettes:

img

Résumé

La stratégie est appelée EMA Channel et MACD Based Short-Term Trading Strategy. Elle combine le canal EMA et l'indicateur MACD pour identifier les tendances et générer des signaux de trading.

Principaux

La stratégie utilise l'EMA à 5 jours et l'EMA à 21 jours pour former un canal EMA. Lorsque l'EMA à 5 jours dépasse l'EMA à 21 jours, il est considéré comme un signe haussier. Lorsque l'EMA à 5 jours dépasse l'EMA à 21 jours, il est considéré comme un signe baissier. L'histogramme MACD peut filtrer les faux signaux. Les signaux d'achat ne sont générés que lorsque l'histogramme MACD est supérieur à 0. Les signaux de vente ne sont générés que lorsque l'histogramme MACD est inférieur à 0. Une fois les signaux déclenchés, les ordres sont passés avec un stop-loss fixe et un profit. Si le prix revient dans le canal EMA, les signaux seront à nouveau déclenchés pour suivre la tendance.

Analyse des avantages

La stratégie combine l'identification des tendances et le filtrage des indicateurs, ce qui permet d'identifier efficacement les directions de tendance à court terme. L'utilisation du canal EMA pour déterminer la direction de la tendance majeure et de l'histogramme MACD pour filtrer les faux signaux peut grandement améliorer la rentabilité. Le mécanisme fixe de stop loss et de prise de profit garantit également un bon rapport risque-rendement.

Analyse des risques

La stratégie est principalement adaptée au trading à court terme et présente de mauvaises performances sur les marchés à long terme et à long terme. Dans les marchés latéraux à long terme, les croisements de canaux EMA se produisent fréquemment, mais la plupart sont de faux signaux. Bien que l'histogramme MACD puisse jouer un rôle dans le filtrage, son efficacité est encore limitée.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres EMA pour trouver des combinaisons de paramètres qui maximisent les rendements pour des instruments de négociation spécifiques.

  2. Optimiser les paramètres MACD pour améliorer l'efficacité du filtrage.

  3. Incorporer des indicateurs de volatilité pour élargir la plage de stop loss lorsque la volatilité du marché augmente.

  4. Ajouter un mécanisme de stop loss pour rapprocher le stop loss du prix, réduisant ainsi le déclencheur inutile du stop loss tout en assurant la rentabilité.

Conclusion

La stratégie a une rentabilité relativement élevée et est particulièrement adaptée au trading à court terme. C'est un bon choix parmi les stratégies de trading quantitatives à haute fréquence.


/*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"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © moondevonyt

//@version=5
strategy("Scalping with EMA channel and MACD", overlay=true)

// Exponential moving average inputs
ema21 = ta.ema(close, 21)
ema5 = ta.ema(close, 5)

// MACD inputs
fastLength = 18
slowLength = 34
signalSmoothing = 12

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine

// Buy and sell conditions
buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0
sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0

// Re-entry conditions
reEntryBuyCondition = close > ema21
reEntrySellCondition = close < ema21

// Set stop loss and take profit
stopLoss = 8
takeProfit = 15

// Execute Strategy
if buyCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit)
if reEntryBuyCondition
    strategy.entry("Re-Enter Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit)

if sellCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit)
if reEntrySellCondition
    strategy.entry("Re-Enter Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit)

// Plotting EMAs and MACD
plot(ema21, color=color.blue, title="21 EMA")
plot(ema5, color=color.orange, title="5 EMA")
plot(macdHistogram, color=color.red, title="MACD Histogram")

// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

Plus de