Esta estrategia es un sistema de negociación automatizado basado en un marco de tiempo de 5 minutos, que combina los métodos de seguimiento de tendencias de promedio móvil y análisis de volumen. La estrategia utiliza un promedio móvil simple (SMA) de 50 períodos para determinar las tendencias del mercado mientras incorpora análisis de volumen para validar las señales comerciales.
La lógica central incluye los siguientes componentes clave: 1. Identificación de tendencias: utiliza la SMA de 50 períodos para determinar la dirección del mercado, considerando la tendencia alcista cuando el cierre está por encima de MA y la tendencia bajista cuando está por debajo. También confirma las tendencias utilizando el movimiento del precio en los últimos 30 minutos (6 velas). Análisis de volumen: Calcula los volúmenes de compra y venta basados en el movimiento de precios, distribuyendo el volumen dentro de cada vela de acuerdo con la posición de precio de cierre. Generación de señales: genera señales largas cuando el volumen de compra excede el volumen de venta en tendencias alcistas; genera señales cortas cuando el volumen de venta excede el volumen de compra en tendencias bajistas. 4. Gestión de riesgos: Implementa objetivos de stop-loss del 3% y 29% de toma de ganancias para administrar la relación riesgo-recompensación para cada operación.
Esta estrategia combina el seguimiento de tendencias y el análisis de volumen para crear un sistema comercial de alta frecuencia integral. Sus principales fortalezas se encuentran en la confirmación de señales multidimensionales y el control de riesgos robusto. Si bien existen riesgos inherentes, las direcciones de optimización propuestas pueden mejorar aún más la estabilidad y la adaptabilidad de la estrategia. La estrategia es particularmente adecuada para entornos de mercado de tendencias y puede lograr resultados comerciales estables a través de la optimización adecuada de parámetros y la gestión de riesgos.
/*backtest start: 2024-01-10 00:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Jerryorange //@version=6 //@version=6 strategy("Autonomous 5-Minute Robot", overlay=true, fill_orders_on_standard_ohlc=true) // --- Inputs --- maLength = input.int(50, title="Trend MA Length") // Moving average length for trend detection volumeLength = input.int(10, title="Volume Length") // Length for volume analysis stopLossPercent = input.float(3, title="Stop Loss (%)") // 3% stop loss takeProfitPercent = input.float(29, title="Take Profit (%)") // 29% take profit // --- Market Trend Detection --- ma = ta.sma(close, maLength) // Simple moving average for trend direction isBullish = close > ma // Market is bullish if the close is above the moving average isBearish = close < ma // Market is bearish if the close is below the moving average // --- Volume Analysis --- buyVolume = (high != low) ? volume * (close - low) / (high - low) : 0 sellVolume = (high != low) ? volume * (high - close) / (high - low) : 0 totalVolume = volume // --- Define Market Direction over Last 30 Minutes (6 candles in 5-minute chart) --- lookback = 6 // 30 minutes / 5 minutes = 6 bars prevClose = close[lookback] // Previous close 30 minutes ago currentClose = close // Current close uptrend = currentClose > prevClose and isBullish // Uptrend condition downtrend = currentClose < prevClose and isBearish // Downtrend condition // --- Strategy Logic --- longCondition = uptrend and buyVolume > sellVolume // Buy signal when trend is up and buy volume exceeds sell volume shortCondition = downtrend and sellVolume > buyVolume // Sell signal when trend is down and sell volume exceeds buy volume // --- Entry and Exit Strategy --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Exit Strategy based on Stop Loss and Take Profit --- strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent / 100), limit=close * (1 + takeProfitPercent / 100)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent / 100), limit=close * (1 - takeProfitPercent / 100)) // --- Plotting for Visualization --- plot(ma, color=color.blue, title="50-period MA") // Trend line plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY") plotshape(shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL")