En la carga de los recursos... Cargando...

Estrategia SMA de ruptura del canal

El autor:¿ Qué pasa?, Fecha: 2023-10-23 17:08:51
Las etiquetas:

img

Resumen general

Esta estrategia se basa en la ruptura del canal y utiliza el cruce de la media móvil como señal de salida.

Estrategia lógica

  1. Calcular el máximo máximo y el mínimo mínimo durante ciertos períodos para construir el canal superior e inferior.

  2. Ir largo cuando el precio se rompe por encima del canal superior; ir corto cuando el precio se rompe por debajo del canal inferior.

  3. Calcular las líneas SMA rápidas y lentas.

  4. Si es largo, cierre largo cuando el SMA rápido cruza por debajo del SMA lento; Si es corto, cierre corto cuando el SMA rápido cruza por encima del SMA lento.

Análisis de ventajas

  1. La combinación del canal y del sistema de promedios móviles puede mejorar la rentabilidad.

  2. El canal juzga la rotación y el SMA juzga el agotamiento de la tendencia.

  3. El filtro SMA evita las flechas y reduce las operaciones innecesarias.

  4. El rango de canales ajustable se adapta a diferentes períodos y volatilidad.

Análisis de riesgos

  1. Un rango de canal inadecuado puede fallar o generar un fallo.

  2. Los parámetros de SMA incorrectos pueden salir temprano o tarde.

  3. Necesita un tamaño razonable de posición para limitar la pérdida única.

  4. Esté atento a las fugas válidas, evite perseguir al alza/vender bajo.

Optimización

  1. Parámetros de ensayo para optimizar el rango de canales y los períodos SMA.

  2. Añadir filtro de tendencia para mejorar la tasa de éxito de la ruptura.

  3. Añadir dimensionamiento de posición como fracción fija y Martingale.

  4. Añadir un stop loss para controlar una sola pérdida.

Resumen de las actividades

Esta estrategia capitaliza en el canal y la SMA para lograr ganancias constantes en tendencias fuertes. Pero las pérdidas de la sierra deben evitarse y el tamaño de la posición es crítico.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:00
period: 1m
basePeriod: 1m
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/
// © anshuanshu333

//@version=4

// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
     
fastSMA = sma(close,9)
slowSMA = sma(close,21)

upBound = highest(high, length)
downBound = lowest(low, length)

boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)

u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)

     
if (boundLongEntry )
    strategy.entry("LE", long = true)
    
if (boundShortEntry)
    strategy.entry("SE", long = false)
    
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)

    
//Close TRades   
if (strategy.position_size > 0)
    strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
    strategy.close(id="SE",when= SmaShortExit)

Más.