
La Estrategia de ruptura de oscilación de la zona de oscilación de la MACD Stochastics es una estrategia de negociación cuantitativa que combina el indicador MACD con el indicador Stochastics. La estrategia trata de identificar la dirección de la tendencia de los precios de las acciones y entrar en posiciones cuando los precios se rompen desde la zona de oscilación.
Al entrar en una posición, la estrategia considera las señales de los dos indicadores MACD y Stochastics al mismo tiempo para mejorar la calidad de las entradas. Además, la estrategia prefiere un punto de parada y un punto de parada para controlar el riesgo de manera efectiva.
La estrategia de ruptura de la oscilación de la franja de ondas del MACD Stochastics se basa principalmente en los siguientes principios:
En concreto, la estrategia utiliza la intersección de la línea DIFF y la línea DEA del indicador MACD como una señal para determinar la dirección de la tendencia de los precios. Cuando la DIFF rompe la DEA hacia arriba, se genera una señal múltiple y, a la inversa, se genera una señal de cabeza vacía.
Al mismo tiempo, la línea K de Stochastics se cruza hacia arriba o hacia abajo con la línea D cerca de las zonas de sobreventa y sobrecompra (default 30 y 70), lo que también genera una señal de negociación.
Cuando el MACD y el Stochastics dan señales simultáneas de sincronización, la estrategia elige la entrada. En este momento, es probable que el precio de las acciones produzca una gran ruptura.
Una vez en la entrada, la estrategia establece un punto de parada y un punto de parada razonables. Un punto de parada razonable puede controlar eficazmente las pérdidas individuales, y un punto de parada puede bloquear las ganancias.
La estrategia de ruptura de la oscilación de la banda de ondas del MACD Stochastics tiene las siguientes ventajas:
La estrategia utiliza MACD y Stochastics para filtrar falsas señales y mejorar la calidad de las entradas.
Las estrategias están especialmente diseñadas para capturar las rupturas de los precios de las acciones después de una larga oscilación. Estas tendencias suelen ser más amplias.
La estrategia tiene un parámetro de stop loss incorporado, que permite controlar razonablemente las pérdidas individuales y bloquear los beneficios a tiempo.
A pesar de que la estrategia de ruptura de la oscilación de la franja de ondas del MACD Stochastics ha sido cuidadosamente diseñada, existen ciertos riesgos:
El precio de las acciones puede tener una falsa ruptura antes de la ruptura. Si el momento de entrada no es elegido correctamente, puede que la entrada se convierta en un punto de entrada perdido.
A pesar de la preparación adecuada antes de la brecha, existe la posibilidad de que la brecha falle. En este caso, se producen pérdidas.
La configuración de los parámetros de la estrategia puede tener un gran impacto en los resultados. Si los parámetros se ajustan incorrectamente, hay un gran descuento.
En relación con estos riesgos, se puede optimizar de la siguiente manera:
Combinación de otros indicadores para filtrar señales
Intervención humana para asegurar la posición de ruptura
Pruebas de optimización de parámetros múltiples
La estrategia de ruptura de la oscilación de la franja de ondas del MACD Stochastics todavía tiene espacio para una optimización adicional:
Optimización de los parámetros del MACD para encontrar la mejor combinación de parámetros
Optimización de los parámetros de Stochastics para encontrar la mejor combinación de parámetros
Añadir otras combinaciones de indicadores, como KDJ, BOLL, etc., para mejorar aún más la calidad de las entradas
Prueba de diferentes tiempos de tenencia para optimizar las estrategias de stop-loss
Prueba de la variabilidad de parámetros de diferentes indicadores de negociación
Aumento de algoritmos de aprendizaje automático para optimizar automáticamente los parámetros
La estrategia de ruptura de la oscilación de la franja de ondas del MACD Stochastics utiliza un conjunto de dos indicadores, el MACD y el Stochastics, para obtener una entrada de alta calidad en el momento de la ruptura de la oscilación de la franja de ondas. Al mismo tiempo, ayuda a controlar el riesgo de manera efectiva con una estrategia de suspensión de pérdidas.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true)
// Getting inputs
fast_length = input(title = "Fast Length", defval = 180)
slow_length = input(title = "Slow Length", defval = 390)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135)
sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"])
sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
// hline(0, "Zero Line", color = color.new(#787B86, 50))
// plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
// plot(macd, title = "MACD", color = #2962FF)
// plot(signal, title = "Signal", color = #FF6D00)
periodK = input.int(14, title="%K Length", minval=1)
smoothK = input.int(1, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
// plot(k, title="%K", color=#2962FF)
// plot(d, title="%D", color=#FF6D00)
// h0 = hline(80, "Upper Band", color=#787B86)
// hline(50, "Middle Band", color=color.new(#787B86, 50))
// h1 = hline(20, "Lower Band", color=#787B86)
// fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
// Make inputs that set the take profit % (optional)
longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01
// Calculate trading conditions
enterLong = macd>signal and ta.crossover(k,30)
enterShort = macd<signal and ta.crossunder(k,70)
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Plot take profit values for confirmation
plot(strategy.position_size > 0 ? longExitPrice : na,
color=color.green, style=plot.style_circles,
linewidth=3, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortExitPrice : na,
color=color.red, style=plot.style_circles,
linewidth=3, title="Short Take Profit")
// Submit entry orders
if enterLong
strategy.entry("long", strategy.long)
if enterShort
strategy.entry("short", strategy.short)
// STEP 3:
// Submit exit orders based on take profit price
if strategy.position_size > 0
strategy.exit("long TP", limit=longExitPrice)
if strategy.position_size < 0
strategy.exit("short TP", limit=shortExitPrice)