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.
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.
Esta es una tendencia típica que sigue una estrategia con los siguientes puntos fuertes:
Esta estrategia presenta algunos riesgos, principalmente en los siguientes aspectos:
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.
Teniendo en cuenta los riesgos anteriores, podemos optimizar la estrategia a partir de los siguientes aspectos:
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)