Estrategia de media móvil de doble vía alcista-bajista


Fecha de creación: 2023-11-06 16:25:01 Última modificación: 2023-11-06 16:25:01
Copiar: 1 Número de Visitas: 649
1
Seguir
1621
Seguidores

Estrategia de media móvil de doble vía alcista-bajista

Descripción general

Esta estrategia utiliza un promedio de movimiento de piedra como indicador técnico principal, en combinación con el doble carril de Brin, una estrategia de ruptura para identificar las tendencias del mercado. Mira hacia abajo cuando el precio se rompe en el carril de Brin y mira hacia arriba cuando el precio se rompe en el carril de Brin.

Principio de estrategia

  1. Calculación de la media móvil de los fragmentos ((CBMA): La media móvil de los fragmentos planos adaptados a la EMA permite un seguimiento eficaz de los cambios en los precios.

  2. Configuración de los parámetros de la banda de Bryn: toma el promedio móvil de la roca como trayectoria media, y la trayectoria superior y inferior adopta la configuración estándar de la diferencia de los múltiplos de estómago, que se puede ajustar según el mercado.

  3. Trataciones de ruptura: mira hacia arriba cuando el precio rompe la línea de arriba, mira hacia abajo cuando rompe la línea de abajo, utiliza la estrategia de seguimiento de la tendencia del breaker.

  4. El modelo de cancelación de pedidos de relámpagos es un sistema de transacción unidireccional.

  5. Establece un volumen de operaciones fijo que se puede ajustar según el capital.

Análisis de las ventajas

  1. La media móvil de las piedras preciosas es muy suave y permite un buen seguimiento de los precios.

  2. La adaptación al algoritmo EMA optimiza el tiempo real de las medias móviles.

  3. Brin, con la señal de la dirección de la ruptura, subió y bajó de la vía.

  4. En la actualidad, el uso de la tecnología Whipsaw es una de las formas más comunes de hacer un seguimiento de tendencias.

  5. El volumen fijo de transacciones puede controlar una sola pérdida.

Análisis de riesgos

  1. La configuración de los parámetros de la banda de Brin necesita ser optimizada, y hay problemas con amplitudes demasiado grandes o demasiado pequeñas.

  2. La señal de ruptura puede dar lugar a una falsa ruptura.

  3. Se debe establecer un stop loss para controlar las pérdidas.

  4. El volumen fijo no puede ser ajustado por el mercado.

  5. No se puede ganar mucho más si se hace un solo trato.

Dirección de optimización

  1. Optimización dinámica de los parámetros de la franja de Brin para adaptarla a las condiciones del mercado.

  2. Se añaden más indicadores para filtrar las olas y evitar falsas rupturas.

  3. Acompañar el seguimiento del stop loss para bloquear el beneficio.

  4. El objetivo es que los inversores de los países en desarrollo puedan hacer negocios de cobertura y obtener mayores ganancias al mismo tiempo.

  5. Unirse al sistema de gestión de posiciones.

Resumir

Esta estrategia es una estrategia de seguimiento de tendencias de breaker, que utiliza indicadores tecnológicos de medias móviles adaptables, combinados con dos vías de Brin. La estrategia es simple y fácil de operar, el volumen de operaciones fijas puede controlar el riesgo y tiene un cierto valor en el mercado. Pero también hay algunos problemas, como brechas falsas y optimización de parámetros, que requieren optimización mediante la adición de más indicadores tecnológicos, al mismo tiempo que controla el riesgo y mejora aún más la efectividad de la estrategia en el mercado.

Código Fuente de la Estrategia
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB", 
   overlay=true )


length = input(title="Length", type=input.integer, defval=12, minval=1)
regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false)
src = input(title="Source", type=input.source, defval=close)
mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1)
emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1)
emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1)
highlight = input(title="Highlight On/Off", type=input.bool, defval=true)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//strategy.risk.max_drawdown(50, strategy.percent_of_equity)

calc_hma(src, length) =>
    hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
    hullma

calc_cbma(price, length, emaLength, emaGainLimit) =>
    alpha = 2 / (emaLength + 1)
    ema = ema(price, emaLength)
    int leastError = 1000000
    
    float ec = 0
    float bestGain = 0
    
    for i = emaGainLimit to emaGainLimit
        gain = i / 10
        ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
        error = price - ec
        if (abs(error) < leastError)
            leastError = abs(error)
            bestGain = gain
    
    ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
    hull = calc_hma(price, length)
    
    cbma = (ec + hull) / 2
    cbma

cbma = calc_cbma(src, length, emaLen, emaGL)
basis = regular ? sma(src, length) : cbma
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red)
plot(basis, color=cbmaColor)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

if (crossover(src, lower))
    strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE")
else
    strategy.cancel(id="CBMA_BBandLE")

if (crossunder(src, upper))
    strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE")
else
    strategy.cancel(id="CBMA_BBandSE")