MACD Golden Cross und Dead Cross Strategie

MACD EMA DIF DEA
Erstellungsdatum: 2024-04-26 12:08:24 zuletzt geändert: 2024-04-26 12:08:24
Kopie: 0 Klicks: 1107
1
konzentrieren Sie sich auf
1617
Anhänger

MACD Golden Cross und Dead Cross Strategie

Überblick

Die Strategie verwendet die Kreuzung der DIF- und DEA-Linien im MACD-Index, um ein Handelssignal zu erzeugen. Wenn die DIF-Linien von unten nach oben über die DEA-Linien gehen, wird ein Mehrfachsignal erzeugt. Wenn die DIF-Linien von oben nach unten über die DEA-Linien gehen, wird ein Negativsignal erzeugt.

Strategieprinzip

  1. Berechnung des schnellen und des langsamen EMAs
  2. Berechnen Sie die Differenz zwischen dem schnellen EMA und dem langsamen EMA.
  3. Berechnen Sie die EMA der DEA-Linie, also der DIF-Linie.
  4. Berechnen Sie die Differenz zwischen den MACD-Spalten, d.h. den Differenzen zwischen den DIF- und DEA-Linien.
  5. Wenn die DIF-Leitung die DEA-Leitung von unten nach oben durchquert, erzeugt sie ein Mehrfachsignal und eröffnet eine Mehrfachposition.
  6. Wenn die DIF-Leitung die DEA-Leitung von oben nach unten durchquert, wird ein Signal erzeugt, das die Position aufgelöst, die Position aufgelöst und die Position aufgelöst.
  7. Wenn ein umgekehrtes Kreuzsignal erneut auftritt, wird der aktuelle Platz platziert und der Position in der entgegengesetzten Richtung eröffnet.

Strategische Vorteile

  1. Die Strategie nutzt die weit verbreiteten MACD-Indikatoren und ist einfach zu verstehen und zu implementieren.
  2. Die Strategie ist klar und die Handelssignale klar.
  3. Es ist für trendige Märkte geeignet, um die wichtigsten Markttrends zu verfolgen.

Strategisches Risiko

  1. Diese Strategie hat eine niedrige Erfolgsrate von nur 40%, was bedeutet, dass 60% der Geschäfte möglicherweise verlustreich sind.
  2. Diese Strategie führt zu einer ständigen Zunahme der gehaltenen Vermögenswerte, was zu einer zusätzlichen Risikobereitschaft führen kann.
  3. Die Strategie kann zu häufigen Handelssignalen führen, was zu hohen Transaktionskosten führt.
  4. Die Strategie berücksichtigt kein Risikomanagement wie Stop-Loss- und Positionsmanagement, was zu erheblichen Verlusten führen kann.

Richtung der Strategieoptimierung

  1. Die Einführung von Trendfiltern, wie z. B. langfristigen Moving Averages, zur Vermeidung des Handels in unsicheren Märkten.
  2. Optimierung der Parameter des MACD-Indikators, wie z. B. die Periodizität der schnellen EMA, der langsamen EMA und der Signallinien, um sie an unterschiedliche Marktbedingungen anzupassen.
  3. Risikomanagementmaßnahmen wie Stop Loss und Positionsmanagement werden hinzugefügt, um potenzielle Verluste zu kontrollieren.
  4. In Kombination mit anderen technischen Indikatoren oder Fundamentalanalysen zur Erhöhung der Zuverlässigkeit von Handelssignalen.

Zusammenfassen

Die MACD Goldfork-Strategie ist eine einfache und verständliche Handelsstrategie, die für trendige Märkte geeignet ist. Die Strategie hat jedoch eine niedrige Gewinnrate und fehlen Risikomanagementmaßnahmen, so dass weitere Optimierungen und Verbesserungen erforderlich sind. Die Leistung und Zuverlässigkeit der Strategie können durch die Einführung von Trendfiltern, Optimierungsparametern, das Hinzufügen von Risikomanagement und in Kombination mit anderen Analysemethoden verbessert werden.

Strategiequellcode
/*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)