Ini adalah strategi perdagangan intraday yang didasarkan pada sistem Garis Rata-rata Gerak Eksponensial (EMA) ganda dikombinasikan dengan Indeks Kekuatan Relatif (RSI). Strategi ini mengidentifikasi tren pasar dan peluang perdagangan melalui sinyal silang EMA cepat dan lambat, yang dikonfirmasi oleh indikator momentum RSI, sambil menggabungkan mekanisme stop-loss dan take-profit untuk manajemen risiko. Strategi ini menggunakan pendekatan manajemen uang, menggunakan persentase tetap ekuitas akun untuk perdagangan.
Logika inti mencakup beberapa elemen kunci: 1. Menggunakan dua EMA dengan periode yang berbeda (default 12 dan 26) sebagai indikator tren 2. Menggabungkan RSI (default 14 periode) sebagai konfirmasi momentum Kondisi masuk panjang: EMA cepat melintasi EMA lambat dengan RSI di atas 50 4. Kondisi masuk pendek: EMA cepat melintasi di bawah EMA lambat dengan RSI di bawah 50 Penggunaan tetap 20% dari ekuitas akun untuk ukuran posisi 6. Mengintegrasikan stop-loss yang dapat disesuaikan (default 1%) dan take-profit (default 2%) 7. Mengimplementasikan penutupan posisi pada sinyal reverse crossover
Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan sistem tren EMA dengan indikator momentum RSI. Kekuatannya terletak pada logika perdagangan yang sistematis dan manajemen risiko yang komprehensif, meskipun dampak kondisi pasar harus dipertimbangkan. Melalui optimalisasi dan penyesuaian terus-menerus, strategi dapat lebih beradaptasi dengan kondisi pasar yang berbeda dan meningkatkan hasil perdagangan.
/*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=5 strategy("Estrategia Intradía - Cruce EMA + RSI - Optimizado", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=20) // Parámetros CON rangos de optimización ema_fast_length = input.int(title="Período EMA Rápida", defval=12, minval=5, maxval=30, step=1) ema_slow_length = input.int(title="Período EMA Lenta", defval=26, minval=15, maxval=50, step=1) rsi_length = input.int(title="Período RSI", defval=14, minval=7, maxval=21, step=1) rsi_overbought = input.int(title="Nivel de Sobrecompra RSI", defval=70, minval=60, maxval=80, step=1) rsi_oversold = input.int(title="Nivel de Sobreventa RSI", defval=30, minval=20, maxval=40, step=1) stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.1, maxval=3.0, step=0.1) take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.5, maxval=5.0, step=0.1) // Cálculos ema_fast = ta.ema(close, ema_fast_length) ema_slow = ta.ema(close, ema_slow_length) rsi = ta.rsi(close, rsi_length) // Condiciones de entrada longCondition = ta.crossover(ema_fast, ema_slow) and rsi > 50 shortCondition = ta.crossunder(ema_fast, ema_slow) and rsi < 50 // Gestión de entradas y salidas var float longQty = na var float shortQty = na if longCondition longQty := 20 / close strategy.entry("Long", strategy.long, qty=longQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Long", "Long", stop=close * (1 - stop_loss_percent / 100), limit=close * (1 + take_profit_percent / 100)) if strategy.position_size > 0 and ta.crossunder(ema_fast, ema_slow) strategy.close("Long") longQty := na if shortCondition shortQty := 20 / close strategy.entry("Short", strategy.short, qty=shortQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Short", "Short", stop=close * (1 + stop_loss_percent / 100), limit=close * (1 - take_profit_percent / 100)) if strategy.position_size < 0 and ta.crossover(ema_fast, ema_slow) strategy.close("Short") shortQty := na // Visualizaciones plot(ema_fast, color=color.blue, title="EMA Rápida") plot(ema_slow, color=color.orange, title="EMA Lenta") plot(rsi, color=color.purple, title="RSI") hline(50, color=color.gray)