Estrategia de seguimiento de tendencia de canal de media móvil de períodos múltiples


Fecha de creación: 2024-02-20 13:45:42 Última modificación: 2024-02-20 13:45:42
Copiar: 2 Número de Visitas: 607
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencia de canal de media móvil de períodos múltiples

Descripción general

La estrategia es una estrategia de oscilación que se aplica a mercados de tendencia como las criptomonedas y las acciones, y utiliza un marco de tiempo más grande, como 8 horas. La estrategia utiliza varios promedios móviles, incluidos SMA, EMA, VWMA, ALMA, SMMA, LSMA y VWMA, que se aplican a los máximos y mínimos respectivamente, formando dos canales de promedios.

Hacer más cuando el precio de cierre es superior al promedio aplicado a los puntos altos; hacer menos cuando el precio de cierre es inferior al promedio aplicado a los puntos bajos.

Principio de estrategia

La estrategia utiliza 7 diferentes indicadores de promedios móviles, incluidos SMA, EMA, VWMA, ALMA, SMMA, LSMA y VWMA. Estos promedios móviles se aplican respectivamente al precio más alto y al precio más bajo de la línea K, generando dos promedios.

El promedio que se aplica al precio más alto se denomina avg_high y el promedio que se aplica al precio más bajo se denomina avg_low. Los dos promedios forman un canal.

Cuando el precio de cierre es mayor que el avg_high, se hace más; cuando el precio de cierre es menor que el avg_low, se hace más.

La línea de parada es avg_low y la línea de parada es el precio de apertura.(1+tp_long); cuando se hace un espacio libre, el límite de pérdida es avg_high y el límite de pérdida es el precio de apertura(1-tp_short)。

Análisis de las ventajas

La mayor ventaja de esta estrategia consiste en la utilización de varios indicadores de media móvil para aumentar la probabilidad de obtener ganancias. Los indicadores de media móvil de diferentes períodos y métodos de cálculo reaccionan a los precios de manera diferente, y en combinación pueden formar una señal de negociación más confiable.

Otra ventaja es que se trata de una estrategia de canal. El canal ascendente y descendente limita el alcance del stop loss, reduce el riesgo y es más adecuado para la estrategia de swing.

Análisis de riesgos

La estrategia tiene dos riesgos principales:

  1. Se utilizan varias combinaciones de indicadores de promedios móviles, la configuración de los parámetros es más compleja y requiere una gran cantidad de pruebas y optimización para encontrar la combinación de parámetros óptima.

  2. La estrategia es propensa a generar pérdidas y señales de negociación con múltiples brechas no efectivas en mercados de tendencia horizontal y no clara.

Para reducir estos riesgos, es necesario elegir las variedades de operaciones que muestran una tendencia clara, al mismo tiempo que se realiza una gran cantidad de retroalimentación y optimización de la combinación de parámetros para encontrar la configuración de parámetros que mejor se adapte a las condiciones actuales del mercado.

Dirección de optimización

La estrategia también necesita ser optimizada en los siguientes aspectos:

  1. Prueba más tipos de medias móviles para encontrar mejores combinaciones. Puedes considerar SMA, EMA, KAMA, TEMA, etc.

  2. Optimización de parámetros para la longitud de las medias móviles y la anchura de los canales para encontrar la configuración óptima de los parámetros.

  3. Prueba diferentes configuraciones de stop loss. Se puede considerar trailing stop o stop loss dinámico.

  4. Combine los indicadores de tendencia para evitar el comercio frecuente en mercados sin tendencias claras, como ADX, ATR, etc.

  5. Optimización de la lógica de entrada y salida, configuración de condiciones de filtro adicionales y reducción de transacciones no válidas.

Resumir

La estrategia es una estrategia de seguimiento de tendencias de swing que mejora la probabilidad de obtener ganancias a través de varios indicadores de medias móviles y reduce el riesgo mediante el uso de canales ascendentes y descendentes. La estrategia se aplica a las variedades de operaciones con tendencias evidentes y es más eficaz después de optimizar los parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 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/
// © exlux99

//@version=4

strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//////
length_ma= input(defval=12, title="Length Moving averages", minval=1)

////////////////////////////////SETUP///////////////////////////////////////////

sma_high   = sma(high, length_ma)
ema_high   = ema(high, length_ma)
wma_high   = wma(high, length_ma)
alma_high  = alma(high,length_ma, 0.85, 6)
smma_high = rma(high,length_ma)
lsma_high = linreg(high, length_ma, 0)
vwma_high = vwma(high,length_ma)



avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7

///////////////////////////////////////////

sma_low   = sma(low, length_ma)
ema_low   = ema(low, length_ma)
wma_low   = wma(low, length_ma)
alma_low  = alma(low,length_ma, 0.85, 6)
smma_low = rma(low,length_ma)
lsma_low = linreg(low, length_ma, 0)
vwma_low = vwma(low,length_ma)



avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7

////////////////////////////PLOTTING////////////////////////////////////////////


plot(avg_high , title="avg", color=color.green, linewidth = 4)
plot(avg_low , title="avg", color=color.red, linewidth = 4)

long= close > avg_high
short = close < avg_low

tplong=input(0.06, title="TP Long", step=0.01)
sllong=input(0.05, title="SL Long", step=0.01)

tpshort=input(0.045, title="TP Short", step=0.01)
slshort=input(0.05, title="SL Short", step=0.01)

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
    strategy.close("long", when=crossunder(low,avg_low))
    
    
    strategy.entry("short",0,when=short)
    strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")
    strategy.close("short",when=crossover(high,avg_high))