
La estrategia de seguimiento de tendencias de media móvil utiliza una combinación de media móvil simple y media móvil rápida para determinar la dirección de la tendencia del mercado y, a su vez, generar una señal de negociación. Cuando los precios suben a través de la media móvil simple y media móvil rápida, hacen más, y cuando los precios bajan a través de la media móvil simple y media móvil rápida, hacen nada.
La estrategia utiliza la función sma para calcular una media móvil simple de 50 ciclos de duración sma, y una media móvil rápida fsma. La fsma se calcula sobre la base de sma sumando el diferencial estándar de n ciclos de precio 6 veces.
La estrategia utiliza las dos variables booleanas long y short para registrar los estados de venta y venta. Cuando el precio sube por sma y fsma, long se establece como 1, venta; cuando el precio baja, long se establece como -1, venta. Las variables short también utilizan una lógica similar para tratar los estados de venta.
La estrategia utiliza variables de tendencia para registrar los juicios de tendencia. Cuando el precio es superior a fsma y sma, la tendencia es 1, lo que indica una tendencia alcista; cuando el precio es inferior a fsma y sma, la tendencia es -1, lo que indica una tendencia descendente.
En función de la tendencia en tiempo real, se generan señales de operación largas y cortas. Cuando la tendencia cambia de baja a alta, se hace más si el precio es superior a fsma; cuando la tendencia cambia de alta a baja, se hace vacío si el precio es inferior a sma.
El análisis de la estrategia contempla métodos de análisis de tendencias y de ruptura de operaciones que permiten capturar eficazmente las oportunidades de negociación derivadas de cambios de tendencias.
El uso de un modelo de doble confirmación, que detecta dos promedios móviles al mismo tiempo, puede filtrar eficazmente las brechas falsas.
La combinación de un análisis de tendencias y un cambio de tendencia permite capturar oportunidades en los puntos de cambio de tendencia.
Pruebas y optimización sin retroceso, todas las señales de negociación se generan en tiempo real, sin ajuste de curva.
La lógica de la estrategia es simple y clara, fácil de entender y modificar.
Los parámetros de configuración de visualización, los períodos de longitud, los múltiplos, etc. se pueden ajustar según el mercado.
Las estrategias de doble línea son propensas a generar operaciones frecuentes y pérdidas reversibles.
El efecto de retraso de la media móvil en sí misma puede haber perdido la tendencia de cambio.
La falta de un mecanismo de suspensión de pérdidas no permite controlar las pérdidas individuales.
Los parámetros inadecuados pueden causar transacciones demasiado frecuentes o demasiado tardías.
Para los riesgos 1 y 2, se puede extender el ciclo de línea media de manera adecuada y agregar un stop-loss de reversión.
Para el riesgo 3, se puede configurar un stop loss porcentual o un stop loss por suspensión.
Para el riesgo 4, los parámetros deben ajustarse para diferentes mercados, evitando un solo parámetro fijo.
Aumentar las condiciones de filtración de tendencias y usar indicadores de confirmación de tendencias como MACD, DMI y otros.
Los indicadores KD, RSI, etc. se utilizan para entrar en la bolsa en combinación con el exceso de compra y venta.
Aumentar los mecanismos de detención de pérdidas globales, como el seguimiento de las pérdidas, el porcentaje de detención de pérdidas, etc.
Añadir módulos de gestión de posiciones, como el ajuste dinámico del tamaño de la posición.
Optimización de la configuración de los parámetros para adaptarlos de manera más eficiente a diferentes ciclos.
Añadir módulos de aprendizaje automático para optimizar automáticamente los parámetros utilizando tecnología de IA.
Construir estrategias complejas para usar otros indicadores para evitar falsas brechas.
El uso de la tecnología de aprendizaje profundo para identificar patrones de tendencia más complejos.
La estrategia de seguimiento de tendencias de medias móviles es una estrategia de seguimiento de tendencias más simple en general. Utiliza una combinación de medias rápidas y lentas para ayudar a determinar la dirección de la tendencia, cambiar de tendencia en el punto de cambio de tendencia, y puede capturar eficazmente la conversión de la tendencia de precios. Pero la estrategia también tiene algunos problemas, como el comercio frecuente, el riesgo de retraso, etc. La dirección de optimización futura incluye el aumento de filtros de tendencia, módulos de parada de pérdidas, parámetros de ajuste dinámico, etc.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA STRATEGY", shorttitle="SMA TREND", overlay=true, calc_on_order_fills=true)
length = input(title="Length", type=input.integer, defval=50)
src_=input(close, title="Source", type=input.source)
mult=input(6.0, title="Mult")
barc=input(true, title="Use barcolor?")
plots=input(false, title="Show plots?")
tri=input(false, title="Use triangles?")
r(src, n)=>
s = 0.0
for i = 0 to n-1
s := s + ((n-(i*2+1))/2)*src[i]
x=s/(n*(n+1))
x
l=sma(low, length)
h=sma(high, length)
lr= l+mult*r(low, length)
hr= h+mult*r(high, length)
trend=0
trend:=src_ > lr and src_ > hr ? 1 : src_ < lr and src_ < hr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and src_>h)
strategy.entry("Short", strategy.short, when=trend==-1 and src_<l)
long=0
short=0
long:= trend==1 and src_>h ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and src_<l ? 1 : trend==1 ? -1 : short[1]
barcolor(barc? (long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue) : na)
plotshape(tri? close : na, style= shape.diamond, color= long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue, location=location.top)
//shortenter=
a1=plot(plots? l : na, color=color.blue, linewidth=1)
//longenter=
a2=plot(plots? h : na, color=color.blue, linewidth=1)
fill(a1, a2, color=color.blue)
//stopshort=
b1=plot(plots? hr : na, color=color.navy, linewidth=1)
//stoplong=
b2=plot(plots? lr : na, color=color.navy, linewidth=1)
fill(b1, b2, color=color.navy)