Estrategia de tendencia de media móvil binomial


Fecha de creación: 2023-12-08 14:55:19 Última modificación: 2023-12-08 14:55:19
Copiar: 0 Número de Visitas: 704
1
Seguir
1621
Seguidores

Estrategia de tendencia de media móvil binomial

Descripción general

El promedio móvil binomial (BMA) es un nuevo tipo de promedio móvil. Utiliza la mitad de un factor binomial para calcular el precio promedio, con una forma de cálculo única, una buena fluidez y una gran utilidad.

Esta estrategia combina BMA rápido y BMA lento para formar una señal de negociación similar a la del MACD y pertenece a la estrategia de seguimiento de tendencias. Se puede usar en varios períodos y es adecuada para operaciones de línea media y larga.

Detalles de la estrategia

Nombre de la estrategia

Estrategia de tendencia de promedio móvil binomial

Principio de estrategia

  1. Cálculo de la media móvil binaria ((BMA)). Se calcula el coeficiente binario en función de la longitud de ciclo que el usuario establece, y luego se toma la mitad de su valor como precio promedio ponderado. Por ejemplo, con una longitud de ciclo de 5, se calcula 9 veces el coeficiente binario, tomando la mitad de su promedio ponderado. Esto hace que las líneas K más recientes tengan un mayor peso y una mejor suavidad.

  2. Configuración de un ciclo BMA rápido y un ciclo BMA lento. El BMA rápido es más sensible a los cambios de precios y el BMA lento es más estable. Su cruce genera señales de negociación.

  3. Cuando el BMA rápido atraviesa el BMA lento, haga más; cuando el BMA rápido atraviesa el BMA lento, haga un hueco. Una vez dentro del campo, mantenga la posición hasta que aparezca la señal de reversión.

Análisis de las ventajas

La mayor ventaja de esta estrategia reside en la novedad en la forma en que se calcula el indicador BMA, que aumenta las ventajas de las medias móviles, aumentando la suavidad y la utilidad. En comparación con la EMA y la SMA, la BMA tiene un mayor peso en las líneas K más recientes, al tiempo que conserva más información histórica. Esto le permite capturar mejor las tendencias y generar menos señales falsas.

Además, la combinación de la BMA rápida y lenta aprovecha las ventajas de las medias móviles, que filtran gran cantidad de ruido y generan señales de negociación solo en los puntos de cambio de tendencia. La estrategia en sí es lógica simple, fácil de entender e implementar, adecuada para operaciones de línea media y larga.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Al igual que todas las estrategias de seguimiento de tendencias, es fácil perder cuando la tendencia se invierte. La solución es establecer un stop loss o optimizar los parámetros para que la BMA sea más sensible.

  2. La configuración incorrecta de los parámetros BMA también puede afectar la eficacia de la estrategia. Si el BMA rápido es demasiado sensible, aumentará la señal falsa; Si el BMA lento está demasiado atrasado, puede perderse la oportunidad de tendencia.

  3. Esta estrategia tiene como opción predeterminada el comercio de posiciones completas, que permite la administración de posiciones según las preferencias de riesgo, lo que reduce las pérdidas individuales.

Dirección de optimización

La principal dirección de optimización de la estrategia es la propia BMA y la prueba de los parámetros combinados.

  1. Ajuste de ciclo: prueba diferentes ciclos de BMA rápido y lento para encontrar la combinación óptima de parámetros. Generalmente, los ciclos rápidos están entre 10-30 y los ciclos lentos entre 20-60.

  2. Peso BMA: se puede probar una distribución de peso diferente, es decir, la mitad de la parte completa de la función binomial, o una preferencia por las líneas K más recientes. Esto podría mejorar aún más la suavidad de BMA.

  3. Condiciones de filtrado: Se pueden establecer condiciones de filtrado como ruptura de precios, aumento de volumen de transacciones, para evitar señales no razonables.

  4. Los mecanismos de detención de pérdidas y la administración de posiciones también pueden ser probados para contrarrestar el riesgo.

Resumir

Esta estrategia presenta por primera vez un indicador único de promedio móvil binario, que mejora la forma en que se calcula el promedio móvil, lo que mejora la utilidad y la estabilidad de la estrategia en general. El cruce de BMA rápido y BMA lento genera una señal de negociación simple y efectiva. La estrategia tiene espacio para optimizar aún más los parámetros de suavización y el control de riesgo, y es un conjunto de estrategias de seguimiento de tendencias muy prometedoras.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HosseinDaftary

//@version=4
strategy("Binomial Moving Average","BMA", overlay=true, margin_long=100, margin_short=100 ,max_bars_back=96)
//Binomial Moving Average:This type of moving average that is made by myself and i did not see anywhere before uses the half of binomial cofficients for
//averaging the prices for example if the period be 5 then we use the 9 degree binomial cofficients(that yields 10 cofficients) and use half of them.
//we use 126/256 for last bar,84/256,36/256,9/256 and finally use 1/256 for 5th bar. Seemingly this MA works better than EMA.
fa_ma=input(title='Fast MA',defval=10)
sl_ma=input(title='Slow MA',defval=30)

fac(n)=>
    fact=1
    for i= 1 to n
        fact:=fact*i
    fact
cof= array.new_float(sl_ma) 

hn_ma(price,length)=>
    sum=1.0
    sum1=0.0
    array.set(cof,length-1,1)
    for i=2 to length
        array.set(cof,length-i,fac(2*length-1)/(fac(i-1)*fac(2*length-i)))
        sum:=sum+array.get(cof,length-i)
    for i=0 to length-1
        array.set(cof,i,array.get(cof,i)/sum)
        sum1:=sum1+array.get(cof,i)*price[i]
    sum1
hn1=plot(hn_ma(close,sl_ma) , color=#00ff00)
hn2=plot(hn_ma(close,fa_ma) ,color=#ff0000)
fill(hn1,hn2,color=hn_ma(close,fa_ma)>hn_ma(close,sl_ma)?color.green:color.red)


longCondition = crossover(hn_ma(close, fa_ma), hn_ma(close, sl_ma))
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(hn_ma(close, fa_ma), hn_ma(close, sl_ma))
if (shortCondition)
    strategy.entry("Short", strategy.short)