Ini adalah strategi dagangan intraday berdasarkan sistem purata bergerak eksponen (EMA) berganda yang digabungkan dengan Indeks Kekuatan Relatif (RSI). Strategi ini mengenal pasti trend pasaran dan peluang dagangan melalui isyarat silang EMA cepat dan perlahan, yang disahkan oleh penunjuk momentum RSI, sambil menggabungkan mekanisme berhenti rugi dan mengambil keuntungan untuk pengurusan risiko. Strategi ini menggunakan pendekatan pengurusan wang, menggunakan peratusan tetap ekuiti akaun untuk dagangan.
Logik teras merangkumi beberapa elemen utama: 1. Menggunakan dua EMA dengan tempoh yang berbeza (default 12 dan 26) sebagai penunjuk trend 2. Menggabungkan RSI (default 14 tempoh) sebagai pengesahan momentum 3. Keadaan kemasukan panjang: EMA cepat melintasi EMA perlahan dengan RSI di atas 50 4. Keadaan kemasukan pendek: EMA cepat melintasi di bawah EMA perlahan dengan RSI di bawah 50 5. Penggunaan tetap 20% daripada ekuiti akaun untuk saiz kedudukan 6. Mengintegrasikan stop-loss yang boleh disesuaikan (default 1%) dan mengambil keuntungan (default 2%) 7. Melaksanakan penutupan kedudukan pada isyarat silang terbalik
Strategi ini membina sistem perdagangan yang lengkap dengan menggabungkan sistem trend EMA dengan penunjuk momentum RSI. Kekuatannya terletak pada logik perdagangan yang sistematik dan pengurusan risiko yang komprehensif, walaupun kesan keadaan pasaran mesti dipertimbangkan. Melalui pengoptimuman dan penyesuaian berterusan, strategi dapat menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza 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)