Estrategia de impulso de cruce de tres medias móviles


Fecha de creación: 2023-12-25 12:06:36 Última modificación: 2023-12-25 12:06:36
Copiar: 0 Número de Visitas: 703
1
Seguir
1623
Seguidores

Estrategia de impulso de cruce de tres medias móviles

Descripción general

La estrategia de movimiento de tres líneas cruzadas es una estrategia de indicadores técnicos típica para el seguimiento de las tendencias del mercado. Combina tres medias móviles simples de 16 períodos, 36 períodos y 72 períodos para juzgar la tendencia del mercado a través de sus cruzadas múltiples y cruzadas vacías, y combina las medias móviles de Kaufman como filtro para tomar acciones de más o menos cuando la dirección de la tendencia es más clara.

Principio de estrategia

El indicador central de esta estrategia son las tres medias móviles simples de 16 períodos, 36 períodos y 72 períodos. Cuando la media de los períodos más largos cruza la media de los períodos más cortos, indica que el mercado está en una tendencia alcista; cuando la media de los períodos más largos cruza la media de los períodos más cortos, indica que el mercado está en una tendencia alcista. Por ejemplo, cuando la media de los períodos 36 y 72 cruza la media de los períodos 16 es una señal alcista; y cuando la media de los períodos 36 y 72 cruza la media de los períodos 16 es una señal alcista.

La media móvil de Kaufmann adaptada (KAMA) se usa como filtro para evitar señales erróneas en casos de tendencia incierta. La señal de cruce de línea uniforme se activa y ejecuta solo cuando KAMA está en modo no acelerado o no desacelerado (es decir, en un tramo lineal).

La estrategia consiste en seguir el cruce de las líneas medias y, cuando la tendencia es más clara, realizar operaciones de plus o de brecha. Hacer más es la condición de que el 16 atraviese las líneas medias 36 y 72, y KAMA lineal ((no acelerar); la condición de que el brecha es que el 16 atraviese las líneas medias 36 y 72 por debajo de la línea media, y KAMA lineal ((no disminuir).

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La combinación de líneas medias de varios períodos de tiempo permite un seguimiento eficaz de las tendencias de la línea media larga del mercado
  2. La introducción de las medias móviles adaptativas como filtros reduce las señales erróneas cuando las tendencias no son claras
  3. Operaciones sencillas, fáciles de implementar, adecuadas para operaciones automáticas o programadas

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. En situaciones de convulsión, el cruce de líneas uniformes puede ocurrir con frecuencia, produciendo demasiadas señales no válidas.
  2. No hay un límite de pérdidas, las pérdidas pueden aumentar
  3. El diseño de mercados con alta volatilidad, como las criptomonedas, puede no funcionar bien en mercados con poca volatilidad

Se puede reducir el riesgo ajustando adecuadamente los parámetros de la línea media, estableciendo restricciones de stop loss o utilizando la estrategia solo en mercados con mucha volatilidad.

Dirección de optimización

La estrategia se puede optimizar de la siguiente manera:

  1. Prueba diferentes combinaciones de parámetros de mediana para encontrar el mejor parámetro
  2. Aumentar el volumen de transacciones o el índice de fluctuación como condición de filtración auxiliar
  3. Configuración de un mecanismo de detención de pérdidas
  4. En combinación con otros indicadores para determinar el tiempo de entrada
  5. Optimización de la gestión de posiciones, ajustando el riesgo mediante la adquisición y reducción de posiciones gradualmente

Resumir

La estrategia de la dinámica de la cruz de tres líneas es una estrategia de seguimiento de tendencias más clásica y práctica en general. Se trata de una estrategia de seguimiento de tendencias que determina el movimiento de la línea media a través de la cruz de las líneas medias en varios períodos de tiempo y filtra eficazmente parte del ruido. Puede ser utilizado como uno de los indicadores de referencia para el comercio de tiempo.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef