Estrategia MACD de cruces dorados y cruces muertos

MACD EMA DIF DEA
Fecha de creación: 2024-04-26 12:08:24 Última modificación: 2024-04-26 12:08:24
Copiar: 0 Número de Visitas: 1107
1
Seguir
1617
Seguidores

Estrategia MACD de cruces dorados y cruces muertos

Descripción general

La 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 la línea DEA de abajo hacia arriba, se produce una señal de multitarea; cuando la línea DIF cruza la línea DEA de arriba hacia abajo, se produce una señal de parálisis. Los resultados de la estrategia muestran que en el par de operaciones BTCUSDT, la tasa de ganancia es de aproximadamente 40% y la rentabilidad anual es de 1.05, pero puede provocar un aumento constante en el número de activos en poder, por lo que no se puede usar como una estrategia de arbitraje independiente.

Principio de estrategia

  1. Calcula el promedio móvil rápido (EMA) y el promedio móvil lento (EMA).
  2. Calcular la línea DIF, es decir, la diferencia entre el EMA rápido y el EMA lento.
  3. Calcula el EMA de la línea DEA, es decir, de la línea DIF.
  4. Calcula el valor diferencial entre la línea DIF y la línea DEA.
  5. Cuando la línea DIF cruza la línea DEA de abajo hacia arriba, genera una señal de multitarea, abre una posición de multitarea.
  6. Cuando la línea DIF cruza la línea DEA de arriba hacia abajo, se genera una señal de toque de queda, toque de baja, toque de baja.
  7. Cuando vuelve a aparecer la señal de cruce en sentido contrario, se cesa la posición actual y se abre la posición en sentido contrario.

Ventajas estratégicas

  1. La estrategia utiliza indicadores MACD ampliamente utilizados, fáciles de entender y de implementar.
  2. La lógica de la estrategia es clara, las señales de negociación son claras.
  3. Aplicable a mercados con tendencias, donde se pueden seguir las principales tendencias.

Riesgo estratégico

  1. La estrategia tiene una baja probabilidad de éxito de solo el 40%, lo que significa que el 60% de las transacciones pueden ser perdedoras.
  2. Esta estrategia lleva a un aumento constante de la cantidad de activos que se poseen, lo que puede generar un mayor riesgo.
  3. En un mercado convulso, esta estrategia puede generar señales de negociación frecuentes, lo que genera costos de negociación elevados.
  4. La estrategia no tiene en cuenta la gestión de riesgos, como el stop loss y la gestión de posiciones, que pueden generar grandes pérdidas.

Dirección de optimización de la estrategia

  1. Introducir filtros de tendencia, como las medias móviles a largo plazo, para evitar el comercio en mercados convulsionados.
  2. Optimizar los parámetros de los indicadores MACD, como el EMA rápido, el EMA lento y la frecuencia de las líneas de señal, para adaptarse a diferentes condiciones de mercado.
  3. Adición de medidas de gestión de riesgos, tales como el stop loss y la gestión de posiciones, para controlar las pérdidas potenciales.
  4. En combinación con otros indicadores técnicos o análisis fundamental para mejorar la fiabilidad de las señales de negociación.

Resumir

La estrategia MACD Gold Fork Dead Fork es una estrategia de negociación sencilla y fácil de entender, adecuada para mercados de tendencia. Sin embargo, la estrategia tiene un bajo índice de ganancias y carece de medidas de gestión de riesgos, por lo que necesita ser optimizada y perfeccionada aún más. La introducción de filtros de tendencia, parámetros de optimización, la adición de gestión de riesgos y la combinación con otros métodos de análisis pueden mejorar la performance y la fiabilidad de la estrategia.

Código Fuente de la 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)