N Estrategia de ruptura de cierre consecutiva más alta

El autor:¿ Qué pasa?, Fecha: 2023-12-08 10:50:54
Las etiquetas:

img

Resumen general

La lógica central de esta estrategia es detectar si el precio de cierre de N velas consecutivas sigue subiendo. Si es así, ir largo; de lo contrario, posición cerrada. Esto puede capturar la tendencia alcista del precio de las acciones y obtener ganancias.

Principio de la estrategia

El indicador central de esta estrategia es nCounter. Compara el precio de cierre y el precio de apertura de la vela actual para juzgar si el precio aumenta.

Específicamente, si close[1]>=open[1], nCounter agrega 1, lo que indica el aumento; si close[1]

Luego comparar nCounter con el parámetro nLength. Cuando nCounter>=nLength, señal de salida C1=1; de lo contrario C1=0. Aquí nLength es el número de velas ascendentes consecutivas que definimos para generar la señal.

Después de recibir la señal C1=1, si no hay posición actual, ir largo; si ya está en posición larga, seguir manteniendo.

Además, esta estrategia establece condiciones de stop loss y take profit. Si el precio cae por debajo del precio de entrada en un cierto porcentaje, stop loss sale de la posición; si se eleva por encima del precio de entrada en un cierto porcentaje, take profit.

Análisis de ventajas

Esta es una tendencia típica que sigue una estrategia con los siguientes puntos fuertes:

  1. Puede aprovechar las oportunidades de tendencia alcista del precio de las acciones, adecuado como estrategia larga
  2. N subidas consecutivas a medida que la señal de entrada puede filtrar eficazmente la falsa ruptura y reducir las operaciones innecesarias
  3. Establecer el stop loss y el take profit puede limitar el riesgo a la baja y bloquear los beneficios
  4. La lógica es simple y clara, fácil de entender y modificar
  5. La frecuencia de negociación se puede controlar ajustando el parámetro nLength

Análisis de riesgos

Esta estrategia presenta algunos riesgos, principalmente en los siguientes aspectos:

  1. Si la tendencia alcista se invierte, la falta de detener la pérdida a tiempo puede llevar a una gran pérdida
  2. Si el conjunto nLength es demasiado grande, se pueden perder buenas oportunidades de entrada
  3. No tiene en cuenta el entorno del mercado.
  4. El uso de parámetros unificados sin ajustes basados en diferentes características de las poblaciones puede no aplicarse a algunas poblaciones

Para reducir estos riesgos, podemos establecer un stop loss más estricto, optimizar nLength, agregar reglas de condiciones de mercado o probar parámetros por separado para diferentes acciones.

Direcciones de optimización

Teniendo en cuenta los riesgos anteriores, podemos optimizar la estrategia a partir de los siguientes aspectos:

  1. Añadir funciones de stop loss móvil o de stop loss trasero.
  2. Optimizar el parámetro nLength. Prueba respectivamente para diferentes tipos de existencias para averiguar los valores de parámetros más adecuados
  3. Por ejemplo, detener la negociación cuando el mercado cae para evitar pérdidas adicionales en el mercado bajista
  4. Añadir otros factores como el volumen como condiciones auxiliares. por ejemplo, requieren un volumen mayor durante la tendencia alcista para garantizar la validez de la ruptura
  5. Configurar el control de extracción como el porcentaje de pérdida máxima permitida, los tiempos de pérdida máxima consecutiva, etc. para detener la pérdida de control automático de la pérdida total

Conclusión

Esta estrategia captura la tendencia alcista mediante la detección de N velas ascendentes consecutivas. Puede llevar a cabo efectivamente el seguimiento de la tendencia. Las ventajas son la lógica simple, el ajuste flexible de parámetros, el filtrado de la falsa ruptura. Pero también hay algunos riesgos. Necesita agregar módulos como stop loss, optimización de parámetros, juicio del entorno para mejorar. En general, esta estrategia proporciona un modelo básico valioso para la negociación cuantitativa. Puede convertirse en una poderosa herramienta de negociación después de la mejora continua.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Up", shorttitle="NBU Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1,
             iff(close[1] < open[1], 0, nCounter))
C1 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
plot(C1, title='NBU', color=color.green)

Más.