Esta estrategia combina las medias móviles, el MACD y el RSI en múltiples marcos de tiempo para identificar las direcciones de tendencia y negociar las tendencias del índice S&P500.
La media móvil simple de 10 días juzga la tendencia del precio.
El MACD calcula la diferencia entre las medias móviles exponenciales de 12 y 21 días, y el cruce entre la línea MACD y la línea de señal genera señales comerciales.
Se calcula el RSI de 14 días y su MA de 50 días.
Los marcos de tiempo de 1 minuto, 3 minutos y 5 minutos confirman la consistencia de la tendencia.
Cuando el precio cruza por encima del MA de 10 días, el RSI cruza por encima de su MA, y la línea MACD cruza por encima de la línea de señal, se genera una señal de compra.
La combinación de indicadores mejora la precisión de la señal. MA de 10 días juzga la tendencia principal, MACD determina la fuerza del impulso y RSI confirma los niveles de sobrecompra / sobreventa.
La confirmación de múltiples marcos de tiempo evita el ruido del mercado. La confirmación doble en marcos de tiempo de 1 minuto, 3 minutos y 5 minutos garantiza la aparición simultánea de la señal y filtra las señales falsas.
Los patrones gráficos ayudan al juicio visual para la confiabilidad. El análisis gráfico de patrones evita niveles extremos de sobrecompra / sobreventa y reduce los riesgos de pérdida.
La frecuencia media de negociación se adapta a la negociación de índices.
No detectar una reversión abrupta en eventos irracionales. Tal agitación del mercado altera el modelo y debería reducir el tamaño de las posiciones para el control del riesgo.
Configuración de parámetros fijos sin tener en cuenta las condiciones cambiantes del mercado.
Las señales de entrada deben ajustarse con el deslizamiento para mejorar la liquidez ejecutable.
Los marcos de tiempo múltiples aumentan el retraso de la señal. Se requiere un control de riesgos adecuado para minimizar las pérdidas por retraso durante eventos repentinos.
Incorporar mecanismos de stop loss como el stop loss de seguimiento y el stop loss porcentual para controlar la pérdida de una sola operación.
Optimizar los parámetros dinámicos para adaptarse a la evolución de los mercados y mejorar la solidez de la estrategia.
Considerar los cambios en el régimen del mercado derivados de acontecimientos significativos para evitar choques de modelo.
Se deben tener en cuenta los costes de negociación como el deslizamiento y ajustar los puntos de entrada/salida para una mejor ejecución.
Prueba diferentes entradas de precios como el candelero como confirmación de señal para diversificar la validación de marcos de tiempo múltiples.
Utilice algoritmos de aprendizaje automático en grandes volúmenes de datos para automatizar la optimización de estrategias.
Esta estrategia negocia las tendencias del S&P500 de manera efectiva a través de la identificación de tendencias con múltiples indicadores y confirmación de señales a través de marcos de tiempo. Sus fortalezas se encuentran en la alta precisión de la señal y la resistencia al ruido, pero se requiere control de riesgos y ajuste de parámetros dinámicos.
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h 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/ // USE HEIEN ASHI, 1 min, SPX 500 USD OANDA // © connor2279 //@version=5 strategy(title="SPX Strategy", shorttitle="SPXS", overlay=true) //SMA len1 = 10 src1 = input(close, title="SMA Source #1") out1 = ta.sma(src1, len1) plot(out1, title="SMA #1", color=close >= out1 ? color.lime : color.red, linewidth=2) data_over = ta.crossover(close, out1) dataO = close >= out1 data_under = ta.crossunder(close, out1) dataU = close < out1 bgcolor(color=ta.crossover(close, out1) ? color.new(color.lime, 90) : na) bgcolor(color=ta.crossunder(close, out1) ? color.new(color.red, 90) : na) //Norm MacD sma = 12 lma = 21 tsp = 10 np = 50 sh = ta.ema(close,sma) lon= ta.ema(close,lma) ratio = math.min(sh,lon)/math.max(sh,lon) Mac = ratio - 1 if(sh>lon) Mac := 2-ratio - 1 else Mac := ratio - 1 MacNorm = ((Mac-ta.lowest(Mac, np)) /(ta.highest(Mac, np)-ta.lowest(Mac, np)+.000001)*2)- 1 MacNorm2 = MacNorm if(np<2) MacNorm2 := Mac else MacNorm2 := MacNorm Trigger = ta.wma(MacNorm2, tsp) trigger_above = Trigger >= MacNorm trigger_under = Trigger < MacNorm plotshape(ta.crossover(Trigger, MacNorm2), style=shape.triangledown, color=color.red) plotshape(ta.crossunder(Trigger, MacNorm2), style=shape.triangledown, color=color.lime) //RSI / SMA RSI swr=input(true,title="RSI") src = close len = 14 srs = 50 up = ta.rma(math.max(ta.change(src), 0), len) down = ta.rma(-math.min(ta.change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) mr = ta.sma(rsi,srs) rsi_above = rsi >= mr rsi_under = rsi < mr //All buySignal = rsi_above and trigger_under and dataO shortSignal = rsi_under and trigger_above and dataU bgcolor(color=buySignal ? color.new(color.lime,97) : na) bgcolor(color=shortSignal ? color.new(color.red, 97) : na) sellSignal = ta.cross(close, out1) or ta.cross(Trigger, MacNorm2) or ta.cross(rsi, mr) if (buySignal) strategy.entry("LONG", strategy.long, 1) if (shortSignal) strategy.entry("SHORT", strategy.short, 1) // Submit exit orders strategy.close("LONG", when=sellSignal) strategy.close("SHORT", when=sellSignal)