Índice de Força Relativa Modificado Tendência Seguindo Estratégia


Data de criação: 2024-03-29 16:16:37 última modificação: 2024-03-29 16:16:37
cópia: 9 Cliques: 605
1
focar em
1617
Seguidores

Índice de Força Relativa Modificado Tendência Seguindo Estratégia

Visão geral

A estratégia baseia-se em um índice de força relativamente fraco modificado (RSI modificado) para capturar a tendência do mercado. A principal idéia da estratégia é usar os sinais de cruzamento e os sinais de gráfico rectangular do indicador RSI modificado para julgar a tendência do mercado e negociar de acordo com a direção da tendência.

Princípio da estratégia

  1. EMA de preço calculado como a entrada do RSI Modificado
  2. Calculação do indicador RSI modificado
  3. Calculando o EMA do RSI Modificado como uma linha de sinal
  4. Calcule a diferença entre o RSI modificado e a linha de sinal como um diagrama retângulo
  5. Um sinal de compra é gerado quando a linha de sinal é atravessada pelo RSI Modificado e o diagrama é maior que 0
  6. Quando o Modified RSI atravessa a linha de sinal e o diagrama é menor que 0, gera um sinal de venda

Vantagens estratégicas

  1. O RSI modificado capta melhor as tendências do que o RSI tradicional
  2. Combinação de sinal de cruzamento Modified RSI e sinal de diagrama linear, para filtrar eficazmente os falsos sinais
  3. Parâmetros ajustáveis para diferentes mercados e ciclos
  4. Eficiência computacional e simplicidade

Risco estratégico

  1. O RSI modificado é propenso a sinais errados em mercados de turbulência
  2. A captação de pontos de inflexão pode estar atrasada
  3. Indicadores individuais são suscetíveis a ruído de preços

Direção de otimização da estratégia

  1. Pode ser combinado com outros indicadores de tendência, como a média móvel, para aumentar a confiabilidade do sinal
  2. Pode ser adicionado um módulo de stop loss para controlar o risco de uma única transação
  3. Parâmetros de otimização com base em diferentes características de mercado
  4. Pode ser adicionado um módulo de gerenciamento de posições para ajustar posições dinamicamente

Resumir

A estratégia utiliza as características do indicador Modified RSI para construir um sistema de negociação do ponto de vista do acompanhamento de tendências. O indicador Modified RSI supera algumas falhas do indicador RSI tradicional, com uma capacidade de captura de tendências relativamente forte. No entanto, a estratégia de um único indicador geralmente tem limitações e precisa ser melhorada em combinação com outros meios tecnológicos.

Código-fonte da estratégia
/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © YogirajDange

//@version=5


// Verical lines


// // Define the times
// t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15
// t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15
// t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15
// t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25

// // Check if the current bar is on the current day
// is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow))

// // Draw a vertical line at each time
// if is_today and (time == t1 or time == t2 or time == t3 or time == t4)
//     line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1)

strategy('Modified RSI')
col_grow_above = input(#02ac11, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below")
EMA_length = input.int(13, 'Price_EMA', minval=1)
RSI_length = input.int(14, 'RSI_Period', minval=1)
Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1)
fastMA = ta.ema(close, EMA_length)
modrsi = ta.rsi(fastMA, RSI_length)
RSIAVG = ta.ema(modrsi, Avg_length)
plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2)
plot(RSIAVG, color=color.rgb(247, 0, 0))
rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e)
//hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101)

RSI_hist = modrsi - RSIAVG

//plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5)

plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below)))


/////// Moving Averages 20 50 EMA

fast_ma = input.int(20, minval=2, title="Fast_EMA")
slow_ma = input.int(50, minval=2, title="Slow_EMA")

src = input.source(close, title="Source")

out = ta.ema(src, fast_ma)
out1 = ta.ema(src, slow_ma)

//plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2)
//plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2)


longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0))
if longCondition
    strategy.entry('B', strategy.long)

shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0))
if shortCondition
    strategy.entry('S', strategy.short)