Esta estratégia usa o indicador personalizado Noro Bands para determinar a direção da tendência e gera sinais de negociação com base em regras específicas. Os sinais são gerados quando o preço quebra as bandas.
Calcule as bandas de Noro. Determine os altos e baixos recentes com base no período do usuário e calcule as bandas média e superior/inferior.
Determine a direção da tendência. O preço acima da faixa superior é uma tendência de alta. O preço abaixo da faixa inferior é uma tendência de queda.
Gerar sinais. Comprar sinal quando o preço quebra abaixo da faixa inferior em tendência de alta. Vender sinal quando o preço quebra acima da faixa superior em tendência de baixa.
Integrar CryptoBottom. Adicionar oportunidades de compra quando o sinal CryptoBottom ocorre.
Regras de abertura de posição Os utilizadores podem optar por negociar apenas longo ou curto, sem selecção, negociar ambos os lados.
Pode mostrar ou esconder o plano das bandas.
As Bandas de Noro determinam efetivamente a direção da tendência.
Combinar a banda de escape evita falsos sinais de escape.
CryptoBottom melhora a qualidade dos sinais de compra.
Indicação do valor da transação.
Os parâmetros ajustáveis se adaptam a diferentes prazos.
Parâmetros inadequados podem causar falhas no cálculo da faixa.
Os sinais de fuga têm atraso.
O CryptoBottom não é completamente confiável.
Negociar apenas com um lado pode perder oportunidades.
O risco 1 pode ser abordado através da otimização de parâmetros.
O risco 2 pode ser melhorado combinando outros indicadores.
O risco 3 requer a validação do desempenho do CryptoBottom.
O risco 4 necessita de avaliar a rentabilidade da negociação unilateral.
Impacto dos parâmetros de teste nas bandas de Noro.
Avaliar outros indicadores de ruptura em vez de bandas de Noro.
Avaliação das estratégias de stop loss.
Teste a eficácia de negociações longas ou curtas.
Optimize os parâmetros para o CryptoBottom.
Esta estratégia usa Noro Bands para determinar tendência e sinais de ruptura para entradas de tempo.
/*backtest start: 2023-09-10 00:00:00 end: 2023-09-17 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.2", shorttitle = "NoroBands str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, "Use Color or bar") usecb = input(true, "Use CryptoBottom") needbb = input(true, defval = false, title = "Show Bands") needbg = input(true, defval = false, title = "Show Background") src = close //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)) //CryptoBottom mac = sma(close, 10) lencb = abs(close - mac) sma = sma(lencb, 100) max = max(open, close) min = min(open, close) //dn = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 90) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom longCondition = up == 1 or (up2 == 1 and usecb == true) if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)