Diese Strategie kombiniert doppelte gleitende Durchschnitts-Crossover, RSI und stochastische Indikatoren, um durch die gemeinsame Bestätigung mehrerer technischer Indikatoren in kurzfristiger Handel mit hoher Wahrscheinlichkeit Handelsmöglichkeiten zu suchen. Die Strategie verwendet das Crossover von 20-Tage- und 50-Tage-gleitenden Durchschnitten als Haupthandelssignal und integriert RSI und stochastische Indikatoren als Hilfsurteile, um die Handelssignale zu überprüfen. Darüber hinaus verwendet die Strategie auch ATR als Grundlage für Stop-Loss und Take-Profit, wobei Positionen mit einem festen Risiko-Rendite-Verhältnis verwaltet werden, um stabile Renditen zu erzielen und Risiken zu kontrollieren.
Diese Strategie ist eine kurzfristige Handelsstrategie, die auf doppelten gleitenden Durchschnitten, RSI und stochastischen Indikatoren basiert. Sie steuert Handelsrisiken, während sie Trendchancen durch die gemeinsame Bestätigung mehrerer technischer Indikatoren erfasst. Die Strategielogik ist klar, die Parameter sind leicht zu optimieren und sie eignet sich für Anleger, die sich am kurzfristigen Handel beteiligen. Die Strategie hat jedoch auch einige Mängel, wie beispielsweise eine begrenzte Trendverständnisfähigkeit und einen Mangel an dynamischem Management von Positionen und Kapital. Diese Probleme können durch die Einführung mehrer technischer Indikatoren, Optimierung von Signalen und Positionsmanagement usw. verbessert werden, um die Leistung der Strategie weiter zu verbessern.
/*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)