A tendência segue a estratégia

Autora:ChaoZhang, Data: 2023-09-25 17:50:11
Tags:

Resumo

A estratégia de seguimento de tendências da Noro é uma estratégia de negociação de tendências simples baseada no canal de preços, RSI e filtro corporal.

Estratégia lógica

Os principais aspectos são:

  1. O canal de preços determina a tendência geral.

  2. RSI indica sobrecompra/supervenda para o momento de entrada. RSI acima de 60 é sobrecompra, abaixo de 40 é zona de sobrevenda.

  3. O filtro do corpo fornece o sinal final. Negocia apenas se o corpo da vela exceder um limite para evitar ruído.

  4. Entradas baseadas na combinação de tendência, sinal RSI e filtro corporal. Entradas longas em tendência de alta em sinais de alta, entradas curtas em tendência de baixa em sinais de baixa.

  5. As cores de fundo opcionais visualizam claramente a tendência.

  6. Temporários de negociação personalizáveis para negociação seletiva.

Vários indicadores alinham-se para criar uma tendência relativamente estável seguindo o sistema.

Vantagens

As principais vantagens são:

  1. O canal de preços identifica intuitivamente a direção geral da tendência.

  2. O RSI detecta efetivamente os níveis de sobrecompra/supervenda para a entrada de tempo.

  3. O filtro corporal melhora a qualidade do sinal e evita sinais falsos.

  4. A confirmação multi-indicador melhora a precisão.

  5. Indicadores simples reduzem os riscos de ajustamento da curva.

  6. Os prazos de negociação personalizáveis acrescentam flexibilidade.

  7. Fácil de usar, com parâmetros mínimos, amigável para iniciantes.

  8. As cores de fundo proporcionam clareza visual.

Riscos

Alguns riscos a considerar:

  1. Risco de identificação errada da tendência do canal de preços.

  2. Riscos de sinais RSI imprecisos.

  3. Filtro corporal eliminando sinais válidos.

  4. Risco de utilização durante as correcções de tendência.

  5. Risco de otimização devido a um mau ajuste dos parâmetros.

  6. Risco de posicionamento de dimensão decorrente da atribuição total por defeito.

  7. Risco de seleção de instrumentos, se aplicado a ativos não de tendência.

  8. Riscos relacionados com os prazos de negociação se estiverem configurados de forma inadequada.

Oportunidades de melhoria

Algumas possibilidades de melhoria:

  1. Adicionar estratégia de stop loss para controlar a perda por transação.

  2. Otimizar os parâmetros com base no comportamento do instrumento.

  3. Incorporar regras de dimensionamento de posições baseadas na força da tendência.

  4. Implementar limites de retirada para conter perdas.

  5. Adicionar análise de preços de volume para verificação de sinal.

  6. Introduzir aprendizado de máquina para otimização de parâmetros.

  7. Parâmetros especializados com base na classe de ativos.

  8. Refinar a lógica do prazo de negociação para mais flexibilidade.

Conclusão

A estratégia de seguimento de tendências da Noro integra o canal de preços, o RSI e o filtro corporal em um sistema de negociação de tendências simples e prático.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "long")
needshort = input(true, defval = true, title = "short")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Mais.