
Esta estrategia se llama estrategia de ruptura de la línea de doble equilibrio de la estrategia de negociación de la cuantificación. La idea principal de esta estrategia es utilizar la señal cruzada de las medias móviles rápidas y las medias móviles lentas para juzgar la tendencia de los precios y, a continuación, tomar decisiones de compra y venta.
El indicador central de la estrategia es el promedio de movimiento rápido y el promedio de movimiento lento. La estrategia utiliza la relación cruzada entre el promedio de movimiento rápido y el promedio de movimiento lento para determinar la tendencia de los precios y tomar decisiones de compra y venta.
Concretamente, el parámetro de la media móvil rápida está configurado para 24 ciclos y el parámetro de la media móvil lenta para 100 ciclos. Cuando la media móvil rápida cruza la media móvil lenta desde abajo, indica que el precio entra en una tendencia ascendente, y la estrategia emite una señal de compra; cuando la media móvil rápida cruza la media móvil lenta desde arriba hacia abajo, indica que el precio entra en una tendencia descendente, y la estrategia emite una señal de venta.
De esta manera, se pueden capturar los cambios en la tendencia de los precios mediante la determinación de la dirección de la intersección de las medias móviles rápidas y lentas, lo que ayuda a la toma de decisiones de compra y venta.
La estrategia tiene las siguientes ventajas:
El principio es simple, fácil de entender y fácil de implementar. El cruce bidireccional es uno de los indicadores técnicos más básicos, fácil de entender y aplicar.
Los parámetros de las medias móviles rápidas y las medias móviles lentas se pueden ajustar según las circunstancias reales, lo que hace que la estrategia sea más flexible.
La capacidad de capturar cambios de tendencia es más fuerte. La intersección de dos líneas uniformes se utiliza a menudo para capturar el punto de inflexión en el que los precios entran en una tendencia desde la consolidación.
Se puede filtrar eficazmente los temblores, reduciendo las transacciones no válidas. Se puede usar la línea de doble igualdad para identificar las zonas de temblor y evitar la repetición de la apertura de posiciones durante el temblor.
La estrategia también tiene sus riesgos:
Las señales de cruce de dos líneas equiláteras pueden retrasarse. Las líneas equiláteras son indicadores de seguimiento de tendencias, y las señales de cruce a menudo se retrasan por un período determinado. Esto puede causar un cierto costo de oportunidad.
En un mercado convulso, es fácil generar falsas señales. La mejor situación para el rendimiento de la línea de paridad es cuando hay una tendencia clara en el precio.
Si los parámetros se establecen incorrectamente, puede afectar la sensibilidad de la captura de tendencias cruzadas.
Resolución de las mismas:
Reducir adecuadamente el ciclo de la línea media y aumentar la sensibilidad de la señal de cruce.
Se puede añadir un indicador de volatilidad o volumen de transacciones para filtrar, reduciendo las transacciones no válidas en mercados convulsionados.
Optimización de parámetros, búsqueda de la combinación óptima de parámetros. Optimización automática de métodos como la adición de aprendizaje automático.
La estrategia se puede optimizar en los siguientes aspectos:
Utiliza indicadores de medias móviles más avanzados, como las medias móviles linealmente ponderadas, para reemplazar las medias móviles simples y mejorar la capacidad de seguimiento y predicción de los indicadores.
Añadir más indicadores auxiliares, como el indicador de volumen de tráfico, el indicador de fluctuación, etc. para filtrar conjuntamente, reduciendo la señal de invalidez.
Optimización rápida y lenta de los parámetros de la línea media, para mejorar la adaptabilidad de los parámetros. Se pueden utilizar métodos de aprendizaje automático y optimización aleatoria para encontrar los parámetros óptimos.
La estrategia de entrada puede diseñar puntos de parada y paradas móviles para controlar las pérdidas individuales. Al mismo tiempo, la adición de técnicas de optimización de ganancias asegura obtener suficientes ganancias.
Las nuevas tecnologías, como el aprendizaje profundo, se pueden utilizar para identificar patrones de precios más complejos y ayudar a las decisiones de compra y venta en el cruce homogéneo con el fin de obtener mejores resultados.
En general, esta estrategia es más clásica y sencilla, se basa en dos indicadores de equilibrio para determinar la tendencia de los precios y la oportunidad de detectar la transición de los precios de la oscilación a la tendencia. La ventaja es que la idea es clara, sencilla y práctica, adecuada para el seguimiento de la tendencia.
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
//OBV
src = close
obv = ta.cum(math.sign(ta.change(src)) * volume)
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 20, minval = 1, maxval = 100, group="Smoothing")
Limit = input.float(title = "Limit", defval = 1, minval = 0.1, maxval = 10, group="Smoothing")
smoothingLine_ma = ma(obv,smoothingLength, typeMA)
obv_diff = (obv-smoothingLine_ma)*100/obv
//PVT
var cumVolp = 0.
cumVolp += nz(volume)
if barstate.islast and cumVolp == 0
runtime.error("No volume is provided by the data vendor.")
srcp = close
vt = ta.cum(ta.change(srcp)/srcp[1]*volume)
smoothingLine_map = ma(vt,smoothingLength, typeMA)
pvt_diff = (vt-smoothingLine_map)*100/vt
// plot(obv_diff+close+100 ,title="OBV_DIFF", color = color.rgb(255, 118, 54))
// plot(pvt_diff+close+80 ,title="PVT_DIFF", color = color.rgb(223, 61, 255))
indicator = (pvt_diff+obv_diff)/2
goLongCondition1 = ta.crossover(indicator,Limit)
timePeriod = time >= timestamp(syminfo.timezone, 2023,1, 1, 0, 0) // Backtesting Time
notInTrade = strategy.position_size <= 0
if goLongCondition1 and timePeriod and notInTrade
stopLoss = low * 0.99 // -2%
takeProfit = high * 1.05 // +5%
strategy.entry('long', strategy.long )
strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 100)
// goLongCondition1 = ta.crossover(fastEMA, slowEMA)
// timePeriod = time >= timestamp(syminfo.timezone, 2018, 12, 15, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
// stopLoss = low * 0.97
// takeProfit = high * 1.12
// strategy.entry('long', strategy.long)
// strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
// plot(fastEMA, color=color.new(color.blue, 0))
// plot(slowEMA, color=color.new(color.yellow, 0))