Estrategia MACD Cruz de Oro y Cruz de la Muerte

El autor:¿ Qué pasa?, Fecha: 2024-04-26 12:08:24
Las etiquetas:El MACDEl EMAEl DIFDEA

img

Resumen general

Esta estrategia utiliza el cruce de la línea DIF y la línea DEA en el indicador MACD para generar señales de negociación. Cuando la línea DIF cruza por encima de la línea DEA, genera una señal larga; cuando la línea DIF cruza por debajo de la línea DEA, genera una señal corta. Los resultados de las pruebas de retroceso de esta estrategia muestran que en el par de negociación BTCUSDT, la tasa de ganancia es de aproximadamente 40%, y el rendimiento anualizado es de 1.05. Sin embargo, hará que el número de activos mantenidos aumente continuamente, por lo que no se puede utilizar como una estrategia de arbitraje independiente.

Principio de la estrategia

  1. Calcular la media móvil exponencial rápida (EMA) y la media móvil exponencial lenta (EMA).
  2. Calcular la línea DIF, que es la diferencia entre la EMA rápida y la EMA lenta.
  3. Calcular la línea DEA, que es la EMA de la línea DIF.
  4. Calcular el histograma MACD, que es la diferencia entre la línea DIF y la línea DEA.
  5. Cuando la línea DIF cruce por encima de la línea DEA, se genera una señal larga y se abre una posición larga.
  6. Cuando la línea DIF cruce por debajo de la línea DEA, se genera una señal corta, se cierra la posición larga y se abre una posición corta.
  7. Cuando vuelva a aparecer la señal de cruce opuesta, cierre la posición actual y abra una posición en la dirección opuesta.

Ventajas estratégicas

  1. Esta estrategia utiliza el indicador MACD ampliamente utilizado, que es fácil de entender e implementar.
  2. La lógica de la estrategia es clara, y las señales comerciales son explícitas.
  3. Es adecuado para mercados de tendencia y puede seguir las principales tendencias del mercado.

Riesgos estratégicos

  1. La tasa de ganancia de esta estrategia es baja, sólo el 40%, lo que significa que el 60% de las operaciones pueden estar perdiendo.
  2. Esta estrategia hará que el número de activos mantenidos aumente continuamente, lo que puede acarrear una exposición adicional al riesgo.
  3. En un mercado fluctuante, esta estrategia puede generar señales comerciales frecuentes, lo que conduce a altos costos de negociación.
  4. Esta estrategia no tiene en cuenta la gestión de riesgos, como la gestión de pérdidas y la gestión de posiciones, que pueden dar lugar a pérdidas significativas.

Direcciones para la optimización de la estrategia

  1. Introduzca filtros de tendencia, como las medias móviles a largo plazo, para evitar el comercio en mercados fluctuantes.
  2. Optimizar los parámetros del indicador MACD, como el período de la EMA rápida, la EMA lenta y la línea de señal, para adaptarse a las diferentes condiciones del mercado.
  3. Se incluyen medidas de gestión de riesgos, como el stop-loss y la gestión de posiciones, para controlar las pérdidas potenciales.
  4. Combinar con otros indicadores técnicos o análisis fundamental para mejorar la fiabilidad de las señales de negociación.

Resumen de las actividades

La estrategia MACD de cruz de oro y cruz de muerte es una estrategia de negociación simple y fácil de entender que es adecuada para los mercados de tendencia. Sin embargo, la tasa de ganancia de esta estrategia es baja y carece de medidas de gestión de riesgos, por lo que necesita una mayor optimización y mejora. Al introducir filtros de tendencia, optimizar parámetros, agregar gestión de riesgos y combinar con otros métodos de análisis, se puede mejorar el rendimiento y la confiabilidad de esta estrategia.


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

		
		

Relacionados

Más.