
La estrategia de inversión de filtro de banda ancha es una estrategia de negociación de acciones basada en un filtro de banda ancha. Simula un filtro de banda ancha mediante la construcción de una función cos y sine y genera una señal de compra y venta. La estrategia se invierte cuando la salida del filtro está por encima o por debajo de un determinado nivel de activación, es decir, compra o venta.
El núcleo de esta estrategia es construir un filtro de banda ancha BP, que consta de dos parámetros: la frecuencia central y la ancho de banda. La frecuencia central determina el ciclo principal por el que pasa el filtro, y el ancho de banda determina el rango de ciclo por el que pasa. Estos parámetros determinan las características de transmisión del filtro.
En concreto, la estrategia se basa en las siguientes variables:
De acuerdo con estas variables, la estrategia construye un filtro IIR (respuesta de pulso ilimitada) de una etapa:
BP = 0.5(1 - alpha)(xPrice - xPrice[2]) + beta*(1 + alpha)*nz(BP[1]) - alpha*nz(BP[2])
Cuando la BP está por encima o por debajo del TriggerLevel, la estrategia opera en sentido inverso.
Las principales ventajas de esta estrategia son:
La estrategia también tiene sus riesgos:
Para reducir estos riesgos, los siguientes métodos de optimización pueden ser considerados:
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Adaptación de los parámetros y ciclos: ajuste en tiempo real de los parámetros como Length, Delta, etc., de acuerdo con la evolución de los precios en diferentes ciclos y en la ventana de tiempo más reciente, para que el filtro se adapte dinámicamente a los cambios en el entorno del mercado.
Juzga de tendencias: los indicadores técnicos MACD, MA, etc. se incluyen en la dirección de la tendencia sobre la base de filtros de fluctuación, evitando la apertura de posiciones contrarias.
Combinación de múltiples marcos de tiempo: implementación de estrategias en varios marcos de tiempo (por ejemplo, 5 minutos, 15 minutos, 30 minutos, etc.), verificación de señales entre diferentes marcos de tiempo, mejora de la precisión de la señal.
Mecanismo de parada de pérdidas: establezca una posición de parada razonable, cierre de posición activo después de que las pérdidas alcancen el punto de parada de pérdidas y controle eficazmente el tamaño de las pérdidas individuales.
La estabilidad, adaptabilidad y rentabilidad de las estrategias se pueden mejorar considerablemente mediante la optimización de los puntos anteriores.
La estrategia de reversión de las ondas de filtro de banda ancha es una estrategia de reversión de corto plazo de los precios mediante la construcción de filtros de banda ancha, la extracción de señales de frecuencia media útiles y la operación inversa cuando los filtros emiten niveles de activación. La estrategia es relativamente simple y se puede adaptar a una variedad de entornos de mercado a través de la optimización de parámetros. Las principales direcciones de optimización incluyen la adaptación de filtros, tendencias, juicios, combinaciones de marcos temporales múltiples y mecanismos de parada de pérdidas.
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/11/2016
// The related article is copyrighted material from
// Stocks & Commodities Mar 2010
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Bandpass Filter Reversed Strategy")
Length = input(20, minval=1)
Delta = input(0.5)
TriggerLevel = input(0)
xPrice = hl2
hline(TriggerLevel, color=blue, linestyle=line)
beta = cos(3.14 * (360 / Length) / 180)
gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
BP = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
pos = iff(BP > TriggerLevel, -1,
iff(BP <= TriggerLevel, 1, nz(pos[1], 0)))
if (pos == 1)
strategy.entry("Long", strategy.long)
if (pos == -1)
strategy.entry("Short", strategy.short)
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(BP, color=red, title="Bandpass Filter Strategy")