Esta es una estrategia de negociación cuantitativa que combina tendencia EMA, ruptura de números redondos y filtración de sesión de negociación. La estrategia se basa principalmente en la dirección de la tendencia EMA, junto con patrones de ruptura de precios en los niveles clave de números redondos como señales de negociación, al tiempo que incorpora filtración de sesión para mejorar la calidad del comercio. La estrategia emplea stop-loss basado en porcentajes y take-profit para la gestión de riesgos.
La lógica central incluye los siguientes elementos clave: 1. Utiliza la EMA de 20 días como herramienta de identificación de tendencias, solo por encima de la EMA y por debajo de ella 2. Busca patrones de engulfamiento cerca de los números redondos clave (intervalos de 5 dólares) 3. Sólo se negocian durante las sesiones de Londres y Nueva York para evitar períodos de baja volatilidad 4. Las señales largas requieren: patrón alcista, precio por encima de la EMA, sesión comercial activa 5. Las señales cortas requieren: patrón de engulfing bajista, precio por debajo de la EMA, sesión comercial activa Implementar el 1% de stop-loss y el 1,5% de riesgo-recompensación por tomar beneficios para la gestión del comercio
La estrategia construye un sistema de negociación lógicamente riguroso mediante la combinación de múltiples mecanismos, incluidas las tendencias de la EMA, los patrones de precios y el filtrado de la sesión. Aunque tiene ciertas limitaciones, la optimización y el refinamiento continuos pueden potencialmente mejorar la estabilidad y la rentabilidad de la estrategia.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1) useEMA = input.bool(true, title="Use 20 EMA for Confluence") emaLength = input.int(20, title="EMA Length") // Session times for London and NY londonSession = input("0300-1200", title="London Session (NY Time)") nySession = input("0800-1700", title="New York Session (NY Time)") // EMA Calculation emaValue = ta.ema(close, emaLength) // Plot Round Number Levels roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval // for level = roundLow to roundHigh by roundNumberInterval // line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both) // Session Filter inLondonSession = not na(time("1", londonSession)) inNYSession = not na(time("1", nySession)) inSession = true // Detect Bullish and Bearish Engulfing patterns bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession // Entry Conditions if bullishEngulfing strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence") if bearishEngulfing strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence") // Stop Loss and Take Profit stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100 takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100 strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))