Estrategia del indicador PB de cruce de media de bandas de Bollinger


Fecha de creación: 2024-01-17 17:10:53 Última modificación: 2024-01-17 17:10:53
Copiar: 0 Número de Visitas: 661
1
Seguir
1617
Seguidores

Estrategia del indicador PB de cruce de media de bandas de Bollinger

Descripción general

La estrategia determina la relación entre el promedio de PB y la baja de la banda de Brin, y genera una señal de compra y una señal de venta. Cuando el indicador de PB se eleva, se genera una señal de compra; cuando el indicador de PB se eleva, se genera una señal de venta.

Principio de estrategia

El indicador central de la estrategia es el indicador de PB promedio. El indicador de PB promedio combina la estabilidad del sistema de medias y la sensibilidad del indicador de PB, que utiliza la diferencia entre dos medias periódicas diferentes para expresar la tendencia de los cambios en los precios, lo que permite ver la situación de la carencia.

La estrategia también utiliza el indicador de la banda de Brin para determinar las tendencias de sobreventa y sobrecompra en el precio de las acciones. El indicador de la banda de Brin se compone de tres curvas: la media, la media y la media. La media es una media móvil de n días; la media y la media se calculan a través de la media y la tasa de fluctuación histórica.

En resumen, la estrategia utiliza el índice de PB promedio para determinar la tendencia al alza y a la baja de los precios de las acciones, y el índice de Brin para determinar el exceso de compra y venta, buscando puntos de venta y compra en la relación de indicadores combinados, es una estrategia típica de comercio de indicadores numéricos.

Análisis de las ventajas

Las principales ventajas de esta estrategia son:

  1. Utilizando el índice de PB promedio para determinar el cambio de tendencia de los precios de las acciones, alta sensibilidad
  2. Identificación de zonas de sobrecompra y sobreventa con el indicador de las bandas de Brin para mejorar la precisión de la determinación de puntos de compra y venta
  3. La estrategia es simple y fácil de implementar
  4. Los datos de retrospectiva muestran que las ganancias de la estrategia son considerables

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Tanto el promedio PB como el BRI se basan en cálculos de datos históricos y son propensos a generar señales erróneas cuando hay grandes fluctuaciones en el precio de las acciones.
  2. Los indicadores PB y las bandas Brin son sensibles a la configuración de parámetros, y una configuración incorrecta puede causar demasiadas transacciones erróneas.
  3. Durante el período de aplicación de la estrategia, los cambios en el entorno macro pueden tener un gran impacto en los precios de las acciones, como la crisis económica, los cambios en la política, etc., que pueden causar la invalidez de la estrategia

Para los riesgos mencionados anteriormente, se puede evitar el riesgo mediante la configuración de parámetros optimizados, la detención estricta, la consideración de los factores ambientales generales y la supervisión artificial.

Dirección de optimización

La estrategia se puede optimizar en las siguientes áreas:

  1. Optimización de los parámetros del promedio PB y de la banda de Bryn para encontrar la combinación óptima de parámetros
  2. Añadir filtros de otros indicadores, como MACD, KDJ, etc., para mejorar la eficacia de la estrategia
  3. Aumentar los mecanismos de suspensión de pérdidas y controlar las pérdidas individuales
  4. Combinación de indicadores de ciclos temporales más grandes para determinar la dirección general y evitar el comercio en contra

Resumir

La estrategia tiene un buen funcionamiento general, con el índice de PB promedio como núcleo, con el apoyo de la banda de Brin para determinar el punto de compra y venta. La operación es simple, la sensibilidad es alta y el rendimiento de la retroalimentación es excelente. Mediante la configuración de parámetros de optimización continua, la adición de otras medidas de ayuda de indicadores y el estricto cierre de pérdidas, se puede mejorar aún más la rentabilidad y la estabilidad de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BandPass EOS", overlay=false, initial_capital = 1000)

src = input(close, "Source", input.source)
Period1 = input(41, "Fast Period", input.integer)
Period2 = input(54, "Slow Period", input.integer)
showBG = input(false, "Show crosses on background?", input.bool)
UseReversalStop = input(true, "Use additional triggers?", input.bool)

//Super Passband Filter
a1 = 0.0
a2 = 0.0
PB = 0.0
RMS = 0.0
if bar_index > Period1
    a1 := 5 / Period1
    a2 := 5 / Period2
    PB := (a1 - a2) * src + (a2 * (1 - a1) - a1 * (1 - a2)) * src[1] + 
       (1 - a1 + 1 - a2) * nz(PB[1]) - (1 - a1) * (1 - a2) * nz(PB[2])
    for i = 0 to 49 by 1
        RMS := RMS + PB[i] * PB[i]
        RMS
    RMS := sqrt(RMS / 40)
    RMS
z = 0

buy = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
sell = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
signal = buy ? 1 : sell ? -1 : 0
bg = buy ? color.green : sell ? color.red : color.white
bg := showBG ? bg : na
upperFill = PB>RMS ? color.lime : na
lowerFill = PB<-RMS ? color.red : na

p1 = plot(PB,"PB",color.red)
p2 = plot(RMS,"+RMS",color.blue)
p3 = plot(-RMS,"-RMS",color.blue)
bgcolor(bg)
fill(p1,p2,upperFill)
fill(p1,p3,lowerFill)
hline(0)



//PERIOD
testStartYear = input(2018, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true
    
lcolor = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
scolor = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)

c1 = (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
c2 = (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))

plot (c1 ? PB : na, style = plot.style_circles, color = color.red, linewidth = 3)
plot (c2 ? PB : na, style = plot.style_circles, color = color.green, linewidth = 3)

if (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
    strategy.entry("long", strategy.long, when = testPeriod())


if (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
    strategy.entry("short", strategy.short, when = testPeriod())