A ideia central desta estratégia é combinar o indicador RSI e a média móvel para encontrar oportunidades de reversões de preços de ações e alcançar a compra baixa e a venda alta. Quando o indicador RSI mostra que a ação está sobrevendida e a média móvel de curto prazo cruza abaixo do preço, ele serve como um sinal de compra. Depois de definir o stop loss e tirar lucro, espere que o preço se inverta para cima.
Esta estratégia usa principalmente o indicador RSI para julgar condições de sobrevenda e sobrecompra, e a cruz de ouro e cruz morta da média móvel para determinar as tendências de preços. Especificamente, o indicador RSI pode julgar efetivamente se uma ação está sobrevendida ou sobrecomprada. Quando o RSI está abaixo de 30, está no intervalo de sobrevenda. E quando a média móvel de curto prazo (definida em 9 dias nesta estratégia) cruza abaixo do preço, significa que o preço está caindo.
Então, quando o indicador RSI está abaixo de 40, perto do estado de sobrevenda, e a média móvel de 9 dias cruza abaixo do preço, pode ser julgado como um possível momento para o preço da ação reverter, indo longo para comprar.
Esta estratégia combina o indicador RSI e a média móvel, que podem determinar efetivamente o momento da compra. Em comparação com um único julgamento de sobrevenda, o julgamento da condição adicionada da média móvel evita flutuações na área de sobrevenda. A configuração de stop loss e take profit é flexível e pode variar de pessoa para pessoa.
Esta estratégia baseia-se em configurações de parâmetros, tais como limite de julgamento do RSI, janela de tempo média móvel, etc. Parâmetros diferentes podem levar a resultados diferentes.
Além disso, as taxas de transacção também terão um certo impacto nos lucros.
Considere ajustar dinamicamente os parâmetros da média móvel, selecionando parâmetros diferentes para ciclos diferentes; ou introduzir outros indicadores para julgar, como KDJ, MACD, etc., para formar um julgamento abrangente com base em múltiplas condições.
É igualmente possível estabelecer um módulo de volume de negociação ou de gestão de capital para controlar a proporção de fundos ocupada por uma única negociação e reduzir o impacto de uma única perda.
Em geral, esta estratégia usa indicadores RSI e médias móveis para determinar o tempo de compra e pode determinar efetivamente as inversões de preço. Comprar em sobrevenda e bloquear lucros com stop loss e take profit pode produzir bons resultados. Para futuras otimizações, vale a pena considerar a incorporação de mais indicadores ou adicionar módulos adicionais de negociação / gerenciamento de fundos para tornar a estratégia mais robusta.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule //@version=4 strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true //MA inputs and calculations inshort=input(9, title='MA short period') MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = input(14, title = 'RSI period', minval=1) RSI = rsi(close, lengthRSI) //Entry strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window()) //Exit longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01 longTakePerc = input(title="Long Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=3) * 0.01 longSL = strategy.position_avg_price * (1 - longLossPerc) longTP = strategy.position_avg_price * (1 + longTakePerc) if (strategy.position_size > 0 and window()) strategy.exit(id="TP/SL", stop=longSL, limit=longTP) bgcolor(color = showDate and window() ? color.gray : na, transp = 90) plot(MAshort, color=color.purple, linewidth=4)