Esta estrategia es un sistema de negociación integral que combina múltiples indicadores técnicos clave, incluido un sistema dual de promedio móvil simple (SMA), divergencia de convergencia de promedio móvil (MACD), índice de fuerza relativa (RSI) y análisis de nivel de resistencia.
La estrategia emplea promedios móviles simples a corto plazo (10 días) y a largo plazo (30 días) como sistema de señal principal. Una señal de compra se genera cuando la SMA a corto plazo cruza por encima de la SMA a largo plazo, y el MACD muestra un impulso alcista (línea MACD por encima de la línea de señal). La condición de venta incorpora análisis de nivel de resistencia, lo que desencadena el cierre de la posición cuando el precio alcanza el punto más alto de los últimos 20 períodos y el MACD muestra señales bajistas. Además, el indicador RSI sirve como un filtro de sentimiento para la gestión de posiciones: salida temprana en pérdidas cuando el RSI excede los 70, y mantenimiento de la posición en ganancias cuando el RSI está por debajo de 30.
Esta estrategia construye un sistema de negociación completo mediante la combinación de múltiples indicadores técnicos clásicos. Sus fortalezas se encuentran en el mecanismo de confirmación de múltiples señales y un sistema integral de control de riesgos, aunque las condiciones del mercado deben ser monitoreadas. A través de las direcciones de optimización sugeridas, la estabilidad y adaptabilidad de la estrategia pueden mejorarse aún más. En el comercio en vivo, se aconseja a los inversores que ajusten los parámetros de acuerdo con sus preferencias de riesgo y el entorno del mercado, manteniendo la atención a los fundamentos del mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("XAUUSD SMA with MACD & Market Sentiment (Enhanced RR)", overlay=true) // Input parameters for moving averages shortSMA_length = input.int(10, title="Short SMA Length", minval=1) longSMA_length = input.int(30, title="Long SMA Length", minval=1) // MACD settings [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) // Lookback period for identifying major resistance (swing highs) resistance_lookback = input.int(20, title="Resistance Lookback Period", tooltip="Lookback period for identifying major resistance") // Calculate significant resistance (local swing highs over the lookback period) major_resistance = ta.highest(close, resistance_lookback) // Calculate SMAs shortSMA = ta.sma(close, shortSMA_length) longSMA = ta.sma(close, longSMA_length) // RSI for market sentiment rsiLength = input.int(14, title="RSI Length", minval=1) rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50) rsi = ta.rsi(close, rsiLength) // Define buy condition based on SMA and MACD buyCondition = ta.crossover(shortSMA, longSMA) and macdLine > signalLine // Define sell condition: only sell if price is at or above the identified major resistance sellCondition = close >= major_resistance and macdLine < signalLine // Define sentiment-based exit conditions closeEarlyCondition = strategy.position_size < 0 and rsi > rsiOverbought // Close losing trade early if RSI is overbought holdWinningCondition = strategy.position_size > 0 and rsi < rsiOversold // Hold winning trade if RSI is oversold // Execute strategy: Enter long position when buy conditions are met if (buyCondition) strategy.entry("Buy", strategy.long) // Close the position when the sell condition is met (price at resistance) if (sellCondition and not holdWinningCondition) strategy.close("Buy") // Close losing trades early if sentiment is against us if (closeEarlyCondition) strategy.close("Buy") // Visual cues for buy and sell signals plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Add alert for buy condition alertcondition(buyCondition, title="Buy Signal Activated", message="Buy signal activated: Short SMA has crossed above Long SMA and MACD is bullish.") // Add alert for sell condition to notify when price hits major resistance alertcondition(sellCondition, title="Sell at Major Resistance", message="Sell triggered at major resistance level.") // Add alert for early close condition (for losing trades) alertcondition(closeEarlyCondition, title="Close Losing Trade Early", message="Sentiment is against your position, close trade.") // Add alert for holding winning condition (optional) alertcondition(holdWinningCondition, title="Hold Winning Trade", message="RSI indicates oversold conditions, holding winning trade.")