Esta estrategia es un sistema de negociación integral que combina múltiples indicadores técnicos, principalmente utilizando el promedio móvil (MA), el índice de fuerza relativa (RSI) y el índice direccional promedio (ADX) para identificar las tendencias y el impulso del mercado.
La estrategia emplea un mecanismo de verificación de tres capas para confirmar las señales comerciales: 1. Capa de identificación de tendencia: utiliza cruces de promedios móviles de 20 períodos y 50 períodos para determinar la dirección de la tendencia, con un cruce rápido de MA por encima de un MA lento que indica una tendencia alcista y viceversa. 2. Capa de confirmación de impulso: utiliza un RSI de 14 períodos para confirmar el impulso del precio, con un RSI por encima de 50 que indica un impulso al alza y por debajo de 50 que indica un impulso a la baja. 3. Capa de filtro de fuerza de tendencia: utiliza el ADX de 14 períodos para medir la fuerza de la tendencia, solo confirma las operaciones cuando el ADX está por encima de 25, lo que indica una fuerza de tendencia suficiente.
Además, la estrategia implementa un sistema dinámico de stop-loss y take-profit basado en ATR: - El stop-loss está establecido en 2 veces ATR - La rentabilidad se fija en 4 veces ATR, manteniendo una relación riesgo-recompensación de 1:2
Esta estrategia construye un sistema de negociación relativamente completo a través de la sinergia de múltiples indicadores técnicos. Sus principales fortalezas se encuentran en su mecanismo de verificación de múltiples capas y sistema dinámico de gestión de riesgos, aunque se debe prestar atención a su adaptabilidad en diferentes entornos de mercado.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-15 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Daily Trading Strategy", overlay=true) // --- Indikator --- // Kombinasi MA untuk trend fastMA = ta.sma(close, 20) slowMA = ta.sma(close, 50) // RSI untuk momentum rsi = ta.rsi(close, 14) // --- Fungsi untuk menghitung ADX --- adx(length) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, length) plus = fixnan(100 * ta.rma(plusDM, length) / trur) minus = fixnan(100 * ta.rma(minusDM, length) / trur) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length) // ADX untuk kekuatan trend adxValue = adx(14) // --- Kondisi Entry Long --- longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25 // --- Kondisi Entry Short --- shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25 // --- Stop Loss dan Take Profit --- // Fungsi untuk menghitung stop loss dan take profit getSLTP(entryPrice, isLong) => atr = ta.atr(14) sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2 tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4 [sl, tp] // Hitung SL dan TP untuk posisi Long [longSL, longTP] = getSLTP(close, true) // Hitung SL dan TP untuk posisi Short [shortSL, shortTP] = getSLTP(close, false) // --- Eksekusi Order --- if (longEntry) strategy.entry("Long", strategy.long, stop=longSL, limit=longTP) if (shortEntry) strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP) // --- Plot Indikator --- // MA plot(fastMA, color=color.blue) plot(slowMA, color=color.red) // RSI plot(rsi, color=color.orange) hline(50, color=color.gray) // ADX plot(adxValue, color=color.purple) hline(25, color=color.gray) // --- Alert --- alertcondition(longEntry, title="Long Entry", message="Long Entry") alertcondition(shortEntry, title="Short Entry", message="Short Entry")