
Chiến lược này kết hợp chéo hai đường cong, RSI và chỉ số ngẫu nhiên, tìm kiếm cơ hội giao dịch có tỷ lệ thắng cao trong giao dịch đường ngắn thông qua sự xác nhận chung của nhiều chỉ số kỹ thuật. Chiến lược sử dụng chéo hai đường trung bình di chuyển vào ngày 20 và 50 làm tín hiệu giao dịch chính, đồng thời kết hợp RSI và chỉ số ngẫu nhiên làm phán đoán phụ, xác nhận tín hiệu giao dịch lần thứ hai. Ngoài ra, chiến lược này cũng sử dụng ATR làm cơ sở dừng lỗ và dừng, quản lý vị trí đầu tiên dựa trên rủi ro cố định so với lợi nhuận, tìm kiếm lợi nhuận ổn định trong khi kiểm soát rủi ro.
Chiến lược này là một chiến lược giao dịch ngắn hạn dựa trên hai đường ngang, RSI và chỉ số ngẫu nhiên, kiểm soát rủi ro giao dịch bằng cách xác nhận chung nhiều chỉ số kỹ thuật, đồng thời nắm bắt cơ hội theo xu hướng. Chiến lược có logic rõ ràng, các tham số dễ dàng tối ưu hóa, phù hợp cho các nhà đầu tư giao dịch ngắn hạn. Tuy nhiên, chiến lược cũng có một số thiếu sót, chẳng hạn như khả năng nắm bắt xu hướng hạn chế, thiếu quản lý động của vị trí và vốn. Những vấn đề này có thể được cải thiện bằng cách giới thiệu nhiều chỉ số kỹ thuật, tối ưu hóa tín hiệu và quản lý vị trí để cải thiện hơn nữa.
/*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)