Estrategias comerciales de aprendizaje automático listas para usar


Fecha de creación: 2024-01-29 11:20:42 Última modificación: 2024-01-29 11:20:42
Copiar: 0 Número de Visitas: 723
1
Seguir
1617
Seguidores

Estrategias comerciales de aprendizaje automático listas para usar

Descripción general

Esta estrategia utiliza métodos de aprendizaje automático para implementar una estrategia de negociación automatizada de entrada en el mercado. Integra varios indicadores y modelos que pueden generar automáticamente señales de negociación y realizar operaciones de compra y venta en función de las señales.

Principio de estrategia

La estrategia se basa principalmente en los siguientes puntos:

  1. Utiliza la línea media del casco para determinar la dirección de la tendencia del mercado
  2. EMA para determinar tendencias a corto y medio plazo
  3. Utiliza el canal de la entidad de la línea K para determinar las posiciones clave de SUPPORT/RESISTANCE
  4. Utiliza el precio de apertura y el precio de cierre de SECURITY de varios períodos para tomar decisiones

En concreto, la estrategia traza la línea media del casco, el EMA de 13 y el EMA de 21 ciclos. La dirección de la tendencia a corto y mediano plazo se determina a través de la posición vacía del EMA. La combinación de la línea media del casco con la dirección de la tendencia a períodos más largos proporciona una guía general para las señales de negociación posteriores.

Antes de ajustar la posición, la estrategia se refiere a los niveles de soporte y resistencia correspondientes a los precios más altos y más bajos en el canal de la entidad. Esto evita que se produzcan señales de negociación en áreas de precios clave.

Finalmente, la estrategia llama al precio de apertura y al precio de cierre de 60 ciclos, generando una señal de compra cuando el precio de cierre atraviesa el precio de apertura y una señal de venta cuando se atraviesa. Así se completa toda la lógica de la operación.

Análisis de las ventajas estratégicas

La mayor ventaja de esta estrategia reside en la combinación de indicadores de aprendizaje automático y análisis técnico para lograr un programa de comercio automatizado que sea lógicamente claro, parametrizado y fácil de operar.

  1. Combinación de múltiples indicadores para mejorar la precisión de la señal

La estrategia no depende simplemente de uno o dos indicadores, sino que tiene en cuenta una combinación de factores como tendencias, resistencia de soporte y brechas de precios, lo que mejora considerablemente la fiabilidad y la precisión de las señales.

  1. Ajustes de parámetros flexibles

La longitud de la línea media del casco, el número de ciclos EMA y el número de ciclos de apertura y cierre de la operación se pueden ajustar mediante parámetros, lo que permite que la estrategia se adapte de manera flexible a diferentes entornos del mercado.

  1. Señales de operaciones automáticas

Las señales de transacción basadas en indicadores y precios cruzados pueden activar automáticamente compras y ventas sin necesidad de juicio manual, lo que reduce la dificultad de la operación.

  1. Presentación de las visualizaciones

Los gráficos de la estrategia pueden mostrar claramente la estructura del mercado, el estado de las tendencias y los precios clave, mostrando de manera intuitiva la base de los juicios de la estrategia.

Análisis de riesgos

A pesar de la optimización multifacética de esta estrategia, existen algunos riesgos potenciales:

  1. No se puede seguir a la mayor parte de la población.

En situaciones de fuerte fluctuación de precios, los indicadores pueden fallar o retrasarse, lo que hace que la estrategia no pueda rastrear los cambios de precios a tiempo. Se necesitan parámetros optimizados para adaptarse a esta situación.

  1. La tasa de error de la señal es

Basado en el indicador y el modelo de señales de negociación, más o menos habrá algunos errores o omisiones. Esto requiere mejorar la calidad de la señal mediante la combinación de más señales auxiliares.

  1. Riesgo de una MIX multiespacial

La estrategia de hacer más deuda baja al mismo tiempo, si se hace un error, se corre el riesgo de pérdidas en ambos sentidos. Esto requiere un control estricto de la pérdida de corte o la reducción de la posición.

  1. Riesgo de optimización excesiva

La configuración de los parámetros es demasiado compleja y corre el riesgo de ser optimizada. Esto requiere simplificar el sistema y controlar el número de combinaciones de parámetros.

Dirección de optimización de la estrategia

Esta estrategia tiene cierto margen de mejora, principalmente en los siguientes aspectos:

  1. Añadir más señales de indicadores

Además de los indicadores existentes, se pueden introducir más indicadores auxiliares, como el canal BOLL, el indicador KD, etc., para enriquecer la base de juicio del sistema.

  1. Modelos de aprendizaje profundo

Utilice indicadores simples como características, entrenar modelos de aprendizaje profundo como LSTM para mejorar la calidad de la señal.

  1. Combinado con datos básicos

Añadir factores básicos como datos macroeconómicos, información sobre políticas y otros para optimizar la toma de decisiones en el ciclo macro.

  1. Gestión de riesgos y posiciones

Introducción de estrategias de stop loss, ajuste dinámico del tamaño de las posiciones de acuerdo con la volatilidad de las ganancias de la estrategia, y control estricto del riesgo.

Resumir

Esta estrategia integra varios indicadores, como tendencias, resistencia de soporte y rupturas, para implementar un programa de comercio cuantitativo automático y inmediato utilizando métodos de aprendizaje automático. Tiene ventajas como la diversidad de la cartera de indicadores, la ajustabilidad de parámetros y la automatización de la señal, pero también enfrenta ciertos problemas como el seguimiento de la desviación, el error de la señal y el exceso de espacio MIX.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")

///////////////////////////////////////////////////////////////////////////////////////////