Strategi ini menggabungkan crossover purata bergerak berganda, RSI, dan penunjuk stokastik untuk mencari peluang perdagangan berkemungkinan tinggi dalam perdagangan jangka pendek melalui pengesahan bersama beberapa penunjuk teknikal. Strategi ini menggunakan crossover purata bergerak 20 hari dan 50 hari sebagai isyarat perdagangan utama, dan menggabungkan RSI dan penunjuk stokastik sebagai penilaian tambahan untuk memeriksa isyarat perdagangan. Di samping itu, strategi ini juga menggunakan ATR sebagai asas untuk berhenti-kerugian dan mengambil keuntungan, menguruskan kedudukan dengan nisbah risiko-balasan tetap, berusaha untuk mendapatkan pulangan yang stabil sambil mengawal risiko.
Strategi ini adalah strategi perdagangan jangka pendek berdasarkan purata bergerak berganda, RSI, dan penunjuk stokastik. Ia mengawal risiko perdagangan sambil merebut peluang trend melalui pengesahan bersama beberapa penunjuk teknikal. Logik strategi jelas, parameter mudah dioptimumkan, dan ia sesuai untuk pelabur yang terlibat dalam perdagangan jangka pendek. Walau bagaimanapun, strategi ini juga mempunyai beberapa kelemahan, seperti keupayaan menangkap trend yang terhad dan kekurangan pengurusan dinamik kedudukan dan modal. Masalah ini dapat diperbaiki dengan memperkenalkan lebih banyak penunjuk teknikal, mengoptimumkan isyarat dan pengurusan kedudukan, dan lain-lain, untuk meningkatkan lagi prestasi 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)