
Esta estratégia é um sistema de negociação de acompanhamento de tendências baseado em uma combinação de indicadores relativamente fracos (RSI) e médias móveis (MA). O núcleo da estratégia é capturar mudanças de movimento de preços através do indicador RSI, enquanto a combinação de médias móveis de 90 dias como filtro de tendência permite um acompanhamento efetivo da tendência do mercado.
A estratégia é baseada nos seguintes componentes principais:
O trigger de compra exige que o RSI seja 70 e o sinal de venda é gerado quando o RSI é 62 . O sistema calcula automaticamente e executa a operação de abertura de posição completa quando as condições de abertura de posição estão dentro do período de retracção efetivo.
Sugestões de controle de risco:
Otimização de sinalização:
Optimização da gestão de posições:
Otimização do controle de risco:
Otimização do sistema de detecção:
A estratégia, em combinação com o indicador de dinâmica RSI e o filtro de tendência linear, constrói um sistema de negociação relativamente perfeito. A vantagem da estratégia reside na sua forte adaptabilidade, controle de risco perfeito, mas ainda é necessário prestar atenção à sensibilidade dos parâmetros e ao impacto das mudanças no ambiente de mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple RSI Strategy - Adjustable Levels with Lookback Limit and 30-Day MA", overlay=true)
// Parameters
rsi_length = input.int(12, title="RSI Length", minval=1) // RSI period
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100) // Overbought level
rsi_oversold = input.int(62, title="RSI Oversold Level", minval=1, maxval=100) // Oversold level
ma_length = input.int(90, title="Moving Average Length", minval=1) // Moving Average period
// Calculate lookback period (2000 days)
lookback_period = 2500
start_date = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - lookback_period)
// RSI Calculation
rsi_value = ta.rsi(close, rsi_length)
// 30-Day Moving Average Calculation
ma_value = ta.sma(close, ma_length)
// Buy Condition: Buy when RSI is above the overbought level
long_condition = rsi_value > rsi_overbought
// Sell Condition: Sell when RSI drops below the oversold level
sell_condition = rsi_value < rsi_oversold
// Check if current time is within the lookback period
in_lookback_period = (time >= start_date)
// Execute Buy with 100% equity if within lookback period
if (long_condition and strategy.position_size == 0 and in_lookback_period)
strategy.entry("Buy", strategy.long, qty=strategy.equity / close)
if (sell_condition and strategy.position_size > 0)
strategy.close("Buy")
// Plot RSI on a separate chart for visualization
hline(rsi_overbought, "Overbought", color=color.red)
hline(rsi_oversold, "Oversold", color=color.green)
plot(rsi_value, title="RSI", color=color.blue)
// Plot the 30-Day Moving Average on the chart
plot(ma_value, title="30-Day MA", color=color.orange, linewidth=2)