Média móvel RSI, estratégia de stop loss e take profit


Data de criação: 2023-09-13 14:26:43 última modificação: 2023-09-13 14:26:43
cópia: 0 Cliques: 671
1
focar em
1617
Seguidores

Esta estratégia combina o indicador RSI com a média móvel, faz o discernimento de tendências e gera sinais de negociação, e usa um stop loss móvel para bloquear os lucros e controlar o risco. É uma estratégia típica de negociação de tendências.

Princípios da estratégia:

  1. Calcular o indicador RSI para determinar a tendência de sobrevenda e sobrevenda. O RSI acima de 50 é um sinal múltiplo.

  2. Calcule a média móvel rápida e lenta com a forma de golden cross.

  3. O aumento contínuo do RSI também pode servir como um sinal de negociação a ser seguido.

  4. Após a entrada, configure a linha de parada móvel e a linha de parada.

  5. A linha de stop-loss segue o preço abaixo e a linha de stop-loss segue o preço acima.

  6. Quando o preço toca a linha de parada de perda, o preço se estabiliza.

Os benefícios da estratégia:

  1. O indicador RSI é usado para avaliar a tendência de sobrecompra e de sobrevenda, evitando a tendência de alta e baixa.

  2. A média móvel identifica a direção da tendência. A combinação aumenta a precisão do julgamento.

  3. O modo móvel de parada de perda, que pode ser ajustado de acordo com a mudança de preço em tempo real.

Os riscos desta estratégia:

  1. O RSI e a linha média são propensos a sinais errôneos em situações de turbulência.

  2. O bloqueador móvel de danos precisa ser ajustado com cautela, e pode ser muito grande ou muito pequeno.

  3. Não é possível limitar o tamanho de um único prejuízo e existe o risco de ocorrer um prejuízo significativo.

Em suma, a estratégia combina os benefícios do RSI e do indicador da linha média e administra o risco usando um método móvel de parada de perda. Melhorando a otimização de parâmetros e o controle de risco, é possível obter melhores resultados.

Código-fonte da estratégia
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI and MA Strategy with Trailing Stop Loss and Take Profit",
         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, 1, 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)
SMA50 = ta.sma(close, 50)
SMA100 = ta.sma(close, 100)
plot(SMA9, color = color.green)
plot(SMA50, color = color.orange)
plot(SMA100, color = color.blue)
buyCondition2 = SMA9 > SMA50//ta.crossover(SMA9, SMA100)

//RSI Increase
increase = 5
buyCondition3 = (rsi > rsi[1] + increase)


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

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

//Trailing Stop Loss and Take Profit
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=2) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

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(id="Exit", stop = longStopPrice, limit = shortStopPrice)