La estrategia de escape de Noro v1.0

El autor:¿ Qué pasa?, Fecha: 2023-09-21 15:09:43
Las etiquetas:

Resumen general

Esta estrategia opera basándose en las rupturas de precios más allá de los extremos recientes.

Cómo funciona

  1. Calcular el máximo máximo máximo y el mínimo mínimo dnex durante N períodos.

  2. Ir largo cuando el precio se rompe por encima de lo máximo.

  3. Ir corto cuando el precio se rompe por debajo de dnex.

  4. Configurable sólo para largo, sólo para corto o para ambas direcciones.

  5. Tasa de utilización del capital configurable.

  6. Intervalo de tiempo de negociación configurable.

Ventajas

  • Captura señales de ruptura, bueno para el comercio de tendencias
  • Reglas sencillas e intuitivas, fáciles de aplicar
  • Configuración direccional se adapta a diferentes mercados
  • Puede limitar el rango de tiempo de negociación
  • Control de la utilización del capital

Los riesgos

  • Incapaz de filtrar las falsas fugas de manera efectiva
  • El comercio bidireccional aumenta los costes
  • La alta utilización del capital aumenta el riesgo

Direcciones de optimización

  • Añadir validación para evitar errores
  • Optimizar el valor de N para un rendimiento óptimo
  • Filtros adicionales para las señales de pantalla
  • Prueba de diferentes tasas de utilización del capital
  • Número límite de operaciones por día

Conclusión

La estrategia sigue las tendencias utilizando señales de ruptura de precios. Mejorar la validez de la ruptura y los parámetros de ajuste puede mejorar el rendimiento. Pero se deben abordar las rupturas falsas y los controles de riesgo. En general, una solución de negociación de tendencias simple y efectiva.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Brakeout Strategy v1.0", shorttitle = "Brakeout str 1.0", 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
showlines = input(true, defval = true, title = "Show Lines?")
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")

//Extremums
upex = highest(high, len)
dnex = lowest(low, len)
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[len]))
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = upex + syminfo.mintick)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = dnex - syminfo.mintick)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Más.