Estrategias de trading automatizado a corto y largo plazo basadas en pivotes diarios


Fecha de creación: 2024-01-23 14:24:22 Última modificación: 2024-01-23 14:24:22
Copiar: 3 Número de Visitas: 709
1
Seguir
1617
Seguidores

Estrategias de trading automatizado a corto y largo plazo basadas en pivotes diarios

Descripción general

La estrategia se basa en el trazado de dos líneas de precios máximos y mínimos de la línea diaria como base para el juicio de la diferencia. Cuando el precio cruza la línea de precios más alta, haga más; cuando el precio cruza la línea de precios más baja, haga menos. Se puede hacer un cambio automático de diferencia.

Principio de estrategia

La estrategia utiliza principalmente los puntos centrales de la línea de sol para determinar el exceso de espacio. Los puntos centrales de la línea de sol son los precios más altos y más bajos de ayer. Estas dos líneas constituyen un intervalo de negociación, y si el precio de hoy supera cualquiera de estos dos puntos, se puede determinar que la tendencia se ha invertido.

En concreto, la lógica principal de la estrategia es la siguiente:

  1. Líneas máximas: trazar la línea horizontal de precios máximos de ayer, si el precio de cierre de hoy rompe la línea es una señal múltiple
  2. Líneas mínimas de precios: trazar la línea horizontal de precios mínimos de ayer, si el precio de cierre de hoy rompe la línea es una señal de cabeza en blanco
  3. Entrada múltiple: abrir más posiciones cuando el precio de cierre cruza la línea más alta
  4. Entrada en blanco: abrir una posición cuando el precio de cierre cruza la línea de precios más baja
  5. Detener: detenerse en varios puntos cerca de la línea de precio más baja, detenerse en blanco cerca de la línea de precio más alta

De esta manera, se captura la tendencia a través de las rupturas entre los precios más altos y más bajos, lo que permite un cambio automático de espacio.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La estrategia es clara, fácil de entender y de implementar
  2. Basado en transacciones de línea diaria, largo ciclo de tiempo, no es fácilmente interrumpido por el ruido de la línea corta
  3. El cambio automático de la bolsa de valores evita al máximo los mercados fuera de tendencia
  4. Los puntos de parada son claros y ayudan a controlar el riesgo

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. El ciclo de las operaciones en línea es largo y no se puede detener a tiempo.
  2. La falsa brecha de la brecha puede causar pérdidas innecesarias
  3. El exceso de tiempo en las posiciones puede aumentar las pérdidas

En cuanto a los riesgos, podemos optimizar en los siguientes aspectos:

  1. Confirmación de la adición de otros indicadores de mayor frecuencia al mismo tiempo que se rompe la línea solar
  2. Optimización de los parámetros que determinan la brecha y filtración de algunas brechas falsas
  3. Detener el daño a tiempo mediante el uso de dispositivos móviles o trailers

Dirección de optimización

La estrategia tiene espacio para ser optimizada aún más:

  1. La estabilidad de la estrategia puede ser verificada con más variedades y datos más largos.
  2. Se puede explorar el uso de otros indicadores de ruptura, como el canal, la banda de Brin, etc.
  3. Se pueden combinar indicadores de volumen de transacciones para evitar grandes brechas
  4. Se pueden agregar más condiciones de filtración para reducir la probabilidad de falsas brechas
  5. Se pueden probar métodos como el aprendizaje automático para optimizar los parámetros

Resumir

En general, la estrategia se basa en una simple idea de eje de línea de sol, que permite la conmutación automática de múltiples espacios. La lógica de la estrategia es clara y fácil de entender, y la optimización puede mejorar aún más la estabilidad. Los inversores pueden elegir los parámetros adecuados para las operaciones de disco físico de acuerdo con sus propias preferencias de riesgo.

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

//Noro
//2019

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

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
showlines = input(true, title = "Show lines")
showbg = input(false, title = "Show background")
showday = input(false, title = "Show new day")
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")

//New day trand
bar = close > open ? 1 : close < open ? -1 : 0
newday = request.security(syminfo.tickerid, 'D', time)

//Lines
uplevel = request.security(syminfo.tickerid, 'D', high)
dnlevel = request.security(syminfo.tickerid, 'D', low)
upcolor = uplevel == uplevel[1] and showlines ? lime : na
dncolor = dnlevel == dnlevel[1] and showlines? red : na
plot(uplevel, offset = 1, linewidth = 2, color = upcolor)
plot(dnlevel, offset = 1, linewidth = 2, color = dncolor)

//Background
size = strategy.position_size
col = time == newday + 86400000 and showday ? blue : showbg and size > 0 ? lime : showbg and size < 0 ? red : na
bgcolor(col)

//Orders
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong ? lot : 0, stop = uplevel, when = truetime)
    strategy.entry("Close", strategy.short, needshort ? lot : 0, stop = dnlevel, when = truetime)