
Esta estrategia diseña una estrategia de breakout dinámica basada en el indicador de la cinta de Brin. Combina los filtros de entidades de la línea K y los filtros de color para buscar oportunidades de entrada de breakout cerca de la vía inferior de la cinta de Brin. La salida se basa en filtros de entidades.
En primer lugar, la línea de base y la línea descendente de la franja de Brin, calculada en función de los puntos bajos:
src = low
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
donde src es el punto bajo, length es el ciclo de cálculo, base es la línea media, dev es la desviación estándar, y lower es la baja.
En general, mult se establece en 2, lo que significa que la vía inferior tiene una diferencia estándar.
La estrategia incluye dos condiciones de filtrado:
Filtrado de entidad de línea K Usando el tamaño de la entidad nbody y su promedio abody, sólo se produce una señal de transacción cuando nbody es mayor que la mitad de abody.
El color del filtro Cuando la línea K se cierra (closed > open) no se hace más que una sola vez. Esto es para evitar una falsa ruptura en la cabeza de hbox.
Se produce una señal múltiple cuando se cumplen las siguientes condiciones:
low < lower // 价格突破下轨
close < open or usecol == false // 色彩过滤
nbody > abody / 2 or usebod == false // 实体过滤
Cuando el tamaño de la entidad es de nuevo mayor a la mitad de la media, se produce un equilibrio:
close > open and nbody > abody / 2
Las estrategias para calcular automáticamente el número de transacciones y lograr un aumento en el índice:
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
Condiciones de año, mes y día de ingreso, restricción de operaciones dentro de la fecha especificada:
when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
El tren de descenso de Brin es una zona de soporte dinámica que capta oportunidades de rebote después de una tendencia del mercado.
La combinación de la entidad de la línea K y el juicio del color, filtra eficazmente la brecha falsa.
Las posiciones crecen al 100% en el índice y se gestiona automáticamente el riesgo.
Establecer un rango de fechas para reducir el riesgo de fluctuaciones en el mercado en un momento determinado.
Cuando el mercado está en una bull market prolongada, el tren central y el tren superior de Brin se mueven rápidamente, lo que hace que el tiempo de vaciado sea demasiado largo.
Se puede combinar con los indicadores de tendencia, suspender la estrategia cuando la línea media-larga es un mercado alcista, para evitar una posición vacía demasiado larga.
Una vez que el tren se rompe, es posible que se realice un desvío y un nuevo intento de desvío.
Se puede agregar una línea de parada de pérdidas, una parada proporcional debajo del soporte, o se puede agregar una lógica de juicio de reintento fallido, una parada rápida.
De acuerdo con los datos de retrospectiva, establezca una posición de parada por debajo del soporte razonable.
Ajustar el ciclo de abody de los filtros de entidad, el uso de filtros de COLOR, etc.; encontrar la combinación óptima de parámetros.
Aumentar el juicio de tendencia de la línea media y larga, detener la operación de la estrategia cuando se juzgue que es un mercado alcista. Reducir el tiempo de posición vacía.
Esta estrategia, combinada con el soporte de Brin, diseña una lógica estratégica de filtro de entidades, filtro de colores y transacciones de ruptura para buscar oportunidades de rebote de alta probabilidad. En la práctica, se pueden optimizar continuamente los parámetros según los resultados de la retroalimentación y agregar módulos de juicio de stop loss y tendencia para controlar el riesgo y obtener un mejor rendimiento.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
showar = input(false, defval = false, title = "Show Arrows")
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")
//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")
//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false
//Signals
up1 = low < lower and (close < open or usecol == false) and body
exit = close > open and nbody > abody / 2
//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up1
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()