Estrategia de asesores expertos de 3 minutos

El autor:¿ Qué pasa?, Fecha: 2023-11-24 15:58:01
Las etiquetas:

img

Resumen general

Esta es una estrategia de asesor experto de 3 minutos para futuros (ES) E-mini S&P500. Genera señales comerciales calculando una serie de promedios móviles exponenciales y combinando condiciones específicas de patrón.

Principios

El indicador central de esta estrategia es la línea media T3. El T3 primero calcula un conjunto de promedios móviles exponenciales xe1 ~ x6 basados en el parámetro T3 definido por el usuario. Luego calcula el promedio ponderado de estos EMA utilizando coeficientes específicos como la línea media final T3.

Cuando el precio de cierre está por debajo de la línea promedio T3, se genera una señal de compra. Cuando el precio de cierre está por encima de la línea promedio T3, se genera una señal de venta. Además, la estrategia también juzga patrones de velas específicos como condiciones de entrada suplementarias. Las órdenes de negociación solo se enviarán cuando ambas condiciones de patrón y las señales T3 surjan al mismo tiempo.

Los puntos fuertes

La mayor fortaleza de esta estrategia radica en el diseño de múltiples filtros y la optimización de parámetros. Por un lado, la combinación de filtros de acción de precios y patrones de gráficos puede reducir las operaciones de ruido. Por otro lado, los parámetros clave como T3 y las reglas de evaluación de patrones se pueden optimizar para adaptarse a diferentes mercados y mejorar la precisión de entrada.

En comparación con las medias móviles simples, el mecanismo de triple suavizado del indicador T3 es eficaz para filtrar el ruido del mercado e identificar puntos de inversión de tendencia.

Riesgos y soluciones

Los principales riesgos de esta estrategia provienen del ajuste inadecuado de los parámetros y del período de retención de gran tamaño. Si el parámetro T3 se establece demasiado grande, los indicadores se quedarán atrás del mercado; si se establece demasiado pequeño, aumenta la probabilidad de operaciones de ruido. Además, las operaciones de 3 minutos pueden enfrentar una gran pérdida sin un stop loss oportuno.

Para controlar los riesgos, lo primero es realizar pruebas de retroceso repetidas para determinar el rango óptimo de parámetros para diferentes productos.

Mejoras

Hay varias direcciones para mejorar la estrategia:

  1. Optimizar el parámetro T3 para encontrar el rango óptimo para diferentes instrumentos de negociación

  2. Mejorar la lógica de evaluación de patrones para aumentar la precisión del reconocimiento de patrones

  3. Añadir mecanismos de stop loss más avanzados como el stop loss de seguimiento

  4. Añadir módulo de gestión de dinero basado en el factor de ganancia o extracción máxima

  5. Añadir un módulo de entrada asistida por aprendizaje automático

A través de estas mejoras, la estabilidad y la rentabilidad de la estrategia pueden mejorarse gradualmente.

Conclusión

Como estrategia de trading intradiario a corto plazo, esta estrategia tiene ventajas como un espacio de optimización enorme, múltiples filtros y una ejecución rápida de órdenes.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-23 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ES 3m Short Only (Triple RED)", overlay=true)
// Alert Message '{{strategy.order.alert_message}}'
//3min
T3 = input(150)//to 600

xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)

b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3

// Buy Signal - Price is below T3 Average
buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average

//NinjaTrader Settings.
acct = "Sim101"
ticker = "ES 12-23"
qty = 1
takeProfitTicks = 4
stopLossTicks = 16
tickSize = 0.25

takeProfitShort = close - takeProfitTicks * tickSize
stopLossShort = close + stopLossTicks * tickSize

OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }'

IsUp = close > open
IsDown = close < open
PatternPlot = IsDown[2] and IsDown[1] and IsDown and close[1] <= high[0] and close[1] > close[0] and low[1] > low[0] and high[2] > high[1] and low[2] <= low[1]
if (PatternPlot and sellSignal3)
    strategy.entry('Short', strategy.short, alert_message=OCOMarketShort)
    strategy.exit('Close Short', 'Short', profit=takeProfitTicks, loss=stopLossTicks, alert_message=CloseAll)

//plotshape(PatternPlot, title="Custom Pattern", style=shape.circle, location=location.abovebar, color=color.red, size=size.small)


Más.