Estrategias largas y cortas basadas en entidades de la línea K


Fecha de creación: 2023-11-16 17:14:48 Última modificación: 2023-11-16 17:14:48
Copiar: 0 Número de Visitas: 649
1
Seguir
1617
Seguidores

Estrategias largas y cortas basadas en entidades de la línea K

Descripción general

Esta estrategia se basa en la longitud de la entidad de la línea K para juzgar la dirección de la pluralidad de espacios. Se calcula la longitud promedio de los últimos 30 entes de la línea K, se hace más cuando la longitud de la entidad de la línea del sol es mayor que la longitud de la entidad promedio y se hace vacío cuando la longitud de la entidad de la línea del sol es mayor que la longitud de la entidad promedio.

Principio de estrategia

La estrategia primero calcula el cuerpo de la longitud de la entidad de la línea K, y el promedio de la longitud de la entidad de la línea K más reciente de 30 sbody.

Cuando hoy la línea K es la línea negativa ((bar==-1), y la longitud de la entidad es mayor que la longitud promedio de la entidad, abra la opción múltiple ((up1) ).

Cuando la línea K de hoy es la línea de sol ((bar==1), y la longitud de la entidad es mayor que la longitud promedio de la entidad, abra la hoja en blanco ((dn1) ).

Una vez abierta la posición, si la línea K de hoy es la línea de sol ((bar==1) y la posición actual está en estado de ganancia, la posición se cerrará.

Una vez abierta la posición vacía, si la línea K de hoy es la línea negativa ((bar==-1), y la posición actual está en estado de ganancia, entonces la posición vacía está cerrada.

La estrategia utiliza de manera simple y eficaz la longitud de las entidades de la línea K para juzgar la tendencia de la bolsa, la mayor longitud de la entidad indica que la tendencia es más fuerte, por lo tanto, la longitud de la entidad como base para juzgar el exceso de espacio.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La estrategia es simple, clara, fácil de entender y de implementar.

  2. Utiliza la longitud de la entidad de la línea K para determinar la tendencia y evitar la interferencia de ruido.

  3. El cálculo de las medias dinámicas permite adaptarse a los cambios en el mercado.

  4. El establecimiento de condiciones de equilibrio de ganancias puede mejorar la rentabilidad de la estrategia.

  5. Parámetros de estrategia configurables para diferentes entornos de mercado.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Una entidad más larga no necesariamente representa una tendencia fuerte, puede ser una fluctuación normal.

  2. La configuración incorrecta de la ventana de tiempo de la longitud media de la entidad puede causar oportunidades de negociación perdidas.

  3. Los eventos inesperados pueden causar pérdidas estratégicas.

  4. El exceso de tiempo en posiciones abiertas puede aumentar las pérdidas.

Resolvemos el riesgo:

  1. En combinación con otros indicadores para juzgar las tendencias, evitar los errores de trades.

  2. Prueba de diferentes parámetros para optimizar el cálculo de la longitud promedio de la entidad.

  3. Configuración de las condiciones de parada de pérdidas para controlar las pérdidas únicas.

  4. Optimización de la lógica de apertura y cierre de la posición, evitando el prolongado período de tenencia de la misma.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Combina el MACD, el RSI y otros indicadores para determinar la tendencia y evitar señales erróneas debido a las fluctuaciones habituales.

  2. Prueba diferentes parámetros de ventana de tiempo de longitud media de la entidad para encontrar la combinación óptima de parámetros.

  3. Se añade una lógica de control de la apertura de posiciones que reduce gradualmente la apertura de posiciones a medida que aumenta el número de pérdidas.

  4. Establecer condiciones de salida de stop loss móvil o stop loss de la tasa de ganancias y controlar el porcentaje de pérdidas individuales.

  5. Optimización de las condiciones de apertura y negociación de las posiciones, evitando transacciones no válidas. Por ejemplo, 3 entidades de línea K consecutivas son más largas para abrir posiciones.

  6. Evitar el comercio durante un período de tiempo determinado o antes o después de la publicación de datos importantes para controlar las pérdidas causadas por los impactos cambiarios.

Resumir

La idea general de la estrategia es clara y fácil de entender, y el momento de entrada se determina al comparar las entidades de la línea K con su longitud promedio. El espacio para optimizar la estrategia es grande, y se pueden realizar ajustes de optimización desde muchos puntos de vista, lo que hace que los parámetros de la estrategia se ajusten mejor a los diferentes entornos del mercado. En general, la estrategia es lo suficientemente simple y confiable como una estrategia de entrada de comercio cuantitativa, adecuada para que los traders novatos la usen y aprendan.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()