Esta estratégia constrói um sistema de negociação usando o indicador RSI para determinar os níveis de sobrecompra e sobrevenda, juntamente com o stop loss dinâmico de trail e a saída de meta de lucro.
Esta estratégia usa o indicador RSI de 14 períodos para julgar os padrões técnicos do mercado. O RSI reflete a proporção de poder crescente e decrescente ao longo de um período de tempo, para dizer se o mercado está sobrecomprado ou sobrevendido. O comprimento do RSI aqui é 14. Quando o RSI cruza acima de 70, o mercado é considerado sobrecomprado e vamos curto. Quando o RSI cruza abaixo de 30, o mercado é considerado sobrevendido e vamos longo.
Além disso, esta estratégia usa um mecanismo de stop loss dinâmico. Ao manter uma posição longa, o preço do trailing stop é definido em 97% do preço de fechamento. Ao manter uma posição curta, o preço do trailing stop é de 103% do preço de fechamento. Isso bloqueia a maioria dos lucros, evitando ser parado pelo ruído do mercado.
Por fim, esta estratégia usa a saída de lucro. Quando o lucro da posição atinge 20%, ele será fechado. Isso bloqueia alguns lucros e evita o retracement de lucro.
As vantagens desta estratégia incluem:
Alguns riscos desta estratégia a observar:
Para lidar com estes riscos, a otimização dos parâmetros do RSI, o ajuste da percentagem de stop loss, o relaxamento dos requisitos de meta de lucro podem ajudar.
Algumas orientações para otimizar a estratégia:
A estratégia tem uma lógica clara de usar o RSI para determinar o mercado sobrecomprado / sobrevendido, com paradas dinâmicas e tomada de lucro. Seus prós são fácil de entender e implementação, bom controle de risco e alta extensibilidade.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Modified RSI-Based Trading Strategy", overlay=true) // RSI settings rsiLength = input(14, title="RSI Length") overboughtLevel = 70 oversoldLevel = 30 // User-defined parameters trailingStopPercentage = input(3, title="Trailing Stop Percentage (%)") profitTargetPercentage = input(20, title="Profit Target Percentage (%)") rsiValue = ta.rsi(close, rsiLength) var float trailingStopLevel = na var float profitTargetLevel = na // Entry criteria enterLong = ta.crossover(rsiValue, oversoldLevel) enterShort = ta.crossunder(rsiValue, overboughtLevel) // Exit criteria exitLong = ta.crossover(rsiValue, overboughtLevel) exitShort = ta.crossunder(rsiValue, oversoldLevel) // Trailing stop calculation if (strategy.position_size > 0) trailingStopLevel := close * (1 - trailingStopPercentage / 100) if (strategy.position_size < 0) trailingStopLevel := close * (1 + trailingStopPercentage / 100) // Execute the strategy if (enterLong) strategy.entry("Buy", strategy.long) if (exitLong or ta.crossover(close, trailingStopLevel) or ta.change(close) > profitTargetPercentage / 100) strategy.close("Buy") if (enterShort) strategy.entry("Sell", strategy.short) if (exitShort or ta.crossunder(close, trailingStopLevel) or ta.change(close) < -profitTargetPercentage / 100) strategy.close("Sell") // Plot RSI and overbought/oversold levels plot(rsiValue, title="RSI", color=color.blue) hline(overboughtLevel, "Overbought", color=color.red, linestyle=hline.style_dashed) hline(oversoldLevel, "Oversold", color=color.green, linestyle=hline.style_dashed)