Estratégia de canal de preços da Noro v1.1

Autora:ChaoZhang, Data: 2023-10-24 10:59:38
Tags:

img

Resumo

A Noros Price Channel Strategy v1.1 é uma estratégia de negociação de tendências baseada em canais de preços e mudanças de direção de preços. Esta estratégia combina o indicador de canal de preços e o indicador RSI rápido para identificar sinais de ruptura de preço do canal, juntamente com sinais de reversão de cor de vela vermelha/verde consecutivos para estabelecer posições longas / curtas. O objetivo desta estratégia é capturar a direção das tendências de médio a longo prazo, evitando o ruído das flutuações de curto prazo do mercado.

Estratégia lógica

A estratégia primeiro calcula a média dos preços mais altos e mais baixos durante um determinado período para construir um canal de preço médio. Quando o preço quebra acima do canal de baixo, é considerado um sinal longo. Quando o preço quebra abaixo do canal de cima, é considerado um sinal curto.

Ao mesmo tempo, a estratégia incorpora duas regras auxiliares: RSI rápido e cor da vela. Quando o RSI rápido está abaixo de 25%, ele indica o estado de sobrevenda e os preços podem se recuperar. Junto com uma quebra acima do canal, isso produz um sinal longo mais forte. Em contraste, quando o RSI rápido está acima de 75%, ele indica o estado de sobrecompra e os preços podem cair. Junto com uma quebra abaixo do canal, isso produz um sinal curto mais forte. Além disso, a estratégia acompanha as mudanças de cor da vela nas duas últimas velas. Duas velas vermelhas consecutivas aumentam o sinal curto, enquanto duas velas verdes consecutivas aumentam o sinal longo.

Ao combinar esses três indicadores de sinal, a estratégia pode identificar efetivamente tendências de médio a longo prazo e estabelecer posições de acordo.

Vantagens

A maior vantagem desta estratégia é a incorporação de múltiplos indicadores para determinar a direcção da tendência e evitar o ruído das flutuações de curto prazo do mercado.

  1. O canal de preços identifica claramente a direcção e a força da tendência.

  2. O RSI rápido avalia as condições de sobrecompra/supervenda para evitar perseguir tendências em pontos de virada.

  3. A validação da cor da vela verifica ainda mais a persistência da tendência.

  4. A estratégia só entra em duas velas consecutivas da mesma cor quebrando o canal, evitando falsos sinais de oscilações de curto prazo.

  5. O stop loss médio simples fecha as posições quando a cor da vela muda, minimizando as perdas efetivamente.

Riscos

Há também alguns riscos a considerar para esta estratégia:

  1. As configurações incorretas dos parâmetros do canal de preços podem resultar em canais demasiado largos ou demasiado estreitos, em pontos de mudança de tendência em falta ou em sinais falsos excessivos.

  2. As configurações incorretas dos parâmetros RSI rápidos podem não identificar com precisão as condições de sobrecompra/supervenda, perdendo assim oportunidades de reversão.

  3. O mecanismo de stop loss simples pode ser demasiado sensível a tendências agitadas, causando abertura e fechamento excessivos de posições.

  4. Não pode prever a continuação da tendência real após a ruptura do canal de preços, levando a perdas amplificadas.

  5. Não pode adaptar-se a eventos de cisne negro com impactos súbitos no mercado, resultando em perdas enormes.

Oportunidades de melhoria

Algumas das principais oportunidades para reforçar a estratégia incluem:

  1. Ajustar dinamicamente os parâmetros do canal de preços para melhor se adaptar à volatilidade em diferentes períodos e mercados.

  2. Incorporar medidas de volatilidade para ajustar os parâmetros do RSI, diminuindo a sensibilidade durante a alta volatilidade e aumentando a sensibilidade durante a baixa volatilidade.

  3. Adicionar mecanismos de stop de trail com níveis de stop baseados na volatilidade da tendência para evitar stop outs excessivamente sensíveis.

  4. Melhorar a identificação da força da ruptura e das divergências de baixa/alta para evitar falsas rupturas.

  5. Incorporar modelos de formação de dados históricos para ajudar a estimar pontos de virada de tendência de alta probabilidade e melhorar a precisão de entrada.

  6. Otimizar os modelos de dimensionamento das posições para ajustar dinamicamente as alocações com base nas condições de risco.

Conclusão

No geral, a estratégia de canal de preços da Noro é uma estratégia simples e prática de tendência. Incorpora vários indicadores para identificar direções de tendência de médio a longo prazo e estabelece regras de entrada relativamente prudentes. Há espaço para melhorias adicionais em áreas como mecanismos de stop loss e ajuste dinâmico de parâmetros. Mas a lógica geral é simples e clara, tornando-a fácil de implementar para negociação quantitativa, especialmente para iniciantes. Com ajuste de parâmetros e otimização de mecanismo, pode se tornar um sistema de negociação estável e confiável.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", 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")
usecol = input(true, defval = true, title = "Use color strategy")
usersi = input(true, defval = true, title = "Use RSI strategy")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
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")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

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

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and usecol
dn1 = gbars and close < center and usecol
up2 = fastrsi < 25 and close > center and usersi
dn2 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.equity / close * lev

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

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

Mais.