
A estratégia é um sistema de negociação de acompanhamento de tendências baseado em indicadores relativamente fortes (RSI) e aleatoriamente fortes (RSI estocástico). A estratégia é executada ao monitorar os níveis de sobrevenda e sobrevenda do RSI e do RSI estocástico, quando há sinais de sobrevenda ou sobrevenda no mercado. A estratégia suporta a operação em períodos de tempo diurnos e semanais, oferecendo aos comerciantes opções de negociação flexíveis.
A estratégia baseia-se principalmente em dois indicadores técnicos: RSI e RSI estocástico. O RSI é usado para medir a velocidade e a amplitude da mudança de preço, enquanto o RSI estocástico é calculado com um indicador aleatório do valor do RSI, fornecendo um sinal de venda mais sensível ao mercado. O sinal de compra é acionado quando o RSI está abaixo de 35 e o K do RSI estocástico está abaixo de 20, indicando que o mercado está em uma situação de venda excessiva. O sinal de venda é acionado quando o RSI está acima de 70 e o K do RSI estocástico está acima de 80, indicando que o mercado está em uma situação de compra excessiva.
A estratégia, combinando os benefícios do RSI e do RSI estocástico, constrói um sistema de negociação relativamente confiável. Embora haja algumas limitações, a estratégia tem um bom valor prático com um bom gerenciamento de risco e otimização contínua. É recomendado que os comerciantes testem completamente diferentes combinações de parâmetros antes de usá-los em ações reais e façam os ajustes apropriados em combinação com o ambiente de mercado e as preferências de risco pessoais.
/*backtest
start: 2023-12-20 00:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTC Buy & Sell Strategy (RSI & Stoch RSI)", overlay=true)
// Input Parameters
rsi_length = input.int(14, title="RSI Length")
stoch_length = input.int(14, title="Stochastic Length")
stoch_smooth_k = input.int(3, title="Stochastic %K Smoothing")
stoch_smooth_d = input.int(3, title="Stochastic %D Smoothing")
// Threshold Inputs
rsi_buy_threshold = input.float(35, title="RSI Buy Threshold")
stoch_buy_threshold = input.float(20, title="Stochastic RSI Buy Threshold")
rsi_sell_threshold = input.float(70, title="RSI Sell Threshold")
stoch_sell_threshold = input.float(80, title="Stochastic RSI Sell Threshold")
use_weekly_data = input.bool(false, title="Use Weekly Data", tooltip="Enable to use weekly timeframe for calculations.")
// Timeframe Configuration
timeframe = use_weekly_data ? "W" : timeframe.period
// Calculate RSI and Stochastic RSI
rsi_value = request.security(syminfo.tickerid, timeframe, ta.rsi(close, rsi_length))
stoch_rsi_k_raw = request.security(syminfo.tickerid, timeframe, ta.stoch(close, high, low, stoch_length))
stoch_rsi_k = ta.sma(stoch_rsi_k_raw, stoch_smooth_k)
stoch_rsi_d = ta.sma(stoch_rsi_k, stoch_smooth_d)
// Define Buy and Sell Conditions
buy_signal = (rsi_value < rsi_buy_threshold) and (stoch_rsi_k < stoch_buy_threshold)
sell_signal = (rsi_value > rsi_sell_threshold) and (stoch_rsi_k > stoch_sell_threshold)
// Strategy Execution
if buy_signal
strategy.entry("Long", strategy.long, comment="Buy Signal")
if sell_signal
strategy.close("Long", comment="Sell Signal")
// Plot Buy and Sell Signals
plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", size=size.small, text="BUY")
plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.red, title="Sell Signal", size=size.small, text="SELL")
// Plot RSI and Stochastic RSI for Visualization
hline(rsi_buy_threshold, "RSI Buy Threshold", color=color.green)
hline(rsi_sell_threshold, "RSI Sell Threshold", color=color.red)
plot(rsi_value, color=color.blue, linewidth=2, title="RSI Value")
plot(stoch_rsi_k, color=color.purple, linewidth=2, title="Stochastic RSI K")
plot(stoch_rsi_d, color=color.orange, linewidth=1, title="Stochastic RSI D")