
Esta estrategia utiliza una combinación de indicadores como la línea media, el MACD y el RSI para identificar la dirección de la tendencia en varios marcos de tiempo y permitir el seguimiento de la tendencia en el SPX500.
Utiliza una media móvil simple de 10 días para determinar la dirección de la tendencia de los precios. Cuando el precio cruza la línea de 10 días, mira hacia arriba y mira hacia abajo.
Aplicación de la dinámica de determinación de MACD positiva y negativa. Calcula el diferencial de las medias móviles de los índices de los días 12 y 21, y luego identifica una señal de compra y venta a través de una línea rápida y lenta cruzada por el diferencial de la línea media.
El RSI de 14 días y su línea media de 50 días se calculan, con la línea media en el RSI como señal de tendencia alcista y la línea media en el RSI como señal de tendencia bajista.
La consistencia de la tendencia se confirma con un marco de tiempo de 1, 3 y 5 minutos.
La señal de compra se genera cuando el precio cruza la línea de 10 días por encima, la línea media por encima del RSI y la línea corta por debajo del MACD. La señal de venta se genera cuando el precio cruza la línea de 10 días por debajo, la línea media por debajo del RSI y la línea corta por debajo del MACD.
La combinación de múltiples indicadores identifica tendencias y mejora la precisión de la señal. La línea media de 10 días determina la dirección de la tendencia principal, el MACD determina la fuerza del impulso y el RSI confirma la sobrecompra y la sobreventa. La combinación de indicadores se puede verificar entre sí y reduce las transacciones erróneas.
Confirmación de múltiples marcos de tiempo para evitar ser engañados por el ruido del mercado. Doble verificación de marcos de tiempo de 1 minuto, 3 minutos y 5 minutos, asegúrese de que las señales aparezcan sincronizadas y filtre las falsas señales.
Combinado con la forma de juicio gráfico, es intuitivamente fiable. El gráfico ayuda a juzgar las características de la forma de precio, evita las zonas extremas de los puntos de venta y compra, y reduce el riesgo de pérdidas.
La frecuencia de las operaciones es moderada y se ajusta a las características de las operaciones del índice. Utilizando la línea media de 10 días como principal indicador de evaluación, la frecuencia de las operaciones no es demasiado alta y se evita el pago de costos de operaciones excesivos por operaciones repetidas.
Incapacidad para identificar las rupturas causadas por eventos bruscos. Los eventos irracionales pueden perturbar el juicio del modelo, en este momento se debe reducir el riesgo de evasión de la posición.
La configuración de los parámetros es fija, sin tener en cuenta los cambios en el entorno del mercado. En la práctica, los parámetros deben ajustarse según la dinámica del entorno de la ciudad, para que la estrategia se adapte a una variedad de situaciones.
Los puntos de compra y venta son demasiado idealizados, y su ejecución es difícil. Se debe ajustar el punto de compra y venta para que la señal sea más ejecutable, junto con factores como el costo del punto de deslizamiento.
El marco de tiempo múltiple aumenta la demora en la toma de decisiones. Se debe hacer un buen control del viento en caso de emergencias, para reducir las pérdidas causadas por la demora.
Aumentar los mecanismos de deterioro, como el deterioro móvil, el deterioro porcentual, etc., para controlar la pérdida individual.
Optimizar la configuración de los parámetros para adaptar la dinámica de los parámetros al entorno del mercado y mejorar la estabilidad de la estrategia.
En combinación con el control del viento de los eventos de los puntos calientes del mercado, evita que los eventos importantes afecten a la estrategia.
Tenga en cuenta los costos reales de la transacción, como el punto de deslizamiento, y ajuste el punto de compra y venta para que la señal pueda ejecutarse.
Prueba diferentes métodos de toma de valores, como la línea K, como fuente de confirmación de señales, con una gran cantidad de medios de verificación de marcos de tiempo múltiples.
Aumentar los algoritmos de aprendizaje automático, utilizar modelos de entrenamiento de Big Data y optimizar automáticamente los parámetros de la estrategia.
Esta estrategia permite el seguimiento de la tendencia del índice SPX 500 a través de la identificación de tendencias en varios indicadores y la confirmación de señales en varios marcos de tiempo. La estrategia tiene la ventaja de tener una alta precisión de la señal y una fuerte capacidad de resistencia a la interferencia del ruido, pero debe tener en cuenta el control del riesgo y mantener la optimización dinámica de los parámetros de la estrategia. Como una prueba efectiva de la estrategia de optimización de la media móvil simple, esta estrategia ofrece un buen inicio y una buena referencia para la optimización de la estrategia de negociación cuantitativa.
/*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)