Estrategia de negociación rápida de media móvil triple con retraso bajo

El autor:¿ Qué pasa?, Fecha: 2023-12-25 14:24:38
Las etiquetas:

La estrategia se llama Low Lag Triple Moving Average Fast Trading Strategy. Su idea principal es determinar entradas y salidas basadas en la cruz de oro y la cruz de la muerte de tres promedios móviles con diferentes parámetros y diseño de baja demora.

Principio de la estrategia

La estrategia utiliza tres promedios móviles de bajo retraso, incluyendo TEMA de bajo retraso de 12-, 26-, y 55 períodos. Estos tres MA representan MA rápidos, medios y lentos. Cuando el MA rápido cruza el MA medio, se genera una señal de compra. Cuando el MA rápido cruza por debajo del MA medio, se genera una señal de venta. Al usar el cruce de los tres MA para determinar los puntos de entrada y salida del mercado, se puede lograr el comercio de alta frecuencia.

La función de plantilla tema() se define en el código para calcular el TEMA de bajo retraso. Su fórmula de cálculo es: TEMA = 2 * EMA - EMA(EMA). Utiliza la media móvil exponencial doble EWMA para el cálculo. Esencialmente es una EMA doble suavizada con el mérito principal de reducir en gran medida el efecto de retraso. Por lo tanto, puede responder a los cambios de precios más rápido y mejorar la puntualidad de las señales comerciales.

Específicamente, las reglas de entrada de esta estrategia son: cuando el MA rápido cruza el MA medio y el MA rápido está por encima del MA lento, se genera una señal de compra.

Análisis de ventajas

La mayor ventaja de esta estrategia es que las entradas y salidas se determinan de forma rápida y precisa. El diseño de bajo retraso de los tres MA reduce en gran medida el efecto de retraso para que puedan responder a los cambios de precios rápidamente.

Además, esta estrategia es adecuada para el comercio de alta frecuencia para capturar ganancias de las fluctuaciones de precios a corto plazo.

Análisis de riesgos

El mayor riesgo es que puedan ocurrir cambios de precio a muy corto plazo. Debido a la alta sensibilidad a los cambios de precio del diseño de bajo retraso, algunos mercados pueden experimentar oscilaciones de alta frecuencia.

Además, el comercio de alta frecuencia requiere pagar comisiones relativamente altas y costos de deslizamiento.

Además, esta estrategia requiere que el comerciante tenga fuertes capacidades de monitoreo en tiempo real para actualizar el stop loss y obtener ganancias a tiempo.

Direcciones de optimización

La estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Optimizar los parámetros del período de los tres MA para adaptarse mejor a las diferentes características del mercado.

  2. Añadir indicadores de volatilidad o indicadores de volumen para confirmar las señales y evitar los cambios en los mercados variados.

  3. Incorporar más factores para establecer mecanismos dinámicos de detención de trailers.

  4. Optimizar el tamaño de las posiciones para controlar los riesgos comerciales únicos mediante técnicas de gestión de fondos.

  5. Incorporar algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros de la estrategia.

Conclusión

Esta es una estrategia de comercio rápido de triple promedio móvil de bajo retraso. A través de su diseño de bajo retraso, se pueden lograr entradas y salidas rápidas, lo que es adecuado para el comercio de alta frecuencia para capturar oportunidades a corto plazo. La mayor ventaja de esta estrategia es que su determinación de señales es rápida y precisa. La mayor desventaja es que es propenso a ser golpeado en mercados variados.
[/trans] ¿Qué quieres decir?


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("scalping low lag tema etal", shorttitle="Scalping tema",initial_capital=10000, overlay=true)
mav = input(title="Moving Average Type", defval="temadelay", options=["nkclose", "ema", "emadelay", "fastema", "tema", "temadelay"])
lenb = 3
N = input(8)
K = input(1.2)
fracCap = input(1.0)
in = close + K*mom(close,N)
source = close
length = 8
sigma  = 12.0
offset = 0.9
p = 4
// length = 10
// sigma  = 6.0
// offset = 0.85
tema(src,len) => fastemaOut = 2*ema(src, len) - ema(ema(src, len), len)


a = 0.0
b = 0.0
c = 0.0
if mav == "nkclose"
    a := ema(in, 12)
    b := a[1]
    c := a[2]
if mav == "ema"
    a := ema(close, 12)
    b := ema(close, 26)
    c := ema(close, 55)
if mav == "emadelay"
    a := ema(close, 12)
    b := a[1]
    c := a[2]
if mav == "fastema"
    a := ema(in, 12)
    b := ema(in, 26)
    c := ema(in, 55)
if mav == "tema"
    a := tema(close, 12)
    b := tema(close, 26)
    c := tema(close, 55)
if mav == "temadelay"
    a := tema(close, 12)
    b := a[1]
    c := a[2]

TP = input(200)
SL = input(130)
TS = input(1)
// TP = input(50)
// SL = input(110)
// TS = input(1)

orderSize = floor((fracCap * strategy.equity) / close)
long = cross(a, c) and a > b
short = cross(a, c) and a < b
plot(a, title="12", color=color.red, linewidth=1)
plot(b, title="26", color=color.blue, linewidth=1)
plot(c, title="55", color=color.green, linewidth=1)

strategy.entry("Long", strategy.long, qty=orderSize,  when=long)
strategy.entry("Short", strategy.short, qty=orderSize,  when=short)
// strategy.entry("Long", strategy.long,  100.0, when=long)
// strategy.entry("Short", strategy.short,  100.0, when=short)
// strategy.entry("Long", strategy.long, 100.0, when=long)
// strategy.entry("Short", strategy.short, 100.0, when=short)
// strategy.entry("Long", strategy.long, 1.0, when=long)
// strategy.entry("Short", strategy.short, 1.0, when=short)

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short)
// strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long[1])
// strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short[1])
strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)


Más.