Indicadores Técnicos em NTSL: Como Implementar
Por que Usar Indicadores Técnicos?
Indicadores técnicos são ferramentas matemáticas que analisam preço e volume para identificar padrões, tendências e sinais de compra/venda. Em NTSL, você tem acesso a uma biblioteca rica de indicadores prontos para usar.
Usar indicadores corretamente pode melhorar significativamente a qualidade dos sinais de entrada e saída. Mas usar muitos indicadores ou usá-los incorretamente pode gerar sinais conflitantes e confusão.
Este guia mostra como implementar os indicadores mais populares em NTSL, com exemplos práticos de uso.
RSI (Relative Strength Index)
Combo Análise Técnica
BlackArrow + Profit com screening multiativo
R$ 199,90/mês
- ✓ Robôs: SMC, Trend, Breakout, Elefante Bot, Trap Bot, Pullback Bot, Ignorado Bot
- ✓ BlackArrow + Profit
- ✓ Screening multiativo swing e day trade + análise técnica
- ✓ B3 e Global • Regra de coloração
- ✓ A partir de 1 contrato • Trader autônomo
RSI mede a força relativa de um ativo, indicando condições de sobrecompra (acima de 70) ou sobrevenda (abaixo de 30).
Implementação Básica
// Parâmetros
periodo_rsi = 14;
nivel_sobrevenda = 30;
nivel_sobrecompra = 70;
// Variáveis
rsi_atual = 0;
rsi_anterior = 0;
tick()
{
// Calcular RSI
rsi_atual = RSI(periodo_rsi);
rsi_anterior = RSI(periodo_rsi)[1];
// Detectar condições
sobrevendido = (rsi_atual < nivel_sobrevenda);
sobrecomprado = (rsi_atual > nivel_sobrecompra);
// Detectar divergências (RSI subindo enquanto preço cai)
divergencia_alta = (rsi_atual > rsi_anterior) e (Fechamento < Fechamento[1]);
// Detectar convergências (RSI caindo enquanto preço sobe)
divergencia_baixa = (rsi_atual < rsi_anterior) e (Fechamento > Fechamento[1]);
// Usar sinais
se(sobrevendido e divergencia_alta)
{
Escrever("Sinal de compra: RSI sobrevendido com divergência positiva");
// Lógica de compra
}
se(sobrecomprado e divergencia_baixa)
{
Escrever("Sinal de venda: RSI sobrecomprado com divergência negativa");
// Lógica de venda
}
}
Filtro RSI para Confirmar Tendências
// Usar RSI como filtro de tendência
tick()
{
rsi = RSI(14);
// Tendência de alta: RSI acima de 50
tendencia_alta = (rsi > 50);
// Tendência de baixa: RSI abaixo de 50
tendencia_baixa = (rsi < 50);
// Operar apenas a favor da tendência
se(tendencia_alta e sinal_compra)
{
Comprar(1);
}
se(tendencia_baixa e sinal_venda)
{
Vender(1);
}
}
MACD (Moving Average Convergence Divergence)
MACD mostra a relação entre duas médias móveis exponenciais, indicando mudanças na força, direção e momentum de uma tendência.
Implementação Completa
// Parâmetros MACD
periodo_rapido = 12;
periodo_lento = 26;
periodo_sinal = 9;
// Variáveis
macd_linha = 0;
macd_sinal = 0;
macd_histograma = 0;
macd_linha_anterior = 0;
macd_sinal_anterior = 0;
macd_histograma_anterior = 0;
tick()
{
// Calcular componentes do MACD
macd_linha = MACD(periodo_rapido, periodo_lento, periodo_sinal);
macd_sinal = MACDSinal(periodo_rapido, periodo_lento, periodo_sinal);
macd_histograma = MACDHistograma(periodo_rapido, periodo_lento, periodo_sinal);
// Valores anteriores
macd_linha_anterior = macd_linha[1];
macd_sinal_anterior = macd_sinal[1];
macd_histograma_anterior = macd_histograma[1];
// Sinais de compra
cruzamento_cima = (macd_linha > macd_sinal) e (macd_linha_anterior <= macd_sinal_anterior);
histograma_positivo = (macd_histograma > 0) e (macd_histograma_anterior <= 0);
histograma_crescendo = (macd_histograma > macd_histograma_anterior);
// Sinais de venda
cruzamento_baixo = (macd_linha < macd_sinal) e (macd_linha_anterior >= macd_sinal_anterior);
histograma_negativo = (macd_histograma < 0) e (macd_histograma_anterior >= 0);
histograma_decrescendo = (macd_histograma < macd_histograma_anterior);
// Usar sinais
se(cruzamento_cima ou histograma_positivo)
{
Escrever("Sinal MACD de compra");
// Lógica de compra
}
se(cruzamento_baixo ou histograma_negativo)
{
Escrever("Sinal MACD de venda");
// Lógica de venda
}
}
Bollinger Bands
Combo Análise Técnica
BlackArrow + Profit com screening multiativo
R$ 199,90/mês
- ✓ Robôs: SMC, Trend, Breakout, Elefante Bot, Trap Bot, Pullback Bot, Ignorado Bot
- ✓ BlackArrow + Profit
- ✓ Screening multiativo swing e day trade + análise técnica
- ✓ B3 e Global • Regra de coloração
- ✓ A partir de 1 contrato • Trader autônomo
Bandas de Bollinger mostram volatilidade e níveis de suporte/resistência dinâmicos. Preços próximos da banda superior indicam possível sobrecompra, próximos da inferior indicam possível sobrevenda.
Implementação
// Parâmetros
periodo_bb = 20;
desvio_padrao = 2.0;
// Variáveis
banda_superior = 0;
banda_inferior = 0;
banda_media = 0;
preco_atual = 0;
tick()
{
// Calcular bandas
banda_superior = BollingerSuperior(periodo_bb, desvio_padrao);
banda_inferior = BollingerInferior(periodo_bb, desvio_padrao);
banda_media = BollingerMedia(periodo_bb, desvio_padrao);
preco_atual = Fechamento;
// Estratégia: Reversão nas bandas
tocou_banda_superior = (preco_atual >= banda_superior);
tocou_banda_inferior = (preco_atual <= banda_inferior);
// Estratégia: Breakout das bandas
rompeu_banda_superior = (preco_atual > banda_superior) e (Fechamento[1] <= banda_superior[1]);
rompeu_banda_inferior = (preco_atual < banda_inferior) e (Fechamento[1] >= banda_inferior[1]);
// Estratégia: Retorno à média
abaixo_da_media = (preco_atual < banda_media);
acima_da_media = (preco_atual > banda_media);
// Usar sinais
se(tocou_banda_inferior e abaixo_da_media)
{
Escrever("Sinal de compra: Preço tocou banda inferior");
// Lógica de compra (reversão)
}
se(rompeu_banda_superior e volume > MediaMovel(20, Volume))
{
Escrever("Sinal de compra: Breakout da banda superior com volume");
// Lógica de compra (breakout)
}
}
Combo Análise Técnica
BlackArrow + Profit com screening multiativo
R$ 199,90/mês
- ✓ Robôs: SMC, Trend, Breakout, Elefante Bot, Trap Bot, Pullback Bot, Ignorado Bot
- ✓ BlackArrow + Profit
- ✓ Screening multiativo swing e day trade + análise técnica
- ✓ B3 e Global • Regra de coloração
- ✓ A partir de 1 contrato • Trader autônomo
ATR (Average True Range)
ATR mede volatilidade. É útil para ajustar stop loss e take profit dinamicamente baseado nas condições de mercado.
Implementação
// Parâmetros
periodo_atr = 14;
multiplicador_stop = 2.0;
multiplicador_tp = 3.0;
// Variáveis
atr_atual = 0;
stop_loss_dinamico = 0;
take_profit_dinamico = 0;
tick()
{
// Calcular ATR
atr_atual = ATR(periodo_atr);
// Calcular stop loss e take profit baseados em ATR
stop_loss_dinamico = atr_atual * multiplicador_stop;
take_profit_dinamico = atr_atual * multiplicador_tp;
se(PosicaoAberta())
{
preco_entrada = PrecoEntrada();
preco_atual = Fechamento;
se(TipoPosicao() == "COMPRA")
{
// Stop loss baseado em ATR
perda_pontos = preco_entrada - preco_atual;
se(perda_pontos >= stop_loss_dinamico)
{
FecharPosicao();
Escrever("Stop loss ATR: " + perda_pontos + " pontos (ATR: " + atr_atual + ")");
}
// Take profit baseado em ATR
lucro_pontos = preco_atual - preco_entrada;
se(lucro_pontos >= take_profit_dinamico)
{
FecharPosicao();
Escrever("Take profit ATR: " + lucro_pontos + " pontos");
}
}
}
}
Stochastic Oscillator
Combo Análise Técnica
BlackArrow + Profit com screening multiativo
R$ 199,90/mês
- ✓ Robôs: SMC, Trend, Breakout, Elefante Bot, Trap Bot, Pullback Bot, Ignorado Bot
- ✓ BlackArrow + Profit
- ✓ Screening multiativo swing e day trade + análise técnica
- ✓ B3 e Global • Regra de coloração
- ✓ A partir de 1 contrato • Trader autônomo
Stochastic compara preço de fechamento com a faixa de preços em um período, identificando condições de sobrecompra/sobrevenda.
Implementação
// Parâmetros
periodo_stoch = 14;
periodo_suavizacao = 3;
nivel_sobrevenda = 20;
nivel_sobrecompra = 80;
// Variáveis
stoch_k = 0;
stoch_d = 0;
tick()
{
// Calcular Stochastic
// Nota: Função exata depende da implementação do NTSL
// Este é um exemplo conceitual
stoch_k = Stochastic(periodo_stoch, periodo_suavizacao);
stoch_d = StochasticD(periodo_stoch, periodo_suavizacao);
// Detectar cruzamentos
cruzamento_cima = (stoch_k > stoch_d) e (stoch_k[1] <= stoch_d[1]);
cruzamento_baixo = (stoch_k < stoch_d) e (stoch_k[1] >= stoch_d[1]);
// Condições de sobrevenda/sobrecompra
sobrevendido = (stoch_k < nivel_sobrevenda);
sobrecomprado = (stoch_k > nivel_sobrecompra);
// Sinais
sinal_compra = sobrevendido e cruzamento_cima;
sinal_venda = sobrecomprado e cruzamento_baixo;
se(sinal_compra)
{
Escrever("Sinal Stochastic de compra");
// Lógica de compra
}
se(sinal_venda)
{
Escrever("Sinal Stochastic de venda");
// Lógica de venda
}
}
ADX (Average Directional Index)
ADX mede a força de uma tendência, não sua direção. Valores acima de 25 indicam tendência forte.
Implementação
// Parâmetros
periodo_adx = 14;
nivel_tendencia_forte = 25;
// Variáveis
adx = 0;
di_positivo = 0; // DI+
di_negativo = 0; // DI-
tick()
{
// Calcular ADX e DI
// Nota: Funções exatas dependem da implementação
adx = ADX(periodo_adx);
di_positivo = DIPositivo(periodo_adx);
di_negativo = DINegativo(periodo_adx);
// Detectar força da tendência
tendencia_forte = (adx > nivel_tendencia_forte);
// Detectar direção da tendência
tendencia_alta = (di_positivo > di_negativo);
tendencia_baixa = (di_negativo > di_positivo);
// Usar como filtro
se(tendencia_forte e tendencia_alta)
{
Escrever("Tendência de alta forte detectada");
// Operar apenas compras
}
se(tendencia_forte e tendencia_baixa)
{
Escrever("Tendência de baixa forte detectada");
// Operar apenas vendas
}
se(nao tendencia_forte)
{
Escrever("Mercado lateral - evitar operações de tendência");
// Não operar ou usar estratégias de reversão
}
}
Combinando Múltiplos Indicadores
Combo Análise Técnica
BlackArrow + Profit com screening multiativo
R$ 199,90/mês
- ✓ Robôs: SMC, Trend, Breakout, Elefante Bot, Trap Bot, Pullback Bot, Ignorado Bot
- ✓ BlackArrow + Profit
- ✓ Screening multiativo swing e day trade + análise técnica
- ✓ B3 e Global • Regra de coloração
- ✓ A partir de 1 contrato • Trader autônomo
Os melhores robôs combinam múltiplos indicadores para confirmar sinais:
tick()
{
// Calcular todos os indicadores
rsi = RSI(14);
macd_linha = MACD(12, 26, 9);
macd_sinal = MACDSinal(12, 26, 9);
media_rapida = MediaMovel(9, Fechamento);
media_lenta = MediaMovel(21, Fechamento);
atr = ATR(14);
// Condições para compra (todas devem ser verdadeiras)
condicao1 = Fechamento > media_lenta; // Preço acima da média
condicao2 = media_rapida > media_lenta; // Médias alinhadas
condicao3 = rsi > 50 e rsi < 70; // RSI em zona favorável
condicao4 = macd_linha > macd_sinal; // MACD positivo
condicao5 = atr > MediaMovel(20, ATR(14)); // Volatilidade aumentando
// Sinal de compra com múltiplas confirmações
sinal_compra_forte = condicao1 e condicao2 e condicao3 e condicao4 e condicao5;
se(sinal_compra_forte e nao PosicaoAberta())
{
Comprar(1);
Escrever("Compra com 5 confirmações de indicadores");
}
}
Conclusão: Usando Indicadores Eficientemente
Indicadores são ferramentas poderosas, mas devem ser usados com sabedoria. Algumas dicas finais:
- Menos é mais: 2-3 indicadores bem usados são melhores que 10 indicadores conflitantes
- Combine tipos diferentes: Use indicadores de tendência + momentum + volatilidade
- Teste extensivamente: Cada indicador se comporta diferente em diferentes condições
- Adapte parâmetros: Períodos padrão podem não ser ideais para seu ativo/timeframe
- Use como filtro: Indicadores são melhores como filtros de confirmação que como sinais únicos
Com estes exemplos, você tem uma base sólida para implementar indicadores técnicos em seus robôs NTSL. Pratique, teste e adapte conforme suas necessidades.