Estrategia de ruptura continua de máximos


Fecha de creación: 2023-12-08 10:50:54 Última modificación: 2023-12-08 10:50:54
Copiar: 2 Número de Visitas: 582
1
Seguir
1621
Seguidores

Estrategia de ruptura continua de máximos

Descripción general

La lógica central de esta estrategia es detectar si el precio de cierre de la línea K de raíz N consecutiva ha aumentado continuamente, si es así, haga más; si no es satisfactorio, ponga en pie. De esta manera, se puede capturar la tendencia al alza del precio de las acciones y obtener ganancias.

Principio de estrategia

El indicador central de la estrategia es el nCounter, que determina si el precio ha subido comparando el precio de cierre y el precio de apertura de la línea K actual.

En concreto, si el “close”[1]>=open[1], entonces nCounter más 1, para el aumento; si close[1]

Luego comparamos el nCounter con el parámetro nLength, y cuando nCounter>=nLength, la señal de salida es C1=1; de lo contrario, C1=0。 Aquí el nLength es el número de líneas K que necesitamos definir para generar la señal。

Después de recibir la señal de C1=1, si no tiene una posición en ese momento, ejecuta más; si ya tiene una posición en ese momento, continúe manteniéndola.

Además, la estrategia también establece condiciones de stop loss y stop-loss. Si el precio está por debajo de una cierta proporción del precio de entrada, se detiene la posición de equilibrio; si es superior a una cierta proporción del precio de entrada, se detiene.

Análisis de las ventajas

Esta es una estrategia de seguimiento de tendencias bastante típica, que tiene las siguientes ventajas:

  1. Las oportunidades para aprovechar las tendencias al alza de los precios de las acciones se adaptan a la aplicación de estrategias multinivel.
  2. La raíz N sigue subiendo como señal de entrada, filtrando efectivamente las brechas falsas y reduciendo las transacciones innecesarias
  3. Establece condiciones de stop loss y stop-loss para limitar el riesgo de caída y bloquear los beneficios
  4. La lógica de la estrategia es simple y clara, fácil de entender y modificar
  5. Se puede controlar la frecuencia de las transacciones ajustando el parámetro nLength

Análisis de riesgos

La estrategia también tiene algunos riesgos, que se centran en los siguientes aspectos:

  1. Si la tendencia al alza se invierte y no se detiene a tiempo, puede haber grandes pérdidas
  2. Los parámetros de nLength son demasiado grandes y se puede perder una mejor oportunidad de entrada
  3. Sin tener en cuenta el entorno de los mercados masivos, los titulares de posiciones múltiples son vulnerables a la caída de los mercados masivos
  4. No hay parámetros adaptados a las características de las diferentes acciones, el uso de parámetros uniformes puede no ser aplicable a algunas acciones

Para reducir estos riesgos, podemos establecer condiciones de stop loss más estrictas, optimizar los parámetros de nLength, agregar reglas de juicio de la bolsa grande o probar parámetros separados para diferentes acciones. Por supuesto, cualquier estrategia es difícil de evitar por completo las pérdidas y debe coincidir con las preferencias de riesgo de los comerciantes.

Dirección de optimización

Teniendo en cuenta los riesgos mencionados, podemos seguir optimizando la estrategia en los siguientes aspectos:

  1. Incorporar la función de parada móvil o seguimiento de la parada. Esto puede ajustar la posición de parada en tiempo real según los cambios en los precios, reduciendo el riesgo de pérdidas
  2. Optimización de los parámetros de nLength. Se pueden probar diferentes tipos de acciones para encontrar los valores de los parámetros más adecuados para cada tipo de acción
  3. Aumentar el juicio del entorno de la bolsa. Por ejemplo, suspender la negociación cuando la bolsa cae, para evitar pérdidas adicionales causadas por operaciones de contrabando.
  4. Otros factores como el aumento de la cantidad de transacciones como condición auxiliar. Por ejemplo, el aumento de la cantidad de transacciones durante el proceso de adicción es requerido para asegurar la efectividad de la ruptura.
  5. Configuración de controles de reversión, como el máximo porcentaje de pérdidas permitidas, el máximo número de pérdidas consecutivas, etc., para controlar automáticamente las pérdidas totales

Resumir

La estrategia capta la tendencia de la subida mediante la detección de N raíces de subidas continuas de la línea K. La estrategia permite un seguimiento de tendencias eficaz. La ventaja es la simplicidad lógica, la flexibilidad de ajuste de parámetros y la posibilidad de filtrar falsos rebotes. Pero también existe un cierto riesgo, que requiere la adición de módulos como el stop loss, la optimización de parámetros y el juicio ambiental para mejorar la estrategia.

Código Fuente de la Estrategia
/*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)