En la carga de los recursos... Cargando...

Estrategia de negociación con doble media móvil de oscilación

El autor:¿ Qué pasa?, Fecha: 2023-12-04 15:28:12
Las etiquetas:

img

Resumen general

La estrategia de negociación de oscilación de media móvil doble genera señales de negociación mediante la combinación de la media móvil exponencial 2/20 y el indicador de oscilación de la zona de precios adaptativa para obtener ganancias en mercados oscilantes.

Principio de la estrategia

La estrategia de negociación de oscilación de media móvil doble consta de dos partes:

  1. Este indicador genera una señal de compra cuando el precio rompe la línea de 20 días y no rompe la línea de 2 días en la subida; genera una señal de venta cuando el precio rompe la línea de 2 días y no excede la línea de 20 días en la caída.

  2. Este indicador construye bandas de precios basadas en el rango de volatilidad de los precios y juzga los puntos de inflexión del mercado por los precios que rompen las bandas de precios superiores e inferiores para generar señales de compra y venta.

La estrategia de negociación de oscilación de media móvil doble genera señales comerciales reales solo cuando la media móvil exponencial 2/20 y el indicador de oscilación de la zona de precios adaptativa emiten señales al mismo tiempo para implementar la estrategia de negociación. Esto puede filtrar efectivamente algunas señales inválidas y mejorar la calidad de la señal.

Análisis de ventajas

La estrategia de negociación de doble oscilación de media móvil combina las ventajas de los indicadores de media móvil e indicadores de volatilidad, con las siguientes características:

  1. La verificación de doble indicador mejora la calidad de la señal y filtra de manera efectiva las señales no válidas.

  2. El uso combinado de indicadores de media móvil y de bandas de precios puede determinar con precisión los puntos de inflexión en los mercados oscilantes.

  3. Frecuencia de operación moderada: en comparación con la estrategia de media móvil exponencial dual, puede reducir la ocurrencia de transacciones no válidas.

  4. Las reglas de la señal son claras y los parámetros son simples de establecer, que es fácil de programar para lograr el comercio automático.

Análisis de riesgos

La estrategia de negociación de doble media móvil de oscilación también presenta los siguientes riesgos:

  1. La combinación de indicadores dobles para filtrar las señales puede perder oportunidades para inversiones rápidas de precios.

  2. La estrategia se basa principalmente en los mercados oscilantes, y las señales de negociación y los márgenes de ganancia disminuirán a medida que la volatilidad se debilite.

  3. Impacto significativo de la optimización de parámetros: la configuración de los parámetros de los indicadores puede tener un mayor impacto en los resultados comerciales y debe optimizarse sistemáticamente para obtener parámetros óptimos.

En respuesta a los riesgos mencionados anteriormente, pueden adoptarse métodos como el ajuste dinámico de los parámetros para adaptarse a los cambios del entorno del mercado, estableciendo al mismo tiempo estrategias de stop loss para controlar el riesgo a la baja.

Direcciones de optimización

La estrategia de negociación de doble media móvil de oscilación puede optimizarse en los siguientes aspectos:

  1. Prueba más combinaciones de medias móviles y bandas de precios Prueba sistemáticamente medias móviles y bandas de precios de diferentes longitudes para encontrar la combinación óptima de parámetros.

  2. La combinación de señales de volumen de negociación anormales para filtrar señales de precios de medias móviles puede mejorar aún más la calidad de la señal.

  3. Cuando la volatilidad del mercado se debilite, ajuste adecuadamente los puntos de stop loss para reducir la pérdida única.

  4. Combinar modelos de aprendizaje profundo. Utilice LSTM y otros modelos de aprendizaje profundo para verificar las señales comerciales para hacer estrategias más inteligentes.

Resumen de las actividades

La estrategia de negociación de oscilación de media móvil doble genera señales de negociación de oscilación de alta calidad mediante la combinación de la media móvil exponencial 2/20 y el indicador de oscilación de la zona de precios adaptativa, que puede adaptarse a mercados volátiles como el índice bursátil, el forex, las materias primas con grandes fluctuaciones y llevar a cabo arbitrajes comerciales frecuentes dentro del rango de oscilación. La estrategia tiene ventajas como la alta calidad de la señal y la fácil automatización. Al mismo tiempo, los riesgos como la identificación tardía de los puntos de inflexión y el ajuste dinámico de los parámetros también necesitan ser controlados, y todavía hay mucho espacio para la optimización sobre esta base.


/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/03/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors 
// identify possible market turning points, which can be especially useful in a sideways-moving 
// market. It was created by technical analyst Lee Leibfarth in the article “Identify the 
// Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue 
// of the journal Technical Analysis of Stocks and Commodities.
// This indicator attempts to signal significant price movements by using a set of bands based on 
// short-term, double-smoothed exponential moving averages that lag only slightly behind price changes. 
// It can help short-term investors and day traders profit in volatile markets by signaling price 
// reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be 
// implemented as part of an automated trading system and can be applied to the charts of all tradeable assets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

APZ(nPeriods,nBandPct) =>
    pos = 0.0
    xHL = high - low
    nP = math.ceil(math.sqrt(nPeriods))
    xVal1 = ta.ema(ta.ema(close,nP), nP)
    xVal2 = ta.ema(ta.ema(xHL,nP), nP)
    UpBand = nBandPct * xVal2 + xVal1
    DnBand = xVal1 - nBandPct * xVal2
    pos := low < DnBand ? 1 : high > UpBand ? -1 : pos[1] 
    pos

strategy(title='Combo 2/20 EMA & Adaptive Price Zone', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Adaptive Price Zone  ═════●'
nPeriods = input(20)
nBandPct = input(2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)

StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAPZ = APZ(nPeriods,nBandPct)
iff_1 = posEMA20 == -1 and prePosAPZ == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAPZ == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Más.