Stratégie MACD Golden Cross et Dead Cross

MACD EMA DIF DEA
Date de création: 2024-04-26 12:08:24 Dernière modification: 2024-04-26 12:08:24
Copier: 0 Nombre de clics: 1107
1
Suivre
1617
Abonnés

Stratégie MACD Golden Cross et Dead Cross

Aperçu

La stratégie utilise le croisement de la ligne DIF et de la ligne DEA dans l’indicateur MACD pour générer un signal de transaction. Lorsque la ligne DIF traverse la ligne DEA de bas en haut, elle génère un signal de multiplication; lorsque la ligne DIF traverse la ligne DEA de haut en bas, elle génère un signal de blanchiment. Les résultats de la rétroaction de la stratégie montrent un taux de victoire d’environ 40% sur la paire de transactions BTCUSDT, avec un rendement annuel de 1,05, mais entraînant une augmentation constante du nombre d’actifs détenus, et ne peut donc pas être utilisé comme stratégie de arbitrage indépendante.

Principe de stratégie

  1. Calculer les moyennes mobiles rapides (EMA) et les moyennes mobiles lentes (EMA).
  2. Calculer la ligne DIF, c’est-à-dire la différence entre l’EMA rapide et l’EMA lente
  3. Calculer l’EMA de la ligne DEA, qui est la ligne DIF.
  4. Calculer la différence entre la ligne DIF et la ligne DEA dans le diagramme MACD.
  5. Lorsque le DIF traverse le DEA de bas en haut, un signal de multiplication est généré et le DEA est ouvert.
  6. Lorsque la ligne DIF traverse la ligne DEA de haut en bas, elle génère un signal de coupe, de placement en plus et de coupe.
  7. Lorsque le signal de croisement inverse apparaît à nouveau, la position actuelle est clôturée et la position de la direction opposée est ouverte.

Avantages stratégiques

  1. La stratégie utilise des indicateurs MACD largement utilisés, faciles à comprendre et à mettre en œuvre.
  2. La logique de la stratégie est claire, les signaux de transaction sont clairs.
  3. Il s’agit d’un outil de suivi des principales tendances du marché.

Risque stratégique

  1. Cette stratégie a un faible taux de réussite de seulement 40%, ce qui signifie que 60% des transactions peuvent être perdantes.
  2. Cette stratégie conduit à une augmentation constante du nombre d’actifs détenus, ce qui peut entraîner une prise de risque supplémentaire.
  3. Cette stratégie peut générer des signaux de trading fréquents, entraînant des coûts de transaction élevés, dans des marchés instables.
  4. La stratégie ne prend pas en compte la gestion des risques, tels que les arrêts de perte et la gestion des positions, qui peuvent entraîner des pertes importantes.

Orientation de l’optimisation de la stratégie

  1. Introduisez des filtres de tendance, tels que des moyennes mobiles à long terme, pour éviter de négocier dans des marchés instables.
  2. Optimiser les paramètres de l’indicateur MACD, tels que la fréquence des EMA rapides, des EMA lentes et des lignes de signaux, pour s’adapter à différentes conditions de marché.
  3. Ajouter des mesures de gestion des risques, telles que la gestion des stops et des positions, pour contrôler les pertes potentielles.
  4. En combinaison avec d’autres indicateurs techniques ou l’analyse fondamentale pour améliorer la fiabilité des signaux de trading.

Résumer

La stratégie MACD Gold Fork Dead Fork est une stratégie de négociation simple et facile à comprendre, adaptée aux marchés tendanciels. Cependant, la stratégie a un faible taux de réussite et manque de mesures de gestion des risques, ce qui nécessite une optimisation et une amélioration supplémentaires. La performance et la fiabilité de la stratégie peuvent être améliorées par l’introduction de filtres de tendance, des paramètres d’optimisation, l’ajout de la gestion des risques et la combinaison d’autres méthodes d’analyse.

Code source de la stratégie
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// @description 该策略使用 MACD DIF 线与 EDA 线产生金叉与死叉时进行入场与出场操作, 回测后发现胜率约 40%, BTCUSDT 年化利率 1.05, 同时会导致持有的资产数量不断上升, 无法作为一个独立的套利策略进行使用.

strategy("MACD 金叉策略", overlay=true)

fastLength = input(12, "快线长度")
slowLength = input(26, "慢线长度")
MACDLength = input(9, "MACD 均线长度")

deltaIncreaseOver0 = input(color.green,'MACD 柱在 0 线以上增长')
deltaIncreaseUnder0 = input(color.rgb(153, 230, 156),'MACD 柱在 0 线以下增长')

deltaDecreaseOver0 = input(color.orange,'MACD 柱在 0 线以上下跌')
deltaDecreaseUnder0 = input(color.red,'MACD 柱在 0 线以下下跌')

buySellEnabled = input(true, '是否显示入场与出场信号')

// @variable 做多轮数
var longRound = 0
// @variable 做空轮数
var shortRound = 0

DIF = ta.ema(close, fastLength) - ta.ema(close, slowLength) // 快慢均线差值
EDA = ta.ema(DIF, MACDLength) // DIF 线的 EMA 均线
delta = DIF - EDA // MACD 柱高度

// plot(0, 'Zero', color.black)
plot(DIF,'DIF', color.yellow)
plot(EDA, "EDA", color.purple)

isDeltaIncreasing = delta[1] < delta
isDeltaOver0 = delta > 0
deltaColor = isDeltaIncreasing ? (isDeltaOver0? deltaIncreaseOver0: deltaIncreaseUnder0) :( isDeltaOver0? deltaDecreaseOver0: deltaDecreaseUnder0)
plot(delta, "Delta", deltaColor, style = plot.style_columns)

isDeltaV = delta > delta[1] and delta[2] > delta[1]
isDeltaA = delta < delta[1] and delta[2] < delta[1]

longBuy(round) =>
	entry = str.format("做多买入 {0}",round)
	// log.info(str.format("{0} {1}",entry,close))
	strategy.entry(entry, strategy.long, comment=entry)

longSell(round) =>
	entry = str.format("做多买入 {0}",round)
	exit = str.format("做多卖出 {0}",round)
	// log.info(str.format("{0} {1}",exit,close))
	strategy.close(entry, comment=exit)		

shortSell(round) =>
	entry = str.format("做空卖出 {0}",round)
	// log.info(str.format("{0} {1}",entry,close))
	strategy.entry(entry, strategy.short, comment= entry) 

shortBuy(round) =>
	entry = str.format("做空卖出 {0}",round)
	exit = str.format("做空买入 {0}",round)
	// log.info(str.format("{0} {1}",exit,close))
	strategy.close(entry, comment=exit)		

if (buySellEnabled) 
	if (ta.crossunder(DIF, EDA))
		longSell(longRound)
	if (ta.crossover(DIF, EDA))
		longRound := longRound + 1
		longBuy(longRound)