Estratégia de negociação a curto prazo baseada no RSI e no SMA

Autora:ChaoZhang, Data: 2024-02-01 10:35:30
Tags:

img

Resumo

Esta estratégia é chamada de Short-Term RSI e SMA Percentage Change. Utiliza indicadores técnicos comuns como RSI e média móvel para determinar a entrada e saída de negócios. O RSI é um oscilador de momento que tem um valor entre 0 e 100, onde um valor acima de 70 é considerado sobrecomprado e abaixo de 30 sobrevendido. O SMA é uma média móvel simples que pode refletir tendências de preços de curto e longo prazo. Esta estratégia constrói sinais de entrada e saída com base nesses dois indicadores, e o backtest mostra que pode alcançar um bom desempenho.

Estratégia lógica

Quando o RSI está acima de 50, é considerado um sinal de alta. Isso indica que o mercado está em equilíbrio para a zona de alta. Quando a SMA de 9 dias está acima da SMA de 100 dias, isso significa que a tendência de curto prazo é melhor do que a tendência de longo prazo, e podemos entrar em uma posição longa. Além disso, se a SMA de 9 dias de curto prazo tiver uma mudança relativa de mais de 6% para o preço, indica aceleração da tendência de curto prazo, que também é um sinal de entrada.

Se já estiver em uma posição longa, esta estratégia usará parabólica SAR trailing stop para bloquear os lucros.

Análise das vantagens

Esta estratégia combina indicadores de tendência e osciladores, para que possa entrar no mercado quando uma tendência clara aparece, evitando períodos em que o mercado está revertendo, reduzindo muito o risco comercial.

O backtest mostra que esta estratégia pode beneficiar de tendências de curto prazo bastante óbvias com bons resultados.

Análise de riscos

Esta estratégia baseia-se em indicadores como RSI e SMA, que têm certo atraso.

Além disso, a negociação de alta frequência implica custos de negociação mais elevados.

Orientações de otimização

Esta estratégia pode considerar a incorporação de mais indicadores para determinar os sinais de entrada e saída, tais como a adição de indicadores de volume para evitar falsas rupturas.

Além disso, a otimização pode ser feita em produtos de negociação, parâmetros de ciclo para encontrar a melhor combinação de parâmetros.

Conclusão

Esta estratégia utiliza indicadores técnicos comuns como o RSI e o SMA para construir uma estratégia de negociação de curto prazo. Ela pode capturar tendências de curto prazo bastante óbvias para lucro, enquanto também tem paradas para bloquear lucros. Esta estratégia é adequada para investidores que gostam de negociação de alta frequência, mas o risco de reversão rápida do mercado também precisa de atenção. Com otimização adicional, esta estratégia pode alcançar melhores resultados.


/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 1m
basePeriod: 1m
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=5
strategy("Short Term RSI and SMA Percentage Change",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 5, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//==================================Buy Conditions============================================

//RSI
length = input(14)
rsi = ta.rsi(close, length)
buyCondition1 = rsi > 50

//MA
SMA9 = ta.sma(close, 9)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA100, color = color.blue)
buyCondition2 = (SMA9 > SMA100)

//Calculating MA Percentage Change
buyMA = (close/SMA9)
buyCondition3 = buyMA >= 0.06

if (buyCondition1 and buyCondition2 and buyCondition3 and timePeriod) //and buyCondition
    strategy.entry("Long", strategy.long)

//==================================Sell Conditions============================================

// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=5) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=5) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    
strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice)


Mais.