Estrategia de trading combinada basada en doble EMA y filtro de paso de banda


Fecha de creación: 2024-01-17 11:22:30 Última modificación: 2024-01-17 11:22:30
Copiar: 0 Número de Visitas: 602
1
Seguir
1617
Seguidores

Estrategia de trading combinada basada en doble EMA y filtro de paso de banda

Descripción general

Esta estrategia combina el uso de dos indicadores, el promedio móvil exponencial dual (DEMA) y el filtro de banda (BPF), para lograr el doble filtrado de la ruptura de la compra y la sobreventa de la sobreventa, formando una señal de negociación estable para maximizar los beneficios.

Principio de estrategia

La estrategia se compone de dos subestrategias:

  1. Estrategias de DEMA

El uso de las medias móviles binarias de 2 y 20 días para formar señales de compra y venta de forquillas de oro. El indicador filtra parte del ruido de los precios y es útil para descubrir tendencias.

  1. Estrategias de la BPF

El indicador BPF combina una transformación matemática para detectar componentes que se mueven en los precios, formando una zona de sobreventa y sobreventa en un período determinado y emitiendo una señal de negociación. Esta estrategia se configura con un período de 20 días y un parámetro de regularización de 0.5.

En combinación, el uso de señales de corto plazo simultáneas indica que la tendencia y los factores periódicos están verificados, por lo que la credibilidad es mayor, lo que genera puntos de entrada y salida más estables.

Análisis de las ventajas

La mayor ventaja de esta estrategia reside en el filtro de doble indicador, que hace que la señal sea más estable y confiable. DEMA suaviza los precios, identifica la dirección de la tendencia; BPF identifica las características del ciclo y determina las áreas de sobreventa y sobreventa. La verificación cruzada de ambos reduce considerablemente la probabilidad de señales falsas generadas por el ruido de los precios y el ajuste periódico.

Además, la estrategia en sí misma no tiene una alta frecuencia de transacción, evitando la pérdida de capital y gastos por exceso de transacción. El tiempo de tenencia de la posición es dominado por la línea media larga, lo que es favorable para evitar el efecto de las fluctuaciones aleatorias.

Análisis de riesgos

El mayor riesgo de esta estrategia reside en la mala interpretación de la situación del mercado. En situaciones de crisis, es fácil generar señales erróneas; cuando la tendencia se invierte, el stop loss puede ser mayor. Además, los problemas de configuración de parámetros también pueden tener un gran impacto en el rendimiento de la estrategia.

Estos riesgos pueden ser controlados y mejorados mediante la optimización de los parámetros de los indicadores, la configuración de paradas de pérdidas y la combinación de otros indicadores. Cuando se determine que el mercado está entrando en una fase de agitación y cambio de manos, se puede considerar la suspensión de la estrategia para evitar la interferencia de situaciones adversas.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización del ciclo de tiempo. Prueba diferentes configuraciones de los parámetros DEMA y BPF para determinar la combinación óptima de ciclos.

  2. Aumentar la configuración del stop loss. Establecer una amplitud de stop loss razonable para evitar la expansión de las pérdidas; Detener adecuadamente, bloquear parte de las ganancias.

  3. Añadir filtros para otros indicadores, como Volumen, MACD, etc., para evitar que la señal sea engañada por una gran cantidad de apuestas de reducción de la posición.

  4. Optimización de la adaptabilidad de los parámetros. Permite que los parámetros de DEMA y BPF se ajusten dinámicamente en función de la última situación del mercado, garantizando la actualidad de los indicadores.

Resumir

La estrategia integra las ventajas de los dos indicadores de doble EMA y BPF, el doble filtrado mejora la calidad de la señal, la búsqueda de la estabilidad de la línea media de ganancias. El riesgo proviene principalmente del error de juicio de la situación del mercado y la configuración inadecuada de los parámetros. A través de la verificación de varios indicadores, la optimización dinámica de los parámetros, etc., la estrategia puede ser más flexible y adaptable, y la rentabilidad es más alta.

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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The related article is copyrighted material from
// Stocks & Commodities Mar 2010
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BPF(Length,Delta,SellZone,BuyZone) =>
    pos = 0.0
    xPrice = hl2
    beta = math.cos(3.14 * (360 / Length) / 180)
    gamma = 1 / math.cos(3.14 * (720 * Delta / Length) / 180)
    alpha = gamma - math.sqrt(gamma * gamma - 1)
    BP = 0.0
    BP := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
    pos:= BP > SellZone ? 1 :
    	   BP <= BuyZone? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bandpass Filter', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Bandpass Filter  ═════●'
LengthBPF = input.int(20, minval=1, group=I2)
Delta = input(0.5, group=I2)
SellZone = input.float(5, step = 0.01, group=I2)
BuyZone = input.float(-5, step = 0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBPF = BPF(LengthBPF,Delta,SellZone,BuyZone)
iff_1 = posEMA20 == -1 and prePosBPF == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBPF == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)