Strategi ini menggabungkan crossover rata-rata bergerak ganda, RSI, dan indikator stokastik untuk mencari peluang perdagangan probabilitas tinggi dalam perdagangan jangka pendek melalui konfirmasi bersama dari beberapa indikator teknis. Strategi ini menggunakan crossover rata-rata bergerak 20 hari dan 50 hari sebagai sinyal perdagangan utama, dan menggabungkan RSI dan indikator stokastik sebagai penilaian tambahan untuk memeriksa kembali sinyal perdagangan. Selain itu, strategi ini juga menggunakan ATR sebagai dasar untuk stop-loss dan take-profit, mengelola posisi dengan rasio risiko-manfaat tetap, berusaha untuk mendapatkan pengembalian yang stabil sambil mengendalikan risiko.
Strategi ini adalah strategi trading jangka pendek yang didasarkan pada rata-rata bergerak ganda, RSI, dan indikator stokastik. Ini mengendalikan risiko perdagangan sambil meraih peluang tren melalui konfirmasi bersama dari beberapa indikator teknis. Logika strategi jelas, parameter mudah dioptimalkan, dan cocok untuk investor yang terlibat dalam perdagangan jangka pendek. Namun, strategi ini juga memiliki beberapa kekurangan, seperti kemampuan menangkap tren yang terbatas dan kurangnya manajemen posisi dan modal yang dinamis. Masalah ini dapat ditingkatkan dengan memperkenalkan lebih banyak indikator teknis, mengoptimalkan sinyal dan manajemen posisi, dll, untuk lebih meningkatkan kinerja strategi.
/*backtest start: 2024-05-17 00:00:00 end: 2024-06-16 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Cruce de Medias con Filtros de RSI y Estocástico", overlay=true) // Definir parámetros de las medias móviles fast_length = input(20, title="Periodo de Media Rápida") slow_length = input(50, title="Periodo de Media Lenta") // Calcular medias móviles fast_ma = ta.sma(close, fast_length) slow_ma = ta.sma(close, slow_length) // Añadir filtro RSI rsi_length = input(7, title="Periodo del RSI") rsi = ta.rsi(close, rsi_length) rsi_overbought = input(70, title="RSI Sobrecomprado") rsi_oversold = input(30, title="RSI Sobrevendido") // Añadir filtro Estocástico k_period = input(7, title="K Periodo del Estocástico") d_period = input(3, title="D Periodo del Estocástico") smooth_k = input(3, title="Suavización del Estocástico") stoch_k = ta.sma(ta.stoch(close, high, low, k_period), smooth_k) stoch_d = ta.sma(stoch_k, d_period) stoch_overbought = input(80, title="Estocástico Sobrecomprado") stoch_oversold = input(20, title="Estocástico Sobrevendido") // Definir niveles de stop-loss y take-profit con ratio 2:1 risk = input(1, title="Riesgo en ATR") reward_ratio = input(2, title="Ratio Riesgo/Beneficio") atr_length = input(14, title="Periodo del ATR") atr = ta.atr(atr_length) stop_loss = risk * atr take_profit = reward_ratio * stop_loss // Señal de compra long_condition = ta.crossover(fast_ma, slow_ma) and rsi < rsi_overbought and stoch_k < stoch_overbought if (long_condition) strategy.entry("Compra", strategy.long) // Señal de venta short_condition = ta.crossunder(fast_ma, slow_ma) and rsi > rsi_oversold and stoch_k > stoch_oversold if (short_condition) strategy.entry("Venta", strategy.short) // Configurar Stop-Loss y Take-Profit para posiciones largas if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", from_entry="Compra", stop=low - stop_loss, limit=high + take_profit) // Configurar Stop-Loss y Take-Profit para posiciones cortas if (strategy.position_size < 0) strategy.exit("Take Profit/Stop Loss", from_entry="Venta", stop=high + stop_loss, limit=low - take_profit) // Plotear las medias móviles en el gráfico plot(fast_ma, title="Media Rápida (50)", color=color.blue) plot(slow_ma, title="Media Lenta (200)", color=color.red) // Plotear RSI y Estocástico en subgráficos hline(rsi_overbought, "RSI Sobrecomprado", color=color.red) hline(rsi_oversold, "RSI Sobrevendido", color=color.green) plot(rsi, title="RSI", color=color.orange, linewidth=2) hline(stoch_overbought, "Estocástico Sobrecomprado", color=color.red) hline(stoch_oversold, "Estocástico Sobrevendido", color=color.green) plot(stoch_k, title="Estocástico K", color=color.purple, linewidth=2) plot(stoch_d, title="Estocástico D", color=color.purple, linewidth=1, style=plot.style_stepline)