Estrategia de negociación de impulso del sistema de doble vía

El autor:¿ Qué pasa?, Fecha: 2023-11-22 15:26:28
Las etiquetas:

Resumen general

Esta estrategia combina los indicadores MACD y Stoch RSI para construir un sistema de negociación de doble carril para el seguimiento de tendencias y el juicio de sobreventa / sobrecompra.

Principio de la estrategia

La estrategia combina los indicadores MACD y Stoch RSI, que son diferentes tipos de indicadores técnicos, para su configuración.

La estrategia primero construye los indicadores MACD y Stoch RSI en los marcos de tiempo diarios y de 4 horas respectivamente para los juicios de tendencia y sobrecompra / sobreventa.

Específicamente, el indicador MACD está construido con las líneas DIF y DEA formando cruces doradas/muertas para el juicio; el indicador Stoch RSI está construido con las líneas K y D formando cruces doradas/muertas para el juicio.

Por lo tanto, mediante la aplicación integral del sistema de indicadores duales y los juicios de marcos de tiempo múltiples, la estrategia juzga a fondo la velocidad de los precios y la fortaleza relativa, lo que ayuda a mejorar la precisión de las decisiones y obtener mejores rendimientos.

Análisis de ventajas

Esta estrategia tiene las siguientes ventajas:

  1. Combinando el sistema de dos indicadores para un juicio exhaustivo y una mayor precisión de la decisión
  2. Aplicación de marcos de tiempo múltiples para reducir la probabilidad de error de juicio
  3. Adopción del seguimiento de tendencias y el juicio de sobrecompra/sobreventa para tener en cuenta tanto la velocidad de los precios como la fortaleza relativa
  4. Parámetros de indicadores flexibles ajustables para diferentes productos y entornos de mercado
  5. Estructura de código limpia fácil de entender y ampliar

Análisis de riesgos

También hay algunos riesgos con esta estrategia:

  1. Existen riesgos sistémicos de mercado que no se pueden evitar por completo
  2. La regulación incorrecta de los parámetros del indicador puede dar lugar a un exceso de operaciones o a oportunidades perdidas
  3. Los indicadores duales pueden seguir dando señales erróneas simultáneas, pero con menos probabilidad que los únicos
  4. Incapaz de hacer frente a cambios drásticos del mercado como los eventos del cisne negro

Contramedidas:

  1. Optimizar los parámetros y ajustar las condiciones de negociación para reducir los errores de evaluación
  2. Incorporar más indicadores para juicios combinados
  3. Mecanismos de stop loss para controlar el riesgo de pérdida única

Direcciones de optimización

Esta estrategia también puede mejorarse en los siguientes aspectos:

  1. Incorporar más indicadores en las estrategias de múltiples indicadores
  2. Añadir algoritmos de aprendizaje automático para la optimización de parámetros dinámicos
  3. Combinar indicadores de sentimiento, noticias, etc. para obtener juicios más completos sobre la situación del mercado
  4. Añadir estrategias de stop loss, tomar ganancias para optimizar la gestión del dinero
  5. Ampliarse a más productos comerciales para descubrir mejores oportunidades

Conclusión

Al combinar el sistema de indicadores duales y los juicios de múltiples plazos, esta estrategia juzga la velocidad de precios y la fuerza relativa a fondo, lo que puede capturar eficazmente las tendencias del mercado y mejorar las deficiencias de indicadores individuales. También tiene ventajas como la sintonización flexible de parámetros, comprensión y expansión fáciles. ¿Qué quieres decir?


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

//@version=2
strategy(title='[RS]Khizon (UWTI) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:',  defval=12)
macd_slow = input(title='MACD Slow Length:',  defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:',  defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:',  defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:',  defval=14)
srsi_smooth = input(title='SRSI Smoothing:',  defval=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, defval=true)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('USOIL', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('USOIL', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not h4_trigger
strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)


Más.