Esta estrategia combina indicadores de promedio móvil, índice de fuerza relativa (RSI) y patrones de engulfing para realizar operaciones largas y cortas en oro.
La estrategia toma decisiones comerciales basadas en los siguientes aspectos:
El cruce de la media móvil
El cruce entre MA de 21 días y MA de 200 días se utiliza como el indicador principal para determinar la inversión de tendencia.
Indicador del RSI
El RSI debe estar por debajo del nivel de sobrecompra para la señal larga y por encima del nivel de sobrecompra para la señal corta, para evitar los picos de compra y los valles de venta.
Confirmación del patrón de engullida
El patrón de engulfing alcista es necesario para la señal larga cuando ocurre la cruz de oro. el patrón de engulfing bajista necesario para la señal corta cuando ocurre la cruz de muerte. esto confirma aún más la inversión de tendencia.
Las señales comerciales se generan cuando se cumplen las tres condiciones anteriores.
La mayor ventaja radica en el uso integral de múltiples parámetros e indicadores para la toma de decisiones, lo que filtra bien las señales incorrectas y reduce las pérdidas de parada innecesarias.
La estrategia de la media móvil en sí tiene una estabilidad relativamente buena.
Los ajustes del RSI evitan los picos de compra y los valles de venta.
La confirmación de patrones de engulfamiento mejora la fiabilidad en el juicio de la inversión de tendencia.
Un stop loss más pequeño controla eficazmente los riesgos.
Si bien esta estrategia sobresale en el filtrado de señales y el control de riesgos, todavía contiene algunas debilidades y riesgos:
El ajuste de parámetros complejos requiere esfuerzos significativos para encontrar la combinación óptima.
Las señales de entrada estrictas pueden perder algunas buenas oportunidades.
Habrá cierto retraso en condiciones de mercado extremadamente volátiles.
La estabilidad y la validez a largo plazo necesitan una mayor verificación.
Para hacer frente a los riesgos anteriores, podemos ajustar los parámetros, optimizar los flujos lógicos, incorporar otros indicadores, etc. para mejorar la estrategia.
A pesar de tener buenos resultados en la combinación de múltiples indicadores, esta estrategia todavía tiene espacio para la optimización:
Evaluar el impacto de diferentes parámetros en los resultados para determinar una mejor combinación de parámetros
Incorporar otros indicadores como MACD, KD, etc. para ayudar a juzgar el momento de la reversión de la tendencia.
Mejorar y perfeccionar los mecanismos de stop loss y evaluar si un mayor porcentaje de stop loss puede reducir los cambios innecesarios de posición.
Probar conjuntos de datos históricos más largos para verificar la validez a largo plazo de la estrategia.
En conclusión, esta estrategia aprovecha un conjunto de herramientas de análisis técnico como promedios móviles, RSI y patrones de engulfing para realizar operaciones de oro largas y cortas. A través de la configuración de parámetros y el filtrado de señales, establece un sistema relativamente estricto para controlar los riesgos hasta cierto punto. Sin embargo, ninguna estrategia puede ser absolutamente perfecta. Esta estrategia todavía tiene mucho espacio para optimización y mejora direccional. En general, proporciona referencias significativas para el comercio cuantificado, pero aún debe usarse discretamente con ajustes pragmáticos cuando se aplica en la práctica.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Gold Trading with Simons Strategy", overlay=true) // Parameters length21 = input(21, minval=1, title="Length for 21 MA") length50 = input(50, minval=1, title="Length for 50 MA") length200 = input(200, minval=1, title="Length for 200 MA") rsiLength = input(14, minval=1, title="RSI Length") rsiOverbought = input(70, title="RSI Overbought Level") rsiOversold = input(30, title="RSI Oversold Level") takeProfitPercent = input(4, title="Take Profit %") stopLossPercent = input(1, title="Stop Loss %") // Moving Averages ma21 = sma(close, length21) ma50 = sma(close, length50) ma200 = sma(close, length200) // RSI rsi = rsi(close, rsiLength) // Engulfing Pattern isBullishCandle(c) => close[c] > open[c] isBearishCandle(c) => close[c] < open[c] bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1] bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1] // Calculate Take Profit and Stop Loss Levels takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100) stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100) // Entry Conditions longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing // Entry if (longCondition) entryPrice = close strategy.entry("Long", strategy.long) strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice)) strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice)) if (shortCondition) entryPrice = close strategy.entry("Short", strategy.short) strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice)) strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice)) // Plotting plot(ma21, color=color.blue, title="21 MA") plot(ma50, color=color.orange, title="50 MA") plot(ma200, color=color.red, title="200 MA") hline(rsiOverbought, "RSI Overbought", color=color.green) hline(rsiOversold, "RSI Oversold", color=color.red) plot(rsi, "RSI", color=color.purple)