Estrategia de backtesting de bandas de Bollinger basada en medias móviles para traders de tendencias


Fecha de creación: 2023-12-11 13:12:44 Última modificación: 2023-12-11 13:12:44
Copiar: 0 Número de Visitas: 593
1
Seguir
1621
Seguidores

Estrategia de backtesting de bandas de Bollinger basada en medias móviles para traders de tendencias

Descripción general

La idea principal de esta estrategia es utilizar las medias móviles y las bandas de Brin para juzgar la tendencia de los precios y generar señales de negociación. En concreto, primero se calcula el rango de fluctuación real promedio ATR de un período determinado, y luego se obtiene el canal de restricción combinado con los precios más altos y más bajos. Si el precio rompe el canal, el precio de cierre es igual al precio del canal.

Principio de estrategia

La estrategia primero calcula el rango de fluctuación del ATR, luego se combina con el precio más alto y el precio más bajo, para obtener el canal de restricción. El precio de cierre solo se limita al precio de canal cuando el precio rompe el canal. Luego, se busca una media móvil para el precio de cierre después de la restricción, que se conoce como la media de los operadores de tendencia (Trend Trade AVR).

La estrategia se basa en el promedio de los operadores de tendencias, que refleja la dirección de la tendencia a medio y largo plazo. El papel de las bandas de Brin es filtrar algunas brechas falsas, lo que hace que las señales de negociación sean más fiables. La estrategia completa combina el seguimiento de la tendencia y el juicio de la ruptura, formando un sistema de tendencias más fuerte.

Ventajas estratégicas

  1. El uso de ATR en combinación con los precios más altos y más bajos para crear canales para seguir eficazmente las fluctuaciones del mercado
  2. Tendencias de largo plazo con claridad en las medias de los operadores de tendencias
  3. Brin ha logrado un falso avance para mejorar la calidad de la señal.
  4. El sistema en su conjunto refleja una fuerte tendencia, con buenas ganancias en el largo plazo

Riesgo estratégico

  1. Las tenencias a medio y largo plazo pueden tener grandes pérdidas por eventos inesperados
  2. La configuración inadecuada de los parámetros puede causar una mayor frecuencia de transacciones, aumentando los costos de transacción y la pérdida de puntos de deslizamiento.
  3. El efecto es altamente correlacionado con la configuración de los parámetros y necesita ser ajustado para encontrar el parámetro óptimo

Respuesta:

  1. Reducir adecuadamente el período de tenencia de posiciones y detener los pérdidas a tiempo
  2. Parámetros de optimización para que la señal tenga un cierto buffer
  3. Utiliza datos históricos y parámetros de optimización del disco duro

Dirección de optimización de la estrategia

  1. Estudiar con más detalle los diferentes parámetros de ciclo en diferentes mercados
  2. Si la prueba puede añadir otros indicadores para filtrar falsos avances
  3. Tratar de controlar las pérdidas individuales con una estrategia de stop loss

Resumir

La estrategia en su conjunto es un sistema de seguimiento de tendencias más robusto. Puede juzgar las tendencias del mercado en la línea media y larga y, en combinación con las bandas de Brin, generar señales de comercio.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")