Licensed to Jose Carlos - [email protected] - 059.616.
134-45
APOSTILA
CURSO PROGRAMAÇÃO PROFITCHART
www.ScApp.link/cursos
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
CONTEÚDO
1. Curso ProfitChart ....................................................................................................................... 11
1.1. Introdução ................................................................................................................................................ 11
2. Análise Técnica ......................................................................................................................... 12
2.1. Introdução ................................................................................................................................................ 12
2.2. O que é um gráfico? .............................................................................................................................. 12
2.3. Características Importantes .................................................................................................................. 13
2.4. Por que Análise Técnica? ....................................................................................................................... 16
2.5. Uso de Tendências .................................................................................................................................. 17
2.6. Suporte e Resistência ............................................................................................................................. 21
1 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.7. Volume ...................................................................................................................................................... 24
2.8. Padrões Gráficos .................................................................................................................................... 26
3. Indicadores................................................................................................................................ 34
3.1. Conceitos .................................................................................................................................................. 34
2 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.2. Tipos de Indicadores .............................................................................................................................. 36
3.3. Tipos de Construção ............................................................................................................................... 37
3.4. Tipos de Apresentação .......................................................................................................................... 38
3.5. Sinais ......................................................................................................................................................... 40
3.6. Tipos de Indicadores .............................................................................................................................. 41
4. Básico Programação ................................................................................................................. 43
4.1. Ferramenta............................................................................................................................................... 43
4.2. Programação no ProfitChart ................................................................................................................ 43
5. Lógica de Programação............................................................................................................. 44
5.1. Introdução ................................................................................................................................................ 44
5.2. Palavras reservadas .............................................................................................................................. 44
5.3. Modelo de Execução do Código ......................................................................................................... 45
5.4. Depuração ............................................................................................................................................... 45
3 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.5. Variáveis .................................................................................................................................................. 46
5.6. Parâmetros ............................................................................................................................................... 47
5.7. Séries de Dados ...................................................................................................................................... 48
5.8. Operadores ............................................................................................................................................. 49
5.9. Controles de Fluxo .................................................................................................................................. 53
5.10. Funções...................................................................................................................................................... 60
6. Funções - Gráficas .................................................................................................................... 61
6.1. Funções Gráficas Básicas ...................................................................................................................... 61
6.2. Funções Gráficas de Preço ................................................................................................................... 65
6.3. Funções Gráficas de Indexação .......................................................................................................... 65
7. Funções - Matemáticas.............................................................................................................. 66
7.1. Funções Matemáticas ............................................................................................................................. 66
7.2. Funções Geométricas ............................................................................................................................. 67
4 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
8. Funções - Calendário ................................................................................................................ 68
8.1. Funções Calendário ................................................................................................................................ 68
8.2. Funções Séries de Dados....................................................................................................................... 71
8.3. Funções Calendário - Outros ................................................................................................................ 73
9. Funções - Candlestick................................................................................................................ 74
9.1. Funções de Candle ................................................................................................................................. 74
5 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10. Funções - Indicadores ............................................................................................................... 85
10.1. Médias Móveis ........................................................................................................................................ 85
10.2. MACD........................................................................................................................................................ 87
10.3. Acumulação Distribuição........................................................................................................................ 88
10.4. Índice Direcional Médio ......................................................................................................................... 88
10.5. Estocástico ................................................................................................................................................ 89
10.6. CCI ............................................................................................................................................................. 90
10.7. OBV ........................................................................................................................................................... 90
10.8. RSI .............................................................................................................................................................. 91
10.9. Bandas de Bollinger ............................................................................................................................... 91
10.10. Aroon Line ........................................................................................................................................ 92
10.11. Volume .............................................................................................................................................. 93
11. Médias Móveis .......................................................................................................................... 95
11.1. Objetivo.................................................................................................................................................... 95
11.2. Uso ............................................................................................................................................................. 95
11.3. Tipo............................................................................................................................................................ 95
6 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
11.4. Básico ........................................................................................................................................................ 95
11.5. Média Móvel Simples (Aritmética) ...................................................................................................... 95
11.6. Média Móvel Ponderada Linear ......................................................................................................... 96
11.7. Média Móvel Exponencial .................................................................................................................... 97
11.8. Interpretação ........................................................................................................................................... 97
11.9. Sinais ......................................................................................................................................................... 97
12. MACD Moving Average Convergence Divergence ................................................................... 98
12.1. Objetivo.................................................................................................................................................... 98
12.2. Uso ............................................................................................................................................................. 98
12.3. Tipo............................................................................................................................................................ 98
12.4. Básico ........................................................................................................................................................ 98
12.5. Períodos .................................................................................................................................................... 99
1.6 Interpretação ........................................................................................................................................... 99
12.6. Cruzamentos ............................................................................................................................................ 99
12.7. Divergências ......................................................................................................................................... 100
12.8. Falsos Sinais .......................................................................................................................................... 101
12.9. Limitações .............................................................................................................................................. 101
13. ACCUDISTR - Acumulação / Distribuição ...............................................................................103
13.1. Objetivo................................................................................................................................................. 103
13.2. Uso .......................................................................................................................................................... 103
13.3. Tipo......................................................................................................................................................... 103
13.4. AD vs WAD ........................................................................................................................................... 103
13.5. Básico ..................................................................................................................................................... 103
13.6. Interpretação ........................................................................................................................................ 104
14. ADX Índice Direcional Médio ..................................................................................................105
14.1. Objetivo................................................................................................................................................. 105
7 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
14.2. Uso .......................................................................................................................................................... 105
14.3. Tipo......................................................................................................................................................... 105
14.4. O ADX utiliza........................................................................................................................................ 105
14.5. 1.5 Básico .............................................................................................................................................. 105
14.6. Interpretação ........................................................................................................................................ 105
15. Oscilador Estocástico ..............................................................................................................106
15.1. Objetivo................................................................................................................................................. 106
15.2. Tipo......................................................................................................................................................... 106
15.3. 1.3 Básico .............................................................................................................................................. 106
15.4. Linhas Estocástico ................................................................................................................................. 107
15.5. Interpretação ........................................................................................................................................ 107
15.6. Sinais ...................................................................................................................................................... 107
15.7. Limitações .............................................................................................................................................. 108
15.8. Diferença com IFR (Índice de Força Relativa). ............................................................................... 108
16. CCI Commodity Channel Index ...............................................................................................109
16.1. Objetivo................................................................................................................................................. 109
16.2. Tipo......................................................................................................................................................... 109
16.3. Básico ..................................................................................................................................................... 109
16.4. Dimensionamento ................................................................................................................................. 109
16.5. Interpretação ........................................................................................................................................ 110
16.6. Sinais ...................................................................................................................................................... 110
16.7. Limitações .............................................................................................................................................. 110
17. OBV On-Balance Volume........................................................................................................112
17.1. Objetivo................................................................................................................................................. 112
17.2. Tipo......................................................................................................................................................... 112
17.3. Básico ..................................................................................................................................................... 112
8 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
17.4. Interpretação ........................................................................................................................................ 113
17.5. Limitações .............................................................................................................................................. 113
18. RSI Relative Strength Index .....................................................................................................114
18.1. Objetivo................................................................................................................................................. 114
18.2. Tipo......................................................................................................................................................... 114
18.3. Básico ..................................................................................................................................................... 114
19. Aroon Line ..............................................................................................................................116
19.1. Objetivo................................................................................................................................................. 116
19.2. Tipo......................................................................................................................................................... 116
19.3. Básico ..................................................................................................................................................... 116
19.4. Sinais ...................................................................................................................................................... 117
19.5. Interpretação ........................................................................................................................................ 117
20. Funções de Volume .................................................................................................................118
20.1. Objetivo................................................................................................................................................. 118
20.2. Tipo......................................................................................................................................................... 118
20.3. Interpretação ........................................................................................................................................ 118
20.4. Funções e Indicadores ......................................................................................................................... 118
20.5. Funções de Tape Reading relacionadas a Volume ....................................................................... 119
21. Funções de Alarme .................................................................................................................120
21.1. Gerenciador de Alarmes ................................................................................................................... 120
21.2. Lista de Funções ................................................................................................................................... 120
22. Funções Backtesting ................................................................................................................121
22.1. Tipos de Ordens .................................................................................................................................. 121
22.2. Lista de Funções ................................................................................................................................... 122
9 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
23. Funções BackTest ....................................................................................................................123
23.1. Lista de Funções ................................................................................................................................... 123
24. Automação (Robôs) ................................................................................................................124
24.1. Modelo de Execução .......................................................................................................................... 124
24.2. Conceitos Importantes ......................................................................................................................... 125
10 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
1. Curso PROFITCHART
1.1. INTRODUÇÃO
Esta apostila proporciona um guia de referência para os alunos do curso de programação para Profitchart e
por tanto sem o devido contexto pode não fornecer a informação completa.
O conteúdo desta apostila acompanha as vídeo aulas da versão 3.1 do curso.
1.1.1. O QUE ESTE CURSO, NÃO É?
• Não é um curso sobre sistemas operacionais ou estratégias de operação para o mercado de ações.
• Não é um curso sobre ‘calls’ para o mercado de ações.
• Não é um curso com foco em análise técnica, apesar do curso possuir um capítulo dedicado a esse
tópico, a intenção é construir uma base para o contexto em que nós iremos programar, que é o mercado
financeiro.
1.1.2. O QUE ESTE CURSO É?
Um curso de programação avançado e específico para a plataforma Profitchart (Nelogica ®), usando a
linguagem de programação NTSL (Nelogica Trading System Language).
Por cobrir o tópico partindo dos pontos mais básicos, exemplo, como ler um gráfico, também serve como um
guia básico para iniciantes no mercado financeiro.
1.1.2.1. OBJETIVO
Permitir que o aluno ao final do curso possa criar suas próprias regras de coloração, indicadores, estratégias
de execução para realizar e analisar backtesting e executar estratégias de automação (robôs).
1.1.2.2. PÚBLICO-ALVO
Iniciantes no mercado de ações - sem nenhuma experiência.
Investidores com experiência intermediária no mercado, porém querem desenvolver seu conhecimento sobre
programação na plataforma Profitchart (Nelógica) através da linguagem NTSL.
1.1.2.3. DIDÁTICA
Será necessário desenvolver o conhecimento gradativamente tanto sobre mercado, da lógica de programação
em si quanto da própria ferramenta (Profit).
1.1.2.4. CAMINHO DAS PEDRAS
Estudar Lógica de Programação para entendermos os componentes de uma linguagem de programação e o
modelo de execução da linguagem de programação NTSL aplicada para o Profitchart.
Estudar funções e funcionalidades disponíveis através do editor de estratégias para a plataforma Profitchart.
Aplicar o conhecimento em modelos operacionais através de alertas, regras de coloração, indicadores,
estudos de screening e backtesting, e finalmente execução de estratégias de automação (robôs).
11 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2. ANÁLISE TÉCNICA
2.1. INTRODUÇÃO
2.1.1. ANÁLISE TÉCNICA VS ANÁLISE FUNDAMENTALISTA
A análise técnica e a análise fundamentalista são as duas principais escolas de pensamento do mercado
financeiro.
A análise técnica analisa o movimento dos preços de um título e usa esses dados para prever ou projetar futuras
movimentações de preços.
• A ferramenta mais importante do analista técnico é o gráfico.
A análise fundamental, por outro lado, analisa fatores econômicos, conhecidos como fundamentos. Por exemplo:
• Balanço patrimonial;
• Demonstração de resultados e dos fluxos de caixa;
Com essas informações um analista fundamental tenta determinar o valor de uma empresa e determinar bons
momentos de compra e venda.
2.2. O QUE É UM GRÁFICO?
Na análise técnica, gráficos são representações visuais da movimentação de uma série de preços (ou outros
valores) em um período definido, por exemplo, um gráfico pode mostrar o movimento do preço de uma ação
durante um período de 12 meses, onde cada ponto no gráfico representa o preço de fechamento de cada dia
em que a ação é negociada:
Figura 1. Exemplo de gráfico
12 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.3. CARACTERÍSTICAS IMPORTANTES
2.3.1. PERÍODO GRÁFICO
‘Período do Gráfico’ se refere ao limite de datas no eixo horizontal (x) do gráfico, podendo variar de décadas
até segundos. Os mais usados são:
• Intraday (Períodos dentro do mesmo dia, hora em hora, minuto a minuto etc.)
Hora 60 1H
Minuto 1 1
Segundo 1E 1S
• Outros Períodos
Diário 1D 1D
Semanal 1S 1W
Mensal 1M 1M
2.3.2. ESCALAS DO GRÁFICO
Figura 2. Escalas de gráfico Aritmética e Logarítmica
13 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Gráficos construídos na escala aritmética (linear):
• O espaço entre cada ponto de preço, ex. R$10, R$20, R$30, R$40 são separados por um espaçamento
de igual tamanho.
• Isso significa que, o movimento de preço de R$10 para R$20 tem a mesma distância no gráfico de um
movimento de R$40 para R$50.
Gráficos construídos na escala (semi) logarítmica:
• A distância será igual em termos de variação percentual e não em valores absolutos.
• Por tanto, por exemplo, uma variação de R$10 para R$20 representa um aumento de 100% no preço
e uma mudança de R$40 para R$50, é uma alteração de 25%.
• Isso significa, que a mudança de R$10 para R$20 tem um espaço maior do que a mudança de R$40
para R$50.
Figura 3. Diferenças entre Escalas Aritmética e Logarítmica
A visualização da movimentação de preço na escala logarítmica é ‘mais justa’ do ponto de vista financeiro,
pois a rentabilidade em % na escala aritmética pode esconder a real rentabilidade, dependendo da
referência, algo que não acontece na escala logarítmica, onde a rentabilidade em % está 'travada' ao valor
de referência.
14 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.3.3. SÉRIE DE DADOS
Cada ponto representa, para uma data específica, o preço de:
• Fechamento, (Preço no momento de fechamento de um período, seja 1H ou 1D)
• Abertura, (Preço no momento de abertura de um período, seja 1H ou 1D)
• Máxima, (Preço mais alto atingido num determinado período, seja 1H ou 1D)
• Mínima, (Preço mais baixo atingido num determinado período, seja 1H ou 1D)
Nota: No gráfico de linha - o preço de fechamento é o preço padrão.
2.3.4. TIPOS DE GRÁFICO
Os mais utilizados:
Gráfico de Linha
• O mais básico dos quatro gráficos é o gráfico de linhas porque representa apenas os preços de
fechamento durante um período definido.
• A linha é formada pela conexão dos preços de fechamento no período.
• Os gráficos de linhas não fornecem informações visuais do intervalo de negociação para os pontos
individuais, como preços de máxima, mínima e abertura.
• O preço de fechamento é frequentemente considerado o preço mais importante nos dados de ações e
é por isso que é o único valor usado nos gráficos de linhas.
Gráfico de Barras
• O gráfico de barras adiciona várias outras informações importantes a cada ponto de dados.
• O gráfico é composto de uma série de linhas verticais que representam cada ponto de dados.
• Essa linha vertical representa a amplitude entre a máxima e a mínima que os preços atingiram dentro
de um período de negociação.
• Os preços de fechamento e abertura são representados com linhas horizontais para direita e para a
esquerda da linha vertical.
Gráfico de Velas (Candlestick)
• O gráfico de velas é semelhante a um gráfico de barras, mas difere na maneira como é construído
visualmente.
• Semelhante ao gráfico de barras, a vela também possui uma fina linha vertical que mostra a faixa de
negociação do período (diferença entre a máxima e a mínima do período), também conhecida como
sombra ou pavio da vela.
• A diferença ocorre na formação de uma barra larga na linha vertical, que ilustra a diferença entre os
preços de abertura e fechamento do período, também conhecido como ‘corpo’ da vela.
• Um padrão de cores é definido para estabelecer a ordem dos preços de abertura e fechamento.
15 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 4. Na esquerda, o gráfico de barras. Na direita, o gráfico de velas (Candlestick).
2.4. POR QUE ANÁLISE TÉCNICA?
2.4.1. TRÊS SUPOSIÇÕES
O mercado desconta tudo
• O argumento é de que o preço de uma ação reflete tudo o que afeta, já afetou ou poderia afetar a
empresa - incluindo fatores fundamentais.
• Os analistas técnicos acreditam que os fundamentos da empresa, juntamente com fatores econômicos
mais amplos e psicologia do mercado, são todos cotados em ações, eliminando a necessidade de
realmente considerar esses fatores separadamente.
O preço se move em tendências
• Na análise técnica, acredita-se que os movimentos de preços sigam tendências.
• Isso significa que, uma vez que uma tendência é estabelecida, é mais provável que o movimento futuro
dos preços siga a mesma direção da tendência estabelecida do que contra ela.
• A maioria das estratégias técnicas de negociação é baseada nessa premissa.
A tendências históricas tendem a se repetir
• Outra ideia importante na análise técnica é que a história tende a se repetir, principalmente em termos
de movimento de preços. A natureza repetitiva dos movimentos de preços é atribuída à psicologia do
mercado;
• Em outras palavras, os participantes do mercado tendem a fornecer uma reação consistente a estímulos
similares ao longo do tempo.
• A análise técnica utiliza padrões gráficos para analisar os movimentos do mercado e entender as
tendências.
16 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos - [email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.5. USO DE TENDÊNCIAS
2.5.1. DEFINIÇÃO
Um dos conceitos mais importantes na análise técnica é o de tendência. O significado em finanças não é tão
diferente da definição geral do termo:
“Uma tendência nada mais é do que a direção geral em que o preço de um ativo ou um índice está indo.”
Figura 5. Exemplo de Tendência
Definir uma tendência vai muito além do óbvio, em qualquer gráfico, você provavelmente notará que os preços
não tendem a se mover em linha reta em nenhuma direção, mas em uma série de altas e baixas.
Na análise técnica, é o movimento dos preços de máxima e mínima que constituem uma tendência.
Uma definição mais formal de tendência:
Tendência de ALTA Classificada como uma série de preços (máximas e mínimas) mais altas que as
anteriores.
Tendência de BAIXA Classificada como uma série de preços (mínimas e máximas) mais baixas que as
anteriores.
17 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 6. Exemplo de Tendência de Alta
2.5.2. TIPOS DE TENDÊNCIAS
• Tendências de Alta
• Tendências de Baixa
• Tendências Laterais
Figura 7. Tipos de Tendências
18 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.5.3. COMPRIMENTOS
Juntamente com essas três direções de tendência, existem três classificações de tendência em termos de
mercado de ações:
Longo Prazo > de 1 ano.
Médio Prazo De 1 a 3 meses.
Curto Prazo < de 1 mês.
Uma tendência de longo prazo é composta por várias tendências intermediárias de médio prazo, que
geralmente se movem contra a direção da tendência principal.
Se a tendência principal for ascendente e houver uma correção descendente no movimento dos preços seguida
de uma continuação da tendência de alta, a correção será considerada uma tendência intermediária.
As tendências de curto prazo são componentes das tendências principais e intermediárias.
2.5.4. LTA / LTB
Uma linha de tendência de alta (LTA) é desenhada conectando os pontos baixos (mínimas dos preços) de uma
tendência ascendente. Essa linha representa o suporte que o preço tem toda vez que passa de uma máxima
para uma mínima. Esse tipo de linha de tendência ajuda os investidores a antecipar o ponto em que o preço
de uma ação começará a subir novamente.
Figura 8. Exemplo de LTA
19 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Da mesma forma, uma linha de tendência de baixa (LTB) é traçada nas máximas da tendência descendente.
Essa linha representa o nível de resistência que uma ação enfrenta toda vez que o preço passa de uma mínima
para uma máxima.
Figura 9. Exemplo de LTB
2.5.5. CANAIS
Um canal, ou linhas de canal, é a adição de duas linhas de tendência paralelas que atuam como áreas fortes
de suporte e resistência.
• A linha de tendência superior conecta uma série de máximas.
• Enquanto a linha de tendência inferior conecta uma série de mínimas.
Um canal pode se inclinar:
• Para cima;
• Para baixo;
• Para os lados;
Independentemente da direção, a interpretação permanece a mesma.
Os analistas esperam que uma determinada ação seja negociada entre os dois níveis de suporte e resistência
até que um desses níveis seja rompido, nesse caso, se espera um movimento acentuado na direção do
rompimento. Juntamente com a exibição clara da tendência, os canais são usados principalmente para ilustrar
áreas importantes de suporte e resistência.
20 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 10. Exemplo de Canal
2.6. SUPORTE E RESISTÊNCIA
2.6.1. DEFINIÇÃO
Depois de entender o conceito de uma tendência, o próximo grande conceito é o de suporte e resistência.
Você já deve ter ouvido analistas técnicos descrevendo movimentos de preços como batalhas entre touros e
ursos, ou a luta entre compradores (demanda) e vendedores (oferta).
Touros Compradores Candles/Barras de ALTA Fechamento > Abertura
Ursos Vendedores Candles/Barras de BAIXA Fechamento < Abertura
Isso é representado pelos preços de um ativo tentando romper níveis de suporte ou resistência.
Suporte é o nível de preço pelo qual uma ação ou mercado não conseguir cair abaixo.
Resistência, por outro lado, é o nível de preço que uma ação ou mercado não consegue ultrapassar.
21 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 11. Exemplo de Linhas de Resistência e Suporte
2.6.2. POR QUE SÃO IMPORTANTES?
Esses níveis de suporte e resistência são vistos como importantes em termos de psicologia de mercado e oferta
e demanda. Níveis de suporte e resistência são os níveis em que muitos investidores estão dispostos a:
• Comprar as ações (no caso de um suporte),
• Vendê-las (no caso de resistência).
Quando essas linhas de tendência são rompidas, acredita-se que a oferta e a demanda tenham se invertido,
ou seja, a psicologia por trás dos movimentos das ações tenha mudado, neste caso, provavelmente, novos níveis
de suporte e resistência serão estabelecidos.
2.6.3. NÚMEROS REDONDOS
Um tipo de suporte e resistência universal que tende a ser visto em muitas ações são os números redondos.
• Números redondos como 10, 20, 35, 50, 100 e 1.000 tendem a ser importantes nos níveis de suporte
e resistência;
• Geralmente representam os principais pontos de virada psicológica nos quais muitos investidores tomam
decisões de compra ou venda.
Os compradores geralmente compram grandes quantidades de ações quando o preço começa a cair em
direção a um grande número redondo, como R$ 50, o que por consequência dificulta a queda do preço desta
ação abaixo deste preço, tornando-o um nível de suporte.
22 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Por outro lado, os vendedores começam a vender uma ação à medida que ela avança em direção a um pico
de número redondo, por tanto, dificultando também a passagem desse nível superior.
É o aumento da pressão de compra e venda nesses níveis que os torna importantes pontos de apoio e resistência
e, em muitos casos, também importantes pontos psicológicos.
2.6.4. REVERSÃO DE PAPEL
Uma vez que um nível de resistência ou suporte é rompido, seu papel é revertido.
• Se o preço cair abaixo de um nível de suporte, esse nível se tornará resistência.
• Se o preço subir acima do nível de resistência, ele geralmente se tornará suporte.
À medida que o preço ultrapassa um nível de suporte ou resistência, acredita-se que a oferta e a demanda
tenham mudado, fazendo com que o nível violado inverta seu papel, porém, para que ocorra uma reversão
verdadeira, é importante que o preço faça um movimento forte de rompimento do suporte ou da resistência.
Figura 12. Exemplo de Reversão de Papel
23 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.6.5. IMPORTÂNCIA DE SUPORTES E RESISTÊNCIAS
Podem ser usados para tomar decisões de negociação e identificar quando uma tendência está revertendo.
Por exemplo, se um investidor identifica um nível importante de resistência que foi testado várias vezes, mas
nunca rompido, ele pode decidir obter lucros à medida que a ação avança para esse ponto, porque é
improvável que ele ultrapasse esse nível.
Os níveis de suporte e resistência:
• Testam e confirmam tendências e precisam ser monitorados.
Enquanto o preço da ação permanecer entre esses níveis de suporte e resistência, é provável que a tendência
continue.
Importante, uma ruptura além de um nível de suporte ou resistência nem sempre se traduz em uma reversão,
por exemplo, se os preços subiram acima dos níveis de resistência de um canal de tendência ascendente, a
tendência foi acelerada, não revertida. Isso significa que a valorização do preço deve ser mais rápida do
que seria dentro do canal.
Há investidores que evitam comprar/vender nesses pontos importantes, pois a área ao redor deles é
geralmente marcada por muita volatilidade.
Dica Importante: Evite comprar/vender diretamente no nível de suporte ou resistência. Em muitos casos, o preço
não chega atingir o número inteiro, mas flerta com ele. Prefira então, usar um valor próximo que aumente a
probabilidade de um negócio bem-sucedido.
2.7. VOLUME
2.7.1. O QUE É VOLUME?
O Volume Financeiro mostra o número de ações negociadas por um certo período. Investidores usam essa
ferramenta da Análise Técnica para determinar a liquidez de um papel e tomar decisões estratégicas para
aumentar os ganhos.
“Quanto maior o volume, maior a atividade de negociação do ativo.”
As barras de volume ilustram quantas ações foram negociadas por período e mostram tendências da mesma
maneira que os preços.
Observar os padrões do Volume Financeiro pode ajudar investidores a terem mais noção das tendências do
mercado. Esse indicador, inclusive, está diretamente relacionado ao fluxo de negociações.
Na Análise Gráfica, investidores olham para as barras que ficam embaixo dos gráficos, chamadas “barras de
volume”. Elas demonstram quantas ações foram negociadas por período (dias, semanas, meses), além de
ilustrarem as principais tendências.
24 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 13. Exemplo de Indicador de Volume
2.7.2. IMPORTÂNCIA DO VOLUME
O volume é um aspecto importante da análise técnica porque é usado para confirmar tendências e padrões
de gráficos.
Qualquer movimento de preço para cima ou para baixo com volume relativamente alto é visto como um
movimento mais forte e mais relevante do que um movimento semelhante com volume fraco, portanto, se você
estiver observando um grande movimento de preços, examine também o volume para ver se ele conta a mesma
história. Por exemplo, o preço de uma ação sobe 5% em um único dia de negociação após uma longa tendência
de baixa. Isso é sinal de reversão de tendência? E é aqui que o volume ajuda os investidores.
• Se o volume for alto durante o dia em relação ao volume médio diário, é um sinal de que a reversão
provavelmente é real.
• Por outro lado, se o volume estiver abaixo da média, pode não haver convicção suficiente para suportar
uma verdadeira reversão de tendência.
2.7.3. INTERPRETANDO O VOLUME
O volume deve se mover com a tendência. Se os preços estão se movendo em uma tendência ascendente, o
volume deve aumentar (e vice-versa). Se a relação anterior entre movimentos de volume e preço começar a se
deteriorar, geralmente é um sinal de fraqueza na tendência.
25 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Por exemplo, se as ações estiverem em alta, mas os dias úteis de negociação estiverem marcados com um
volume menor, é um sinal de que a tendência está começando a perder força e pode acabar em breve.
Quando o volume conta uma história diferente, é um caso de divergência, que se refere a uma contradição
entre dois indicadores diferentes. O exemplo mais simples de divergência é uma clara tendência de alta com
um volume em queda.
2.8. PADRÕES GRÁFICOS
2.8.1. O QUE SÃO PADRÕES GRÁFICOS?
Um padrão de gráfico é uma formação geométrica que se destaca em um gráfico de ações e que cria um sinal
de negociação ou um sinal de futuros movimentos de preços. Os investidores usam esses padrões para:
• Identificar tendências atuais;
• Identificar reversões de tendências;
• Acionar sinais de compra e venda.
2.8.2. A HISTÓRIA SE REPETE
Vimos anteriormente as três suposições da análise técnica, a terceira que dizia que “a história se repete” é
relevante para esse estudo. A teoria por trás dos padrões do gráfico é justamente baseada nessa suposição.
A ideia é que certos padrões sejam vistos muitas vezes e que esses padrões sinalizem uma alta probabilidade
de repetição. Investidores procuram esses padrões para identificar oportunidades de negociação.
2.8.3. ATENÇÃO
Embora existam ideias e componentes gerais para cada padrão gráfico, não existe um padrão gráfico que
indique com 100% de certeza a direção de uma ação.
2.8.4. REVERSÃO E CONTINUAÇÃO
Existem dois tipos de padrões nessa área de análise técnica, reversão e continuação.
• Um padrão de reversão sinaliza que uma tendência anterior será revertida após a conclusão do
padrão.
• Um padrão de continuação, por outro lado, sinaliza que uma tendência continuará assim que o padrão
estiver completo.
Esses padrões podem ser encontrados em gráficos de qualquer período.
Importante: Atenção ao usar esse tipo de análise em períodos gráficos curtos, por exemplo, 30 minutos ou
menos. Esses períodos gráficos são normalmente relacionados a inserção de 'ruídos' nos padrões gráficos:
A participação de investidores com grande influência no mercado, (por exemplo, bancos, instituições financeiras,
investidores de grande capital) podem causar movimentações de preços pontuais que se traduzem em
26 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos - [email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
anomalias no gráfico, desfigurando esses padrões gráficos. Outro fator que pode desfigurar um gráfico é a
pouca volatilidade.
Ações que tem pouca oferta e demanda se traduzem em gráficos sem movimentação e com pouco variação.
Figura 14. Exemplo de Ativo com pouca oferta e demanda.
27 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.5. OMBRO CABEÇA OMBRO (OCO) - HEAD AND SHOULDERS
Este é um dos padrões gráficos mais populares e confiáveis na análise técnica.
Cabeça e ombros são um padrão de gráfico de reversão:
• Quando formado, sinaliza que é provável que a ação se mova contra a tendência anterior.
Existem duas versões do padrão de gráfico de cabeça e ombros.
• A cabeça e os ombros para cima são formados no topo de um movimento ascendente e sinaliza que a
tendência ascendente está prestes a terminar.
• A cabeça e os ombros para baixo, também conhecida como cabeça e ombros inversos é usada para
sinalizar uma reversão de uma tendência de baixa.
A figura abaixo mostra um exemplo dessa formação gráfica.
Figura 15. Exemplo de Ombro Cabeça Ombro
28 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.6. XÍCARA
Um gráfico xícara é um padrão de continuação de alta no qual a tendência ascendente teve uma pausa, mas
continuará em uma direção ascendente assim que o padrão for confirmado.
• Esse padrão de preço forma o que parece uma xícara.
• Precedido por uma tendência ascendente.
A alça segue a formação da xícara e é formada por um movimento geralmente para baixo / lateral.
Uma vez que o movimento dos preços ultrapasse as linhas de resistência formadas na alça, a tendência de
alta pode continuar.
Este é normalmente um padrão gráfico encontrado em gráficos de longos períodos, meses ou anos.
A figura abaixo mostra um exemplo dessa formação gráfica.
Figura 16. Exemplo de Xícara
29 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.7. TOPOS E FUNDOS DUPLOS
Esse padrão de gráfico é outro padrão conhecido que sinaliza uma inversão de tendência. É considerado um
dos mais confiáveis e são comumente usados.
Esses padrões são formados após uma tendência sustentada e sinalizam aos investidores que a tendência está
prestes a reverter.
O padrão é criado quando um movimento de preço testa os níveis de suporte ou resistência duas vezes e é
incapaz de romper.
Esse padrão é frequentemente usado para sinalizar reversões de tendência intermediárias e de longo prazo.
No caso um topo duplo:
• O movimento do preço tentou duas vezes ultrapassar um determinado nível de preço.
• Após duas tentativas frustradas de aumentar o preço, a tendência reverte e o preço cai.
No caso de um fundo duplo:
• O movimento dos preços tentou diminuir duas vezes, mas encontrou um suporte em cada tentativa.
• Após o segundo retorno ao suporte, a ação entra em uma nova tendência e sobe.
A figura abaixo mostra um exemplo dessa formação gráfica.
Figura 17. Exemplo de Fundos Duplos
30 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.8. TRIÂNGULOS
Triângulos são alguns dos padrões gráficos mais conhecidos usados na análise técnica. Os três tipos de
triângulos, que variam em construção e implicação, são:
O triângulo simétrico,
• O triângulo simétrico é um padrão no qual duas linhas de tendência convergem uma para a outra.
• Esse padrão é neutro, pois pode romper para cima ou para baixo.
• Esse rompimento serve como uma confirmação de uma tendência nessa direção.
O triângulo ascendente,
• A linha de tendência superior é plana, enquanto a linha de tendência inferior é inclinada para cima.
• Isso geralmente é considerado um padrão de alta no qual os investidores procuram uma fuga positiva.
O triângulo descendente,
• A linha de tendência inferior é plana e a linha de tendência superior é descendente.
• Isso geralmente é visto como um padrão de baixa, onde os investidores procuram uma fuga negativa.
Considera-se que esses padrões de gráfico duram de algumas semanas a vários meses.
Figura 18. Exemplo de Triângulo
31 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.9. BANDEIRAS E FLÂMULAS
Esses dois padrões de gráficos de curto prazo são padrões de continuação. São formados quando há um
movimento acentuado de preços seguido por um movimento de preços geralmente lateral.
Esse padrão é então concluído após outro movimento acentuado de preço na mesma direção que o movimento
que iniciou a tendência. Há pouca diferença entre uma flâmula e uma bandeira.
A principal diferença entre esses movimentos de preços pode ser vista na seção intermediária do padrão do
gráfico.
Em uma flâmula,
• A seção do meio é caracterizada por linhas de tendência convergentes, bem como o que é visto em um
triângulo simétrico.
Em uma bandeira,
• A seção do meio, por outro lado, mostra um padrão de canal, sem convergência entre as linhas de
tendência.
Nos dois casos, a tendência deverá continuar quando o preço se mover acima da linha de tendência superior.
2.8.10. CUNHA
O padrão do gráfico de cunha pode ser um padrão de continuação ou reversão. É semelhante a um triângulo
simétrico, exceto que o padrão de cunha se inclina na direção para cima ou para baixo, enquanto o triângulo
simétrico geralmente mostra um movimento lateral.
O fato de as cunhas serem classificadas como padrões de continuação e reversão pode tornar confusos os
sinais de leitura.
No entanto, no nível mais básico:
• Uma cunha em queda é de alta
• Uma cunha em alta é de baixa.
Exemplo:
Uma cunha em queda na qual duas linhas de tendência estão convergindo em uma direção descendente.
• Se o preço subisse acima da linha de tendência superior, formaria um padrão de continuação,
• Enquanto um movimento abaixo da linha de tendência inferior sinalizaria um padrão de reversão.
32 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
2.8.11. GAPS
Uma lacuna em um gráfico é um espaço vazio entre um período de negociação e o período de negociação
seguinte. Isso ocorre quando há uma grande diferença de preços entre dois períodos de negociação sequencial.
Por exemplo,
• Se o intervalo de negociação em um período estiver entre R$ 25 e R$ 30 e o próximo período de
negociação abrir em R$ 40,
• Haverá uma grande lacuna no gráfico entre esses dois períodos.
Os movimentos de preços em GAP podem ser encontrados nos gráficos de barras e nos gráficos de velas
(candlestick), mas não nos gráficos de ponto e figura ou de linhas básicas.
Os GAPs geralmente mostram que algo significativo aconteceu no ativo, como por exemplo, um anúncio de
faturamento acima do esperado.
Existem três tipos principais de GAPs,
Separatistas,
• Um GAP de ruptura se forma no início de uma tendência.
Separatistas (medição) e
• Um GAP de fuga se forma no meio de uma tendência.
Exaustão.
• Um GAP de exaustão se forma próximo ao final de uma tendência.
33 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3. INDICADORES
3.1. CONCEITOS
3.1.1. INTRODUÇÃO
Discussão conceitual sobre indicadores técnicos, como são construídos e classificados em sua formação e
objetivo.
A plataforma Profitchart é infelizmente limitada tecnicamente na programação de indicadores, portanto, o
entendimento do que um indicador está tentando passar para o investidor é muito mais importante do que
programá-lo simplesmente.
Este não é um curso de análise técnica, por tanto, o ângulo de estudo sobre indicadores aqui é voltado ao
fundamento matemático e conceitual. Isso significa aprender formas de interpretar a informação passada por
um indicador para então aplicar essa informação dentro de um modelo operacional, seja para analisar o
comportamento do mercado, seja para estabelecer sinais operacionais de compra e venda.
É importante, entretanto, mencionar que as limitações técnicas da plataforma Profitchart não impedem a criação
de diversos indicadores, incluindo, grande parte dos indicadores mais usados no mercado financeiro.
Figura 19. Conceitos Básicos sobre Indicadores
34 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.1.2. CONCEITOS BÁSICOS
Indicadores, no contexto de análise técnica, são:
• Cálculos matemáticos baseados, normalmente, no preço e no volume de negociação de um ativo.
Usados para medir itens como:
• Fluxo de dinheiro;
o Fluxo: ilustra as entradas e saídas de dinheiro com relação a um determinado ativo.
• Tendências de movimentação de preço;
o Tendência: direção geral dos preços de um ativo.
• A volatilidade dessa movimentação
o Volatidade: determina a oscilação de preços de um ativo.
• Momentum da variação de um ativo em relação a um período histórico.
o Momentum: taxa de aceleração do preço de um ativo.
A variação de preço por si só já nos deixa um rastro gráfico que nós podemos utilizar para fazer análises, por
exemplo, para determinarmos uma linha de tendência não precisamos de nenhum outro indicador. Portanto, os
indicadores são usados como uma medida secundária dos movimentos de preços e adicionam informações à
análise de um ativo.
Indicadores são normalmente representados graficamente de alguma maneira a corresponder e correlacionar
informação com o gráfico de preços do ativo, porém, isso não é regra.
Indicadores podem ser objetivos, o que significa dizer que o cálculo é puramente baseado em correlação
matemática de valores históricos estabelecidos, como preço e volume financeiro, porém, podem ser também
subjetivos, onde um fator abstrato é introduzido no cálculo matemático e que faz parte exclusivamente da
metodologia do seu desenvolvedor.
É possível, entretanto, argumentar que qualquer indicador, seja objetivo ou subjetivo, terá sempre um elemento
subjetivo que está associado à sua interpretação, onde cabe ao analista determinar dentro do seu modelo
operacional como interpretar um indicador dentro de um contexto maior de estudo.
3.1.3. OBJETIVOS PRINCIPAIS
Os principais objetivos para o uso de indicadores na Análise Técnica são,
• Confirmar o movimento dos preços,
• Confirmar a qualidade dos padrões dos gráficos e,
• Formar sinais de compra e venda.
35 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.2. TIPOS DE INDICADORES
Existem várias formas de categorizar tipos de indicadores, então vamos fazer isso por relevância, e para isso
vamos começar com 2 tipos de indicadores,
ANTECEDENTES Precedem o movimento dos preços - para dar qualidade para uma ‘previsão’.
ATRASADOS Seguem o movimento dos preços - servem como instrumento de confirmação.
Figura 20. Indicadores, Tipos de Indicadores
Antecedentes,
• Eles tentam prever o preço, usando períodos curtos nos cálculos,
• E são utilizados preferencialmente em momentos sem tendência definida (preço lateral).
• Exemplos comuns: Indicadores Estocásticos / Índice de Força Relativa.
Atrasados,
• Eles dão sinais de confirmação de uma tendência ou de início de reversão.
• São utilizados durante momentos de tendência definida.
• Exemplos comuns: Médias Móveis.
Essa informação é importante para nos ajudar a interpretar os sinais que um indicador está tentando nos dar.
36 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.3. TIPOS DE CONSTRUÇÃO
Vamos discutir 2 tipos de construção de indicadores, os que são delimitados por uma variação limite – e os
que não são.
OSCILADORES São delimitados por uma variação limite.
INDICADORES Não são delimitados.
Nota: Osciladores também são indicadores, esta é apenas uma classificação para diferenciar a construção
desses indicadores.
E o que significa dizer 'são delimitados por uma variação limite'? Significa dizer que os resultados dos cálculos
executados por esse indicador oscilador variam dentro de um limite definido.
No caso de um estocástico, por exemplo, a variação ocorre entre 0 e 100, ou seja, os valores estão sempre
dentro desse limite, que é determinado pela própria fórmula matemática deste oscilador, e por isso, é
classificado como um oscilador. E no caso especificamente do Estocástico, essa variação demonstra áreas em
que o preço é considerado:
SOBRECOMPRADO Valores próximos a 100. Normalmente entre 80 e 100.
SOBREVENDIDO Valores próximos a 0. Normalmente entre 0 e 20.
Em contraste, em uma Média Móvel, os valores não são limitados por valores fixos. Eles acompanham o valor
do preço, tendendo ao infinito.
Figura 21. Indicadores, Tipos de Construção.
37 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.4. TIPOS DE APRESENTAÇÃO
Vamos discutir 2 tipos de apresentação de indicadores,
LINHA Traçam-se linhas ligando pontos no gráfico.
HISTOGRAMA Preenche-se uma barra vertical agrupando quantidades.
Um gráfico e/ou um indicador, independente do contexto, sempre terão como função básica,
“Demonstrar de forma visual valores de um cálculo e a relação entre esses valores.”
Porém cabe a pessoa gerando e analisando o gráfico/indicador, o papel de interpretar o que aquele
indicador visual está tentando dizer, por tanto, no contexto do mercado financeiro e da análise técnica isso
significa dizer, interpretar de forma que a informação tenha significado operacional, seja através da leitura
do contexto do ativo ou mais especificamente para corroborar tomadas de decisão.
Nota: É importar observar que existem diversas formas de matematicamente correlacionar valores e diversas
outras formas de representar esses resultados visualmente, porém, para o contexto da plataforma que nós
estamos trabalhando neste curso, o Profitchart, nós vamos estudar os formatos que estão disponíveis para uso
através do editor de estratégias e por tanto os formatos aos quais nós poderemos desenvolver códigos, nesse
caso, indicadores de linha e histograma.
Figura 22. Indicadores, Tipos de Apresentação
38 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.4.1. O INDICADOR DE LINHA
É construído ligando os pontos (coordenadas no plano X e Y), onde:
LINHA HORIZONTAL Eixo X Tempo
LINHA VERTICAL Eixo Y Preço / Pontos
A cada cálculo executado, um novo ponto é marcado no gráfico. Esse ponto se refere a uma coordenada (x,
y) que relaciona 2 valores:
• Um valor no eixo X = Uma data e hora.
• Um valor no eixo Y = Um preço ou pontuação
A função do indicador é de traçar linhas ligando esses pontos.
3.4.2. O INDICADOR HISTOGRAMA
O indicador no formato Histograma é diferente em 2 principais aspectos em relação ao indicador Linha.
• Primeiro, na própria representação visual, ao invés de ligarmos pontos, os valores são representados
por barras verticais.
• Segundo, no próprio formato de dados utilizados, onde os dados são agrupando por quantidades.
E tem seus valores representados em forma de barras com uma determinada amplitude.
O valor calculado pelo indicador é marco no eixo Y (eixo do preço), que delimita a amplitude da barra, e no
eixo X, (eixo do tempo) o histograma delimita os grupos de tempo a que se referem esses valores calculados.
AMPLITUDE HORIZONTAL Eixo X Tempo Largura da Barra
AMPLITUDE VERTICAL Eixo Y Preço / Pontos Altura da Barra
Por exemplo,
• No indicador de linha,
o O valor do preço ou resultado do cálculo representa o componente Y da coordenada (x, y).
o Um ponto no eixo X se refere a uma data específica: 12 de março de 2020.
• No indicador histograma,
o O valor do preço, ou resultado do cálculo representa a altura da barra no eixo Y.
o Uma barra no eixo X representa um limite de tempo: de 12 de março a 13 de março de 2020.
39 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.5. SINAIS
2 Formas de utilizar indicadores para determinar sinais de compra e venda,
CRUZAMENTOS Quando o preço cruza uma média móvel ou 2 médias móveis cruzam entre si.
DIVERGÊNCIAS Quando a direção do preço e a direção do indicador divergem.
Esses sinais podem indicar uma possível reversão, ou no mínimo, um enfraquecimento da tendência estabelecida.
Exemplos:
Figura 23. Indicadores, Sinais
Figura 24. Exemplos de Cruzamento e Divergências
40 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.6. TIPOS DE INDICADORES
3.6.1. INDICADORES DE TENDÊNCIA
Medem a direção e força de uma tendência usando alguma forma de média de preço para estabelecer uma
linha base. O analista observa o movimento do preço em relação ao indicador. Exemplos,
• Média Móvel - Indicador do tipo [atrasado]
o É usado para identificar a tendência atual e sinais de reversão, e demarcar níveis de suporte e
resistência.
• MACD - Indicador do tipo [atrasado]
o É usado para revelar mudanças em força, direção, momentum e duração de uma tendência
estabelecida.
• Parabolic Stop and Reverse (Parabolic SAR) - Indicador do tipo [antecedente]
o Usado para encontrar reversões na direção da tendência do preço de um ativo, também usado
para determinar pontos de entrada e saída de uma operação.
3.6.2. INDICADORES DE MOMENTUM
Ajudam a identificar a velocidade do movimento do preço, e fazem isso comparando a variação de preços em
um determinado período, mas podem também ser utilizados para analisar volume. Exemplos,
• Estocástico - Oscilador do tipo [antecedente]
o É usado para prever pontos de reversão de preço ao comparar preços de fechamento com a
variação de preço.
• Commodity Channel Index (CCI) - Oscilador do tipo [antecedente]
o É usado para ajudar a identificar uma possível reversão de preços, ou demarcar extremidades de
preços e a força de uma tendência estabelecida.
• Índice de Força Relativa (RSI) - Indicador do tipo [antecedente]
o Mede a força da tendência atual, a velocidade de mudança em tendência e a magnitude dessa
mudança.
3.6.3. INDICADORES DE VOLATILIDADE
Esses medem a taxa de variação do movimento do preço, independente da direção, são geralmente baseados
na mudança de máximas e mínimas históricas dos preços. Exemplos,
• Bandas de Bollinger - Indicador do tipo [atrasado]
o É usado para medir regiões de máximas e mínimas do preço, relativo a preços de períodos
anteriores.
• Average True Range - Indicador do tipo [atrasado]
o Este indicador dá uma indicação do grau de volatilidade do preço.
41 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
3.6.4. INDICADORES DE VOLUME
Medem a força de uma tendência ou confirmam a direção de uma tendência baseando-se em alguma forma
de cálculo de médias ou suavizando o volume bruto, isso porque as tendências mais fortes tendem a ocorrer
quando o volume histórico aumenta. Muitas vezes é o aumento de volume de negociação que pode levar a
grandes movimentos de preço. Exemplos,
• On Balance Volume (OBV) - Indicador do tipo [antecedente]
o Tenta medir o nível de acúmulo e distribuição ao comparar volume com movimentação de preços.
• Chaikin Oscillator - Indicador do tipo [antecedente]
o Monitora o fluxo de dinheiro (in/out) do mercado comparando o fluxo de dinheiro com price action
para identificar topos e fundos em ciclos de curto e médio prazo.
• Volume Rate of Change - Indicador do tipo [atrasado]
o Da ênfase em aumentos de volume, que normalmente ocorrem nos momentos mais significantes de
topos, fundos e rompimentos.
Figura 25. Tipos de Indicadores
42 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
4. BÁSICO PROGRAMAÇÃO
4.1. FERRAMENTA
4.1.1. NELOGICA PROFITCHART
Profitchart é uma ferramenta de análise técnica e de negociação no mercado de ações brasileiro. Desenvolvido
pela empresa Nelógica ® é possível contratar diretamente com a empresa ou através de uma corretora
parceira.
A versão utilizada neste curso é: Profit Pro [www.nelogica.com.br]
4.2. PROGRAMAÇÃO NO PROFITCHART
4.2.1. REGRAS DE COLORAÇÃO
Função: Colorir, de forma automática, componentes do gráfico ao atender condições estipuladas pelo analista.
Exemplos de uso,
• Ferramenta de auxílio para indicar sinais visuais de operação (compra/venda).
• Ferramenta de auxílio para estudos (análise técnica).
4.2.2. INDICADORES
Função: Plotar, de forma automática, componentes gráficos baseados em cálculos estipulados pelo analista.
Exemplos de uso,
• Ferramenta de auxílio para estudos (análise técnica).
• Ferramenta de auxílio para indicar sinais visuais (matemáticos) de operação (compra/venda).
4.2.3. ESTRATÉGIA DE EXECUÇÃO
Função: Traduzir um sistema operacional em uma série de condições e parâmetros utilizados pelo software
para executar operações de compra e venda. Exemplos de uso,
• Back Test [2]: Simular resultados de operações (compra/venda) de um sistema operacional definido pelo
programador de forma automatizada com o fim de produzir um relatório de performance.
• Screening: Procurar e filtrar em uma lista ativos/ações que atendam uma série de condições e
parâmetros definidos pelo analista.
[1] Não é possível automatizar operações no mercado real através do editor de estratégias, o seu uso tem
apenas fins de backtest. Para isso é necessário contratar plugins terceiros diretamente com a Nelógica.
[2] O Backtest é limitado ao modelo OHLC e isso pode criar falsos resultados.
43 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5. LÓGICA DE PROGRAMAÇÃO
5.1. INTRODUÇÃO
Linguagem: NTSL (Nelogica Trading System Language)
• Baseado em outra linguagem de programação chamada EasyLanguage criado pela TradeStation –
Essa linguagem é fundamentalmente baseada em Pascal.
Por que precisamos entender a Lógica de Programação?
Isso nos ajudará a programar códigos eficazes.
• Eficaz: Fazer certo a coisa certa.
• Eficiente: Fazer certo a coisa errada.
Exemplo de um código que pode ser eficiente, mas que pode estar fazendo a coisa errada seria uma Regra
de Coloração invertida, onde a barra de Alta é pintada de vermelho e a barra de Baixa é pintada de verde.
Nos ajudará também a identificar e corrigir problemas com o nosso código.
5.2. PALAVRAS RESERVADAS
Definição: Uma palavra que não pode ser utilizada como um identificador - por ser reservada para uso da
gramática da linguagem. Exemplos,
• Início, Fim.
• Ficam marcadas em coloração diferente e com efeito negrito.
• No Profitchart podem ser em inglês e/ou português. (Existem exceções).
Identificadores reservados
São identificadores reservados para variáveis nativas da linguagem, ou seja, que foram determinadas no
momento da concepção desta linguagem. Exemplos,
• Abertura, Fechamento, Máxima, Mínima.
• Open, Close, High, Low.
Funções
Uma função é um bloco de código pré-definido para executar uma tarefa específica que pode ser chamado
e executado inúmeras veze no decorrer do seu código. Por uma função de cálculo de Média Móvel.
O identificador usado para chamar uma função é reservado, podendo este ser nativo da linguagem ou
determinado pelo programador, porém, uma vez estipulado passa a ser reservado e por tanto pode ser usado
apenas para este propósito.
44 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.3. MODELO DE EXECUÇÃO DO CÓDIGO
Modelo de Execução se refere a rotina de execução do código, ou seja, a sequência de eventos para execução
do código em relação ao contexto da aplicação, neste caso o caso Profitchart.
Mercado Fechado
O código é executado uma vez por barra, começando da primeira barra disponível no gráfico, ou seja, a
barra mais antiga, até chegar à barra mais recente. É importante entender que essa execução ocorre apenas
uma vez por barra, uma vez que esses períodos históricos já estão fechados o compilador irá usar os valores
que foram confirmados no fechamento do período, isso é chamado de modelo OHLC (Open, High, Low, Close),
já que o compilador não consegue estipular o que aconteceu dentro do período e como o preço se movimentou,
ele apenas tem as informações que foram confirmadas no fim do período.
Mercado Aberto
O código é executado de forma completa barra por barra como no modelo de mercado fechado até atingir
a barra mais atual, onde passa a ser executado a cada atualização de valor de preço ou volume (também
conhecido como variação de tick), ou seja, toda vez que há uma alteração no preço o código é executado
novamente pelo compilador.
Exemplo, em uma Regra de Coloração para pintar uma barra de vermelho quando o preço atual está abaixo
do preço de abertura, ou pintar de verde, quando o preço atual está acima do preço de abertura. Para a
coloração acontecer em tempo real é necessário que o código seja reexecutado a cada variação de tick para
confirmar qual das duas condições são verdadeiras.
5.4. DEPURAÇÃO
Inglês: Debug
Definição: Processo de localizar e resolver defeitos ou problemas com um programa de computador, que o
previne de operar de forma correta. É importante dominar formas de depurar nossos códigos.
3 Formas Principais
• Verificar Sintaxe
o Sintaxe: Conjunto de regras que determinam as diferentes possibilidades de associação das
palavras de uma língua.
o Funciona da mesma forma que para um idioma, pois, até mesmo linguagens de programação
seguem uma determinada 'gramática'.
o Em resumo é o que determina se uma frase (instrução no código) faz sentido para o computador.
• Step Over (F3)
o Executa o código linha a linha, porém sem investigar as funções usadas pelo código, por isso 'step
over' ou 'pular', ‘passar por cima’.
• Trace Into (F7)
o Também executa um código linha a linha, porém também testa funções linha a linha. ‘rastrear dentro’.
45 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.5. VARIÁVEIS
Definição: Um objeto, (uma posição, normalmente alocada na memória do computador) capaz de reter e
representar um valor ou expressão. Como uma ‘caixa’ que armazena algo dentro.
Identificadores: Um nome para identificá-la e permitir ao programador referenciá-la cada vez que necessário.
Por que usar variáveis?
• Para economizar processamento - ao reutilizar um valor ou resultado de um cálculo.
• Facilita a vida do programador ao associar nomes a valores. Exemplo, Área de um triângulo.
Tipos de Dados
É um atributo que define para o compilador qual o tipo de dado está sendo usado, no contexto de
programação em NTSL é obrigatório definir qual o tipo de dado necessário para manipulá-lo.
PT EN Definição Exemplo
Real Float Representa números ponto flutuantes (real) 3.14
Inteiro Integer Representa números inteiros 1, 2, 5, 10, 100
Booleano Boolean Representa uma relação binária (0 e 1) Verdadeiro (true)
Falso (false)
String String Representa um grupo de caracteres para “ScApp”, “Programação”
formar um texto.
Como Declarar
Entre a palavra reservada var e o início do nosso código com a palavra reservada Início (Begin).
var
vReal : Real;
vInt : Inteiro;
vBool : Booleano;
vTexto : String;
Inicio
// Inicio do código a ser executado
// Fim do código
Fim;
46 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.6. PARÂMETROS
Definição: Uma interface entre o mundo externo (usuário) com o código sendo executado.
Identificadores: Um nome para identificá-la e permitir ao programador referenciá-la cada vez que necessário
e para que o usuário saiba sua utilidade.
Por que usar parâmetros?
• Para permitir a interação do usuário com o código, dessa forma o usuário pode influenciar na execução
do código, porém com papel limitado e controlado pelo programador.
Tipos
Utiliza os mesmos tipos definidos nas variáveis, (Real, Inteiro, Booleano), com exceção de String, no momento
não é possível declarar um parâmetro do tipo String.
Como Declarar
Entre a palavra reservada Parametro ou Input (em inglês) e a palavra reservada var.
Parametro
Periodo(21);
Desvio(2.0);
PlotarLinha(Verdadeiro);
var
vReal : Real;
vInt : Inteiro;
vBool : Booleano;
vTexto : String;
Inicio
// Inicio do código a ser executado
// Fim do código
Fim;
47 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.7. SÉRIES DE DADOS
Definição: são os valores decorrentes de cada período (uma barra) do gráfico.
PT EN Definição
Abertura Open Retorna o valor de abertura da barra atual.
Fechamento Close Retorna o valor de fechamento da barra atual.
Máxima High Retorna o valor mínimo da barra atual.
Mínima Low Retorna o valor máximo da barra atual.
Volume Volume Retorna o valor do volume financeiro da barra atual.
Quantidade Quantity Retorna o valor do volume quantidade da barra atual.
Trades Negócios Retorna o valor do volume negócios da barra atual
Nota: ‘barra atual’ se refere ao ‘período atual’.
Preço Mais Recente
Representado pela série Fechamento ou Close com indexador [0] (zero) ou nenhum indexador, portanto,
• Close[0] = Fechamento[0] = Close = Fechamento
• Em Mercado Fechado: Retorna o valor de fechamento do período, ou seja, o preço da última
negociação realizada para o período mais recente no gráfico, porém, por estar em gráfico fechado
este valor não irá mais se alterar.
• Em Mercado Aberto: Retorna o valor da última negociação realizada, ou seja, o valor mais recente do
período ainda em formação, ou seja, conforme novas negociações são realizadas, o valor é atualizado,
até que o período se encerra, e uma nova barra (período) se inicia, e assim o processo se repete até o
fechamento do mercado.
Referenciar Valores Históricos
Referência a valores do passado é feito através de contadores (indexadores):
• [x] onde x é o número do contador ou indexador. Exemplos,
o Abertura[1] = Retorna o preço de abertura do período anterior.
o Close[3] = Retorna o preço de fechamento de 3 períodos anteriores ao atual.
o High[0] = Retorna o preço de máxima do período atual.
Indexador [0] (zero)
• Seu uso não é obrigatório, por exemplo, Open[0] e Open retornam o mesmo valor, o preço de abertura
do período atual, ou seja, para o período mais recente não é necessário declarar o indexador [0].
48 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.8. OPERADORES
5.8.1. OPERADORES MATEMÁTICOS
Os operadores matemáticos disponíveis na linguagem NTSL são:
Operador Descrição Exemplo Resultado
+ Adição 5+4 9
- Subtração 5-4 1
* Multiplicação 5*4 20
/ Divisão 5/4 1.25
Mod [1] Módulo (calcula o resto da divisão) Mod(5, 4) 1
Mod é uma função no contexto da linguagem NTSL, porém a linguagem não possui um operador nativo para
[1]
cálculo de módulo, por isso é mostrado nessa lista.
Ordem de Operações
Divisão possui maior força de precedência, seguido por multiplicação, e então soma e subtração.
Nota: Soma e subtração seguem a ordem por sequência, ou seja, o operador que estiver primeiro é executado
antes.
Apesar de não ser um operador, determinar cálculos dentro de parênteses ( ) define prioridade para o cálculo
dentro dos parênteses.
() > Divisão > Multiplicação > (Soma & Subtração)
Alguns Exemplos,
Expressão Resultado
10*10/5+2 22
1*2+2 4
50+100*10/2-1 549
5/2+64-6 60.50
100/10+300*2 610
1+1/2+1 2.5
49 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Exemplo Resolvido
Expressão:
x = 10 * 10/5 + 2
x = 10 * 2 + 2
x = 20 + 2
x = 22
// Programaticamente
x = (10 * (10/5)) + 2 = 22
// Matematicamente
𝟏𝟎
𝑥 = 10 × +2
𝟓
𝑥 = 𝟏𝟎 × 𝟐 + 2
𝑥 = 𝟐𝟎 + 𝟐
𝑥 = 𝟐𝟐
Alterando ordem das operações usando parênteses:
// Programaticamente
x = (10 * 10) / (5 + 2) = 14.28
// Matematicamente
10 × 10
𝑥=
5+2
𝟏𝟎𝟎
𝑥=
𝟕
𝑥 = 𝟏𝟒. 𝟐𝟖
50 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.8.2. OPERADORES DE COMPARAÇÃO
Os operadores de comparação disponíveis na linguagem NTSL são:
Operador Descrição Exemplo
> Maior que 5>4
< Menor que 4<5
>= Maior ou Igual que 4 >= 5; 5 >= 5
<= Menor ou Igual que 4 <= 5; 5 <= 5
= Igual 4 = 4; 5 = 5
<> Diferente 5 <> 4; 4 <> 5
5.8.3. OPERADORES LÓGICOS
Definição: Uma porta lógica é um 'dispositivo eletrônico' que implementa uma função booleana, uma operação
lógica executada em uma ou mais entradas binárias que produz uma única saída binária.
Convenção Binária
• [1] = Verdadeiro = True
• [0] = Falso = False
Operadores Lógicos
• E = AND
• OU = OR
Operador Lógico 'e'
• Saída 'verdadeira' (1) quando todas as entradas forem verdadeiras (1)
Tabela da Verdade
A B X = A 'e' B Booleano
1 1 1 Verdadeiro
1 0 0 Falso
0 1 0 Falso
0 0 0 Falso
51 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Operador Lógico 'ou'
• Saída 'verdadeira' (1) quando ao menos 1 das entradas for verdadeira (1)
Tabela da Verdade
A B X = A 'ou' B Booleano
1 1 1 Verdadeiro
1 0 1 Verdadeiro
0 1 1 Verdadeiro
0 0 0 Falso
Combinação de Operadores Lógicos
( A e B ) ou ( C e D )
X ou Y
Figura 26. Operadores Lógicos
52 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.9. CONTROLES DE FLUXO
5.9.1. SE, ENTÃO, SENÃO (TESTE CONDICIONAL)
Definição: Se uma condição ou um grupo de condições for verdadeira, execute uma sequência de instruções
(A), senão, execute uma outra sequência de instruções (B).
Inglês: If, Then, Else
Inicio
Se (Fechamento > Abertura) entao
inicio
PaintBar(clVerde);
fim
Senao Se (Fechamento < Abertura) entao
inicio
PaintBar(clVermelho);
fim
Senao
inicio
PaintBar(clBranco);
fim;
Fim;
// Alternativa – Resultado igual, porém simplificado
Inicio
Se (Fechamento > Abertura) entao PaintBar(clVerde)
Senao Se (Fechamento < Abertura) entao PaintBar(clVermelho)
Senao PaintBar(clBranco);
Fim;
Exemplos de blocos Se Então Senão,
53 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 27. Teste Condicional, Se Então Senão
Figura 28. Exemplo avançado de Teste Condicional, Se Então Senão
54 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.9.2. PARA, ATÉ (LOOP CONTROLADO)
Definição: O comando PARA é utilizado para definir um loop controlado, ou seja, instrução (A) é executada
repetidamente até que a (variável de contagem) saia do (valor inicial) e atinja (valor final). A cada iteração
a (variável de contagem) é incrementada em 1.
Inglês: FOR
Parametro
Preco(Fechamento);
Periodo(9);
var
resultado : Real;
i : Inteiro;
Inicio
// Inicialização de variável
Resultado := 0;
Para i := 0 ate Periodo - 1 faca
inicio
resultado := resultado + Preco[i];
fim;
resultado := resultado / Periodo;
Plot(resultado);
Fim;
// Alternativa – Resultado igual, porém simplificado
Inicio
Para i := 0 ate Periodo -1 faca resultado := resultado + Preco[i];
Resultado := resultado / Periodo;
Plot(resultado);
Fim;
55 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 29. Loop Controlado PARA
56 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.9.3. ENQUANTO, FAÇA (LOOP CONTROLADO)
Definição: A execução da estratégia ao chegar no comando ENQUANTO testa o resultado de (condição). Caso
(condição) seja verdadeiro (true) as instruções (comandos) são executadas. Após a execução a (condição) volta
a ser testada, assim, o loop apenas irá se encerrar quando (condição) deixar de ser verdadeira.
Inglês: WHILE, DO
Parametro
Preco(Fechamento);
Periodo(9);
var
resultado : Real;
i : Inteiro;
Inicio
// Inicialização de variável
resultado := 0;
i := 0;
Enquanto (i <= Periodo – 1) faca
inicio
resultado := resultado + Preco[i];
i := i + 1;
fim;
resultado := resultado / Periodo;
Plot(resultado);
Fim;
57 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 30. Loop Controlado ENQUANTO
58 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.9.4. REPEAT, UNTIL
Definição: A execução da estratégia ao chegar no bloco de comandos irá executar as instruções primeiro, e
depois irá testar a (condição) descrita no loop REPEAT. Caso (condição) seja falsa (false) as instruções
(comandos) serão executadas novamente. Após a execução a (condição) volta a ser testada, assim, o loop
apenas irá se encerrar quando (condição) deixar de ser falsa.
Português: REPETIR, ATÉ (porém as palavras reservadas não foram traduzidas para o português na linguagem
NTSL, por tanto, apenas a versão em inglês no momento irá funcionar).
Parametro
Preco(Fechamento);
Periodo(9);
var
resultado : Real;
i : Inteiro;
Inicio
// Inicialização de variável
resultado := 0;
i := 0;
Repeat
inicio
resultado := resultado + Preco[i];
i := i + 1;
until (i > Periodo – 1) fim;
resultado := resultado / Periodo;
Plot(resultado);
Fim;
59 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
5.10. FUNÇÕES
Definição: Uma função é um bloco de código que executa uma tarefa específica e pode ser chamado de
qualquer parte do programa quantas vezes desejarmos. Uma função pode necessitar de alguns dados para
que possa realizar alguma ação baseada nesses dados. Esses dados são chamados parâmetros de entrada
da função.
A função pode retornar um certo valor, que é chamado valor de retorno.
Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de retorno.
Função Interna: O bloco de instruções faz parte do mesmo arquivo do código principal que irá referenciar a
função.
// Função Interna
var
Alvo1, Alvo2 : real;
Funcao calcAlvo(max : real; min : real; p : real) : real;
var
amplitude : real;
Inicio
amplitude := max - min;
result := max + (amplitude * p/100);
Fim;
Inicio
Alvo1 := calcAlvo(Maxima, Minima, 161);
Alvo2 := calcAlvo(Maxima, Minima, 70);
Plot(Alvo1);
Plot2(Alvo2);
Fim;
Função Externa: O bloco de instruções é declarado como um arquivo independente e por tanto não faz parte
do mesmo arquivo do código principal que irá referenciar a função.
60 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
6. FUNÇÕES - GRÁFICAS
6.1. FUNÇÕES GRÁFICAS BÁSICAS
6.1.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
PaintBar Pinta a barra/candle de uma determinada cor.
Plot Desenha o indicador de acordo com o gráfico.
NoPlot Não plota determinado Plot.
SetPlotColor Altera a cor de um determinado Plot.
SetPlotWidth Altera o valor da espessura de um determinado Plot.
GetPlotColor Retorna o valor numérico da cor de determinado Plot.
GetPlotWidth Retorna o valor da espessura de determinado Plot.
RGB Retorna uma cor baseada nos valores de Vermelho, Verde, Azul (Red, Green, Blue).
PaintBar
• Função para regra de coloração,
• Pode atribuir cores a candles/barras e a indicadores.
Plot
• Função para plotagem,
• Um indicador nada mais é que uma representação visual de uma tabela de valores em forma de um
gráfico com eixo X e Y,
• Por tanto, plotar um gráfico, seja com linhas ou histogramas, nada mais é que marcar pontos num gráfico,
e é exatamente isso que a função Plot faz.
• Coordenadas
o Todo ponto num gráfico de eixo X e Y, possui 2 coordenadas,
▪ Uma para eixo X
▪ Uma para eixo Y
▪ Isso se traduz em: Plot(x,y)
o O eixo X sendo a linha do tempo,
▪ O compilador entende que o valor de x será sempre o momento no tempo atual, ou seja, o
período em que o código está sendo executado.
61 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
o O eixo Y sendo o valor (preço ou pontuação),
▪ Podendo ser também um valor dentro um limite de variação, lembre-se dos osciladores.
o Por tanto para o compilador, a função Plot, simplesmente espera que o programador entre com o
valor de Y.
• Linhas
o O ProfitChart permite plotar até 99 indicadores no mesmo código,
▪ Plot, Plot2, Plot3, Plot4 ... Plot99
• Resultado
o A função plota um ponto no gráfico com um valor Y que o programador determina e usa o período
em que o compilador está executando o código no momento como valor X.
o No caso do indicador de linha, ligam-se esses pontos,
o No caso do histograma, uma barra é pintada com a altura dessa barra sendo o valor Y.
NoPlot
• Inverso da função Plot.
• Na prática, a função NoPlot não irá plotar um ponto quando solicitado, efetivamente 'pulando' esse
ponto, ou, ‘desconectando’ a plotagem do ponto anterior.
• Parâmetro
o NoPlot(numplot)
▪ numplot: Um número inteiro de 1 a 99, sendo então o número da linha.
SetPlotColor
• Irá determinar uma cor para nosso indicador, programaticamente.
• Parâmetros
o SetPlotColor(number, color)
▪ number: Um número inteiro de 1 a 99, sendo então o número da linha.
▪ color: A cor a ser usada, podendo ser um número inteiro ou uma constante.
o Nota: Quando determinamos uma cor de forma programática, ela tem prioridade, portanto não
sendo substituída por cores definidas nas propriedades do gráfico.
SetPlotWidth
• A função irá determinar a espessura da linha sendo plotada.
• Parâmetros
o SetPlotColor(number, width)
▪ number: Um número inteiro de 1 a 99, sendo então o número da linha.
▪ width: A espessura a ser usada, um número inteiro.
o Nota: Quando determinamos a espessura de forma programática, ela tem prioridade, portanto
não sendo substituída por cores definidas nas propriedades do gráfico.
62 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
GetPlotColor
• Inverso da função SetPlotColor.
• Retorna um número inteiro com a cor de uma linha específica.
• Parâmetro
o GetPlotColor(PlotNum)
▪ PlotNum: Um número inteiro de 1 a 99, sendo então o número da linha.
GetPlotWidth
• Inverso da função SetPlotWidth.
• Retorna um número inteiro com a espessura de uma linha específica.
• Parâmetro
o GetPlotWidth(PlotNum)
▪ PlotNum: Um número inteiro de 1 a 99, sendo então o número da linha.
6.1.2. PROPRIEDADES GRÁFICAS
Propriedades da Estratégia
Usando o botão ‘propriedades da estratégia’ no editor de estratégias, é possível definir parâmetros iniciais
do indicador como,
• Cor e Espessura das linhas.
• Linhas Guia,
• Preenchimento.
Nota: Valores determinados programaticamente tem prioridade e irão sobre escrever os determinados através
das propriedades de estratégia.
Essas configurações são armazenadas junto com o código do indicador e, portanto, sempre iniciadas quando
um novo indicador é adicionado.
Propriedades do Indicador
As propriedades do indicador não são salvas com um código e, portanto, tem que ser especificadas toda vez
que um indicador é adicionado
Ordem de Prioridade (do menos importante ao mais importante)
4. Cor e Espessura Padrão do Profitchart.
3. Cor e Espessura configuradas nas Propriedades da Estratégia.
2. Cor e Espessura configuradas nas Propriedades do Indicador.
1. Cor e Espessura configuradas através das funções SetPlotColor e SetPlotWidth.
63 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
6.1.3. CONSTANTES DE COLORAÇÃO
Figura 31. Constantes de Cores
64 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
6.2. FUNÇÕES GRÁFICAS DE PREÇO
De preço, porque essas funções de alguma forma ou outra retornarão valores relacionados ao preço.
6.2.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
AvgPrice Retorna a média entre Abertura, Máxima, Mínima, Fechamento de determinado candle.
Range Retorna o valor de Máxima menos Mínima do determinado candle.
MedianPrice Retorna a média entre a máxima e a mínima de determinado candle.
TypicalPrice Retorna o valor médio entre a máxima, mínima e fechamento de determinado candle.
TrueHigh Retorna o maior entre o máximo da barra ou fechamento da barra anterior.
TrueLow Retorna o menor entre a mínima da barra ou fechamento da barra anterior.
TrueRange Retorna a diferença entre o TrueHigh e TrueLow.
Leader Retorna se ponto médio é maior que a máxima ou menor que a mínima de candle
anterior.
RangeLeader Verifica se a barra atual é RangeLeader.
6.3. FUNÇÕES GRÁFICAS DE INDEXAÇÃO
De indexação, porque essas funções de alguma forma ou outra retornarão valores relacionados a posição de
uma barra/candle.
6.3.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma ProfitChart:
Função Descrição
CurrentBar Retorna o índice atual da barra (candle).
LastBarOnChart Retorna se é a última barra do gráfico.
MaxBarsForward Retorna o número de candles a direita do candle atual.
MaxBarsBack Retorna o número de candles antes do candle atual.
65 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
7. FUNÇÕES - MATEMÁTICAS
7.1. FUNÇÕES MATEMÁTICAS
7.1.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
Abs Retorna o valor absoluto de um número ponto flutuante.
Pos Retorna o valor absoluto de um número ponto flutuante.
Neg Retorna o valor negativo de um determinado número.
Sign Retorna um inteiro baseado no sinal de um número.
Ceiling Retorna o menor inteiro, maior que o número específico.
Floor Retorna o maior inteiro, menor que o número específico.
Round Retorna o valor arredondado de um ponto flutuante.
FracPortion Retorna a parte fracionária de um número.
IntPortion Retorna a parte inteira de um número.
Power Retorna a enésima potência de um valor.
Sqrt Retorna a raiz quadrada de um valor.
Square Retorna o valor de um determinado número ao quadrado.
Mod Retorna o resto da divisão de dois números.
Log Retorna o logaritmo natural de um número.
Combination Retorna o valor da combinação matemática.
Factorial Retorna o fatorial de um número.
Permutation Calcula a permutação.
Cum Acumula o valor de uma série, desde a primeira barra até a atual.
Random Retorna um valor aleatório.
Exp Retorna a enésima potência do número de Euler
ExpValue Retorna o valor exponencial de um determinado número.
66 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
ExtremePriceRatio Retorna o ratio (razão) das extremidades de um número determinado de barras.
Highest Retorna o maior valor dentro de um período.
Lowest Retorna o menor valor dentro de um período.
HighestBar Retorna o índice do maior valor em um período.
LowestBar Retorna o índice do menor valor em um período.
MidPoint Retorna a média entro o maior e o menor valor encontrados no período.
PriceOscillator Calcula a diferença entre a Média Móvel Lenta e a Média Móvel Rápida.
VolumeOsc Calcula a diferença entre a Média Móvel Lenta e a Média Móvel Rápida do volume.
VolumeROC Retorna o VolumeROC baseado em um número de barras. (Rate of Change = Taxa
de variação)
UlcerIndex Mede o nível de estresse de acordo com as condições do mercado.
PercentR Retorna uma porcentagem de onde o preço atual está, relacionada com a faixa de
negociação avaliada.
NumUnits Retorna o número de contratos/ações de um certo investimento.
Summation Acumula o valor do preço de um determinado número de barras.
StdDevs Calcula o desvio padrão de uma série de dados em determinado período.
HarmonicMean Retorna a média harmônica de uma série de dados baseado em um período.
TriAverage Calcula a média triangular de uma série de dados dentro de um certo período.
7.2. FUNÇÕES GEOMÉTRICAS
Função Descrição
Arctangent Retorna o arco-tangente de um número em graus.
Cos Retorna o cosseno de um número (radianos).
Cosine Retorna o cosseno de um número em graus.
Cotangent Retorna a cotangente de um número em graus.
Sin Retorna o seno de um número (radianos).
Sine Retorna o seno de um número em graus.
Tangent Retorna a tangente de um número em graus.
67 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
8. FUNÇÕES - CALENDÁRIO
8.1. FUNÇÕES CALENDÁRIO
8.1.1. FORMATO EASYLANGUAGE DE DATA E HORA
Figura 32. Formato de DATA EasyLanguage
Figura 33. Formato de HORA EasyLanguage
68 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
8.1.2. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
Date Retorna a Data da barra em estudo em formato EasyLanguage.
Time Retorna o Horário de fechamento* (abertura) da barra em estudo em formato
EasyLanguage.
CurrentDate Retorna Data atual (sistema - barra inferior) - formato EL.
CurrentTime Retorna Hora atual (sistema - barra inferior) - formato EL.
DayOfMonth Retorna o dia do mês de uma determinada data em formato (DD).
Month Retorna o mês de uma determinada data em formato (MM).
Year Retorna o ano de uma determina data em formato (YYYY).
BarType Retorna a periodicidade da Barra. [Consultar tabela abaixo]
DayOfWeek Retorna O dia do mês de uma determinada data. [Consultar tabela abaixo]
Monday Retorna 1 para Segunda-Feira.
Tuesday Retorna 2 para Terça-Feira.
Wednesday Retorna 3 para Quarta-Feira.
Thursday Retorna 4 para Quinta-Feira.
Friday Retorna 5 para Sexta-Feira.
Saturday Retorna 6 para Sábado.
Sunday Retorna 0 para Domingo.
LastCalcDate Retorna a data de abertura da última barra completa em formato EL.
LastCalcTime Retorna o horário de abertura da última barra completa em formato EL.
LastDayOfMonth Retorna o último dia do mês (DD).
CalcDate Adiciona ou Subtrai Dias de uma data.
CalcTime Adiciona ou Subtrai Minutos de um horário.
ELDate Converte data para formato EasyLanguage.
ELDate_Consol Converte data para formato EasyLanguage.
69 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
TimeToMinutes Converte horário (HHMM) em minutos.
MinutesIntoWeek Minutos desde Domingo 12 am (meia-noite) até data determinada.
BarDuration Retorna a duração da barra atual - em minutos.
FindBar Buscar barra no passado.
RS_BarsPerDay Retorna número de barras de acordo com periodicidade.
Interval Retorna o tipo de gráfico sendo estudado.
Offset Retorna a periodicidade do gráfico sendo estudado.
8.1.3. TABELA TIPO DA BARRA (BARTYPE)
Valor Descrição
0 TickBar
1 Intraday
2 Diário
3 Semanal
4 Mensal
-1 Outro
8.1.4. TABELA TIPOS DE GRÁFICO (GRAPHICINTERVAL)
Valor Descrição
0 (T) Trade
1 (m) Minuto
2 (D) Dia
3 (S) Semana
4 (M) Mês
5 (A) Ano
8 (Pt) Pontos
9 (Inv) Inversão
70 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
11 (R) Renko
12 (N) Range
13 (PF) Ponto Figura
14 (K) Kagi
16 (PI) Ponto Inversão
17 (s) Segundo
8.1.5. TABELA DIAS DA SEMANA (DAYOFWEEK)
F
Valor Descrição
0 Domingo
1 Segunda-Feira
2 Terça-Feira
3 Quarta-Feira
4 Quinta-Feira
5 Sexta-Feira
6 Sábado
8.2. FUNÇÕES SÉRIES DE DADOS
8.2.1. FECHAMENTO
Função Descrição
CloseD Fechamento de N dias atrás.
CloseM Fechamento de N meses atrás.
CloseW Fechamento de N semanas atrás.
CloseY Fechamento de N Anos atrás.
71 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
8.2.2. ABERTURA
Função Descrição
OpenD Abertura de N dias atrás
OpenM Abertura de N meses atrás.
OpenW Abertura de N semanas atrás.
OpenY Abertura de N Anos atrás.
8.2.3. MÁXIMA
Função Descrição
HighD Máxima de N dias atrás.
HighM Máxima de N meses atrás.
HighW Máxima de N semanas atrás.
HighY Máxima de N Anos atrás.
8.2.4. MÍNIMA
Função Descrição
LowD Mínima de N dias atrás.
LowM Mínima de N meses atrás.
LowW Mínima de N semanas atrás.
LowY Mínima de N Anos atrás.
8.2.5. VOLUME
Função Descrição
VolumeD Volume de N dias atrás.
VolumeM Volume de N meses atrás.
VolumeW Volume de N semanas atrás.
VolumeY Volume de N Anos atrás.
72 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
8.3. FUNÇÕES CALENDÁRIO - OUTROS
Função Descrição
DaysToExpiration Dias restantes para data referência.
Next3rdFriday Retorna o número de dias até a próxima terceira sexta-feira do mês.
BarAnnualization Retorna um fator de anualização.
73 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
9. FUNÇÕES - CANDLESTICK
9.1. FUNÇÕES DE CANDLE
9.1.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
C_Doji Identifica a ocorrência de um candle Doji.
C_ShootingStar Identifica a ocorrência de um candle Shooting Star (Estrela Cadente).
C_3WhSolds_3BlkCrows Identifica a ocorrência de: 3 White Solider e 3 Black Crows.
C_BullEng_BearEng Identifica a ocorrência de: Engolfo de Alta ou Engolfo de Baixa.
C_Hammer_HangingMan Identifica a ocorrência de: Martelo ou Homem Enforcado.
C_MornDoji_EveDoji Identifica a ocorrência de: Doji da Manhã ou Doji da Tarde
C_MornStar_EveStar Identifica a ocorrência de: Estrela da Manhã ou Estrela da Tarde
C_PierceLine_DkCloud Identifica a ocorrência de: Linha Penetrante ou Nuvem Escura
Figura 34. Funções de Candlestick
74 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
9.1.2. C_DOJI
Identifica um candle Doji.
Definição: Uma barra Doji tem corpo pequeno, onde o fechamento é igual, ou muito próximo, ao valor de
abertura.
Parâmetros:
Nome Padrão Descrição
Percent 5 Limite do Doji para (Abertura - Fechamento) como uma porcentagem
(Porcentagem) da amplitude da barra.
Figura 35. Função C_Doji
9.1.3. C_SHOOTINGSTAR
Identifica um candle Estrela Cadente.
Definição:
• O corpo do candle é pequeno, porém não é Doji.
• O candle é de alta.
• O candle está acima do candle anterior.
• O candle anterior é de alta e maior que o candle médio.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Factor (Fator) 2 Fator de limite para o tamanho do corpo em relação a amplitude da
barra,
Ex: 2 = Sombra deve ser 2x maior que o corpo da barra
75 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 36. Função C_ShootingStar
9.1.4. C_3WHSOLDS_3BLKCROWS
Identifica:
• 3 White Soldiers / 3 Black Crows.
• 3 Soldados Brancos / 3 Corvos Negros.
Definição - 3 Soldados Brancos:
• 3 candles de alta consecutivos.
• As 3 linhas devem fechar próximo as máximas.
• Abertura do segundo e terceiro candle deve estar 'dentro' do corpo do candle anterior.
Definição - 3 Corvos Negros:
• 3 candles de baixa consecutivos.
• As 3 linhas devem fechar próximo as mínimas.
• Abertura do segundo e terceiro candle deve estar 'dentro' do corpo do candle anterior.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Percent (Porcentagem) 5 Porcentagem do limite entre o Fechamento e a Máxima, para White
Soldier, ou Fechamento e a Mínima, para Black Crows.
76 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 37. Função C_3WhSolds_3BlkCrows
9.1.5. C_BULLENG_BEARENG
Identifica:
• Bullish Engulfing - Engolfo de Alta (Touro)
• Bearish Engulfing - Engolfo de Baixa (Urso)
Definição - Engolfo de Alta:
• O corpo de um candle verde é maior e envolve a abertura e o fechamento de um candle vermelho
anterior.
• A tendência geral é de baixa.
• O corpo do candle verde é maior que o corpo médio dos candles anteriores.
Definição - Engolfo de Baixa:
• O corpo de um candle vermelho é maior e envolve a abertura e o fechamento de um candle verde
anterior.
• A tendência geral é de alta.
• O corpo do candle vermelho é maior que o corpo médio dos candles anteriores.
77 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
O Engolfo de Alta pode ser considerado um padrão de reversão de ALTA, e a MINIMA pode ser usado
como nível de suporte.
O Engolfo de Baixa pode ser considerado um padrão de reversão de BAIXA, e a MÁXIMA pode ser usado
como nível de suporte.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Figura 38. C_BullEng_BearEng
78 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
9.1.6. C_HAMMER_HANGINGMAN
Identifica:
• Hammer (Martelo)
• Hanging Man (Homem Enforcado)
Definição - Martelo:
• O corpo do candle está na metade superior do candle e a sombra geralmente tem o dobro do
comprimento do corpo.
• A tendência geral é de baixa.
• Pode ser um candle vermelho ou verde, mas não um Doji.
Definição - Homem Enforcado:
• O corpo do candle está na metade superior do candle e a sombra geralmente tem o dobro do
comprimento do corpo.
• A tendência geral é de alta.
• Pode ser candle vermelho ou verde, mas não um Doji.
O Martelo pode ser considerado um padrão Bullish (Touro) de reversão de ALTA que precisa de confirmação.
O Homem Enforcado pode ser considerado um padrão Bearish (Urso) de reversão de BAIXA que precisa de
confirmação.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Factor (Fator) 2 Fator de limite para o tamanho do corpo em relação a amplitude da
barra. Ex: 2 = Sombra deve ser 2x maior que o corpo da barra.
79 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Figura 39. Função C_Hammer_HangingMan
9.1.7. C_MORNDOJI_EVEDOJI
Identifica:
• Morning Doji (Doji da Manhã)
• Evening Doji (Doji da Tarde)
Definição - Doji da Manhã:
• Um padrão de três candles:
• O primeiro é um longo candle vermelho,
• Seguido por um candle Doji que se forma abaixo,
• O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
• O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.
Definição - Doji da Tarde:
• Um padrão de três candles:
• O primeiro é um longo candle verde,
• Seguida por um candle Doji que se forma acima,
• O terceiro é um candle vermelho que se fecha no corpo dos primeiros candles.
• O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.
80 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Doji da Manhã pode ser considerado um padrão de reversão de ALTA.
Doji da Tarde pode ser considerado um padrão de reversão de BAIXA.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Percent (Porcentagem) 5 Porcentagem do limite entre o Fechamento e a Máxima ou a Mínima.
Figura 40. Função C_MornDoji_EveDoji
9.1.8. C_MORNSTAR_EVESTAR
Identifica:
• Morning Star (Estrela da Manhã)
• Evening Star (Estrela da Tarde)
Definição - Estrela da Manhã:
• Um padrão de três candles:
• O primeiro é um longo candle vermelho,
81 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
• Seguido por um candle de corpo pequeno que se forma abaixo,
• O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
• O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.
Definição - Estrela da Tarde:
• Um padrão de três candles:
• O primeiro é um longo candle verde,
• Seguido por um candle de corpo pequeno que se forma acima,
• O terceiro é um candle vermelho que se fecha no corpo dos primeiros candles.
• O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.
Estrela da Manhã pode ser considerado um padrão de reversão de ALTA.
Estrela da Tarde pode ser considerado um padrão de reversão de BAIXA.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Figura 41. Função MornStar_EveStar
82 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
9.1.9. C_PIERCELINE_DKCLOUD
Identifica:
• Piercing Line (Linha Penetrante)
• Dark Cloud (Nuvem Escura)
Definição - Linha Penetrante:
• Um grande candle verde que abre abaixo da MINIMA de um candle vermelho anterior.
• E fecha acima da metade do corpo dos candles anteriores.
• A tendência geral é de baixa.
Definição - Nuvem Escura:
• Um grande candle vermelho que abre abaixo da MAXIMA de um candle verde anterior.
• E fecha abaixo da metade do corpo dos candles anteriores.
• A tendência geral é de alta.
Linha Penetrante pode ser considerada um padrão de reversão de ALTA, no entanto, se o candle verde não
for muito longo as formações podem ser consideradas apenas uma formação de continuação.
Nuvem Escura pode ser considerada um padrão de reversão de BAIXA, no entanto, se o candle vermelho não
for muito longo as formações podem ser consideradas apenas uma formação de continuação.
Parâmetros:
Nome Padrão Descrição
Length (Comprimento) 14 Quantidade de barras para calcular o tamanho do corpo médio.
Figura 42. Função C_PireceLine_DkCloud
83 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
9.1.10. C_INSIDEBAR
Identifica Candle InsideBar.
Definição:
• Máxima menor que a máxima anterior e mínima maior que a mínima anterior;
Fórmula:
• (Maxima < Maxima[1]) e (Minima > Minima[1])
• Retorna 1: Verdadeiro
• Retorna 0: Falso
Figura 43. Função C_InsideBar
Inicio
Se (Maxima < Maxima[1]) e (Minima > Minima[1]) entao
Plot(1)
Senao
Plot(0);
Fim;
84 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10. FUNÇÕES - INDICADORES
10.1. MÉDIAS MÓVEIS
Funções
• Media
• MediaExp
Parametro
MediaLonga(21);
MediaCurta(9);
Exponencial(Verdadeiro);
var
mmECurta, mmELonga : Real;
//MediaExp
//Media
Inicio
Se (Exponencial) entao
inicio
mmECurta := MediaExp(MediaCurta, Fechamento);
mmELonga := MediaExp(MediaLonga, Fechamento);
fim
Senao
inicio
mmECurta := Media(MediaCurta, Fechamento);
mmELonga := Media(MediaLonga, Fechamento);
fim;
Plot(mmECurta);
Plot2(mmELonga);
{Se (mmECurta > mmELonga) entao PaintBar(clVerde)
Senao PaintBar(clVermelho);}
Se (mmECurta > mmELonga) entao SetPlotColor(1, clVerde)
Senao SetPlotColor(1, clVermelho);
Fim;
85 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
var
mmE : Real;
mm : Real;
Inicio
// Referência
mmE := MediaExp(21, Fechamento); // Roxo
// mm := HarmonicMean(Fechamento, 21); // MM Harmonica
// mm := TriAverage(Fechamento, 21); // MM TMA
// mm := AdaptiveMovingAverage(10, 9, 21); // KAMA
// mm := HullMovingAverage(21); // HMA
// mm := Tilson(0.7, 21); // TMA
Plot(mmE); // Roxo
Plot2(mm); // Verde
// Envelope
// Percentual: Percentual utilizado no momento do cálculo do indicador.
// PeriodoMedia: Período utilizado para o cálculo da média.
// TipoMedia: Determina qual média será considerada:
// 0 - Aritmética
// 1 - Exponencial
// 2 - Welles Wilder
// 3 - Ponderada
// Linha: Determina qual linha será obtida:
// 0 - Meio
// 1 - Superior
// 2 - Inferior
Plot2(Envelope(2.0, 21, 1)|1|);
Plot3(Envelope(2.0, 21, 1)|2|);
Fim;
86 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.2. MACD
Funções
• MACD
Parametro
MediaLonga(26);
MediaCurta(12);
Sinal(9);
Coloracao(Verdadeiro);
var
vMACD : Real;
vSinal : Real;
vHistograma : Real;
Inicio
// MACD - A diferença entre MMe(Rápida) - MMe(Lenta)
vMACD := MACD(MediaLonga, MediaCurta, Sinal);
vSinal := MediaExp(Sinal, vMACD);
vHistograma := vMACD - vSinal;
Plot(vMACD);
Plot2(vSinal);
Plot3(vHistograma);
Se (Coloracao) entao
inicio
Se (vHistograma > 0) entao SetPlotColor(3, clVerde)
Senao SetPlotColor(3, clVermelho);
fim;
Se (vHistograma > 0) entao Select;
Fim;
87 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.3. ACUMULAÇÃO DISTRIBUIÇÃO
Funções
• AccuDistr
• AccuDistrW
Inicio
// AccuDistr - Original
// AccuDistrW - Williams
Plot(AccuDistr);
Plot2(AccuDistrW);
Fim;
10.4. ÍNDICE DIRECIONAL MÉDIO
Funções
• ADX
• DiPDiM
Parametro
Periodo(14);
var
vADX, vDiP, vDiN : Real;
Inicio
vADX := ADX(Periodo, 9);
vDiP := DiPDiM(Periodo)|0|; // +DI - Diferente de [0]
vDiN := DiPDiM(Periodo)|1|; // -DI - Diferente de [1]
Plot(vADX);
Plot2(vDiP);
Plot3(vDiN);
Se (vDiP > vDiN) entao SetPlotColor(1, clVerde)
Senao SetPlotColor(1, clVermelho);
Se (vDiP > vDiN) e (vADX > 25) e (vADX < 30) entao Select;
Fim;
88 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.5. ESTOCÁSTICO
Funções
• SlowStochastic
• FastStochastic
• FullStochastic
• SlowK
• FastD
• FastK
• FastKCustom
• MomentumStochastic
var
FastSt, SlowSt, FullSt, MSt, FK, FD, SK, SD : Real;
Inicio
// Estocástico
FullSt := FullStochastic(8); // Estocastico Pleno
SlowSt := SlowStochastic(8); // Estocastico Lento
FastSt := FastStochastic(8); // Estocastico Rápido
// Fast K - K Rápida
FK := FastK(8);
// FK := FastKCustom(Highest(High,8),Lowest(Low,8),Fechamento,3);
// Fast D - D Rápido
// FD := FastD(8); {ERRO}
FD := Media(3, FastK(8));
// Slow K - K Lento
// SK := SlowK(8); {ERRO}
SK := Media(3, FastK(8));
// Slow D - D Lento
SD := Media(3, SK);
// Momemtum Estocástico
MSt := MomentumStochastic(8);
Se (SK[1] < SD[1]) e (SK[0] > SD[0]) e (SlowSt < 30) entao Select;
Plot(MSt);
Fim;
89 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.6. CCI
Funções
• CCI
var
vCCI : Real;
Inicio
// CCI
vCCI := CCI(14);
Plot(vCCI);
Se ((vCCI > 0) e (vCCI < 100)) entao SetPlotColor(1, clVerde)
Senao Se (vCCI >= 100) entao SetPlotColor(1, clLime)
Senao Se (vCCI < 0) entao SetPlotColor(1, clVermelho);
Fim;
10.7. OBV
Funções
• OBV
• OBVAvg
var
vOBV, vOBVAvg, mm : Real;
Inicio
vOBV := OBV;
vOBVAvg := OBVAvg(10, 3);
mm := Media(9, vOBV);
Plot(vOBV);
Plot2(mm);
Se (vOBV[1] < mm[1]) e (vOBV[0] > mm[0]) entao Select;
Fim;
90 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.8. RSI
Funções
• RSI
var
vRSI : Real;
Inicio
// RSI
vRSI := RSI(9, 0); // 0 = Clássico // 1 = Simples
Plot(vRSI);
Fim;
10.9. BANDAS DE BOLLINGER
Funções
• BollingerBands
• BollingerBandW
• BollingerBPerc
var
vBB, vBBW, vBBP : Real;
Inicio
// Bandas de Bollinger
vBB := BollingerBands(2, 20, 0);
// |0| = Banda Superior
// |1| = Banda Inferior
// Para plotar banda média, usar Desvio em número inteiro ex. (2)
vBBW := BollingerBandW(2.00, 20, 0); // W = Width = Largura
vBBP := BollingerBPerc(2.00, 20, 0); // Perc = Percentual
Plot(vBBP);
Se (vBBP >= 100) entao PaintBar(clAmarelo)
Senao Se (vBBP <= 0) entao PaintBar(clPurpura);
Fim;
91 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.10. AROON LINE
Funções
• AroonLin
o AroonLin(Periodo : Integer)|Linha : Integer|
▪ Periodo: Período utilizado no momento do cálculo do indicador.
▪ Linha: Determina qual linha será obtida:
▪ 0 - Aroon Up
▪ 1 - Aroon Down
• AroonOsc
o AroonOsc(Periodo : Integer)
var
aLUP, ALDOWN, aO : Real;
Inicio
aLUP := AroonLin(9)|0|;
aLDOWN := AroonLin(9)|1|;
aO := AroonOsc(9);
Plot(aLUP);
Plot2(aLDOWN);
Plot3(aO);
Se (aO > 0) entao SetPlotColor(3, clLime)
Senao Se (aO < 0) entao SetPlotColor(3, clVermelho);
Se (aO[1] < 0) e (aO[0] > 0) entao PaintBar(clAzul);
Se (aO[1] > 0) e (aO[0] < 0) entao PaintBar(clVermelho);
Se (aO[1] < 0) e (aO[0] > 0) entao Select;
Fim;
92 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
10.11. VOLUME
Funções
• Volume
• Quantity
• FinancialVol
• QuantityVol
• VolumeOSC
• VolumeROC
• AgressionVolBalance
• AggressionVolBuy
• AggressionVolSell
• Trades
var
vol : Real;
Inicio
// Série de Dados
// Plot(Volume); // Volume Financeiro
// Plot(Quantidade); // Volume de Contratos negociados
// FinancialVol - Volume Financeiro
// vol := FinancialVol(falso);
// Plot(vol);
// QuantityVol - Volume Quantidade
// vol := QuantityVol(falso);
// Plot(vol);
// VolumeOsc
// vol := VolumeOsc(9, 21);
// Plot(vol);
// VolumeRoc
// vol := VolumeROC(9);
// vol := ((Volume[0] - Volume[3]) / Volume[3]) * 100;
// Plot(vol);
Fim;
93 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
var
vol : Real;
Inicio
// Agressores
// TR - Volume de Agressão - Saldo : AgressionVolBalance
// TR - Volume de Agressão - Compra : AgressionVolBuy
// TR - Volume de Agressão - Venda : AgressionVolSell
// Quantidade = AggrCompra + AggrVenda
// Saldo = AggrCompra - AggrVenda
Plot(AgressionVolSell);
Fim;
94 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
11. MÉDIAS MÓVEIS
Definição: Uma média móvel é o preço médio de uma ação em um período de tempo definido.
11.1. OBJETIVO
• Variações no movimento dos preços podem dificultar a análise da tendência geral de um ativo.
• Ao traçar o preço médio de um ativo, o movimento do preço é suavizado.
• Com flutuações do dia a dia removidas - melhor visão da verdadeira tendência.
11.2. USO
• Confirmar tendências, ou apontar possíveis reversões de tenências.
• Estabelecer níveis de suporte e resistência.
11.3. TIPO
• Indicador baseado em preço.
11.4. BÁSICO
• Como regra geral, Médias Móveis usam preços passados em seus cálculos.
• Os cálculos diferem apenas no que diz respeito ao tipo de ponderação colocada nos dados de preços.
Exemplos:
o Ponderação igual de cada ponto de preço;
o Mais peso sendo colocado em dados recentes.
• Período, é o termo usado para determinar quantos preços no passado a média móvel irá usar em seus
cálculos.
Médias Móveis curtas ou rápidas Poucos períodos em seus cálculos
Médias Móveis longas ou lentas Muitos períodos em seus cálculos
• Os três tipos mais comuns de médias móveis são:
o Simples,
o Lineares,
o Exponenciais,
o Ponderadas.
11.5. MÉDIA MÓVEL SIMPLES (ARITMÉTICA)
• Este é o método mais comum usado para calcular a média móvel de preços.
• Simplesmente pega a soma de todos os preços de fechamento anteriores no período e divide o
resultado pelo número de preços usados no cálculo.
95 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
o Por exemplo, em uma média móvel de 10 dias, os últimos 10 preços de fechamento são somados e
depois divididos por 10.
• Para tornar a média menos responsiva às mudanças de preços aumenta-se o número de períodos
utilizados no cálculo.
• Aumentar o número de períodos no cálculo auxilia a avaliar a força da tendência de longo prazo e a
probabilidade de que ela reverta.
• Problema com a Média Móvel Simples
o Argumenta-se que a utilidade desse tipo de média é limitada.
o Porque cada ponto da série de dados tem o mesmo impacto no resultado, independentemente de
onde ele ocorra na sequência.
o Os críticos argumentam que os dados mais recentes são mais importantes e, portanto, também
devem ter um peso maior.
o Esse tipo de crítica tem sido um dos principais fatores que levaram à invenção de outras formas de
médias móveis.
Matematicamente
Onde:
11.6. MÉDIA MÓVEL PONDERADA LINEAR
• É o menos comum dos três e é usado para resolver o problema da ponderação igual.
• É calculada pegando a soma de todos os preços de fechamento durante um determinado período e
multiplicando-os pela posição do ponto de dados e depois dividindo pela soma do número de períodos.
• Por exemplo, em uma média ponderada linear de cinco dias, o preço de fechamento de hoje é
multiplicado por cinco, o de ontem por quatro e assim sucessivamente, até que o primeiro dia do período
seja atingido. Esses números são então somados e divididos pela soma dos multiplicadores.
Matematicamente
Onde:
96 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
11.7. MÉDIA MÓVEL EXPONENCIAL
• Esse cálculo da média móvel usa um fator de suavização para atribuir um peso maior aos pontos de
dados recentes.
• É considerado muito mais eficiente que a média ponderada linear.
• Porém, é mais responsiva às novas informações em comparação à média móvel simples.
• Essa capacidade de resposta é um dos fatores principais do motivo pelo qual essa é a média móvel de
escolha entre muitos investidores.
Matematicamente
Onde:
Observação:
Configuração: Depende do período gráfico utilizado.
11.8. INTERPRETAÇÃO
• Existem vários tipos diferentes de médias móveis que variam na maneira como são calculados
• A forma como cada média é interpretada permanece a mesma.
Exemplo
Observar a ordem de um par de médias móveis.
• Uma média de curto prazo acima de uma média de longo prazo, indica tendência de ALTA.
• Uma média de longo prazo acima de uma média de curto prazo, indica tendência de BAIXA.
Observar o comportamento do preço em relação a uma média móvel.
11.9. SINAIS
• Atento a cruzamentos entre médias móveis de longo e curto prazo.
• Atento a cruzamento entre o preço e uma ou um par de médias móveis.
97 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
12. MACD MOVING AVERAGE CONVERGENCE DIVERGENCE
Definição: O MACD é um cálculo da diferença entre duas médias móveis exponenciais (MMEs) dos preços de
fechamento. Essa diferença é representada ao longo do tempo, juntamente com uma média móvel da diferença.
A divergência entre os dois é mostrado como um histograma.
12.1. OBJETIVO
• As médias móveis exponenciais destacam mudanças recentes no preço de uma ação.
• Ao comparar MMEs de diferentes períodos, a linha MACD ilustra mudanças na tendência de uma ação.
• Então, comparando essa diferença com uma média, um analista pode traçar mudanças sutis na
tendência das ações.
12.2. USO
• Confirmar tendências, ou apontar possíveis reversões de tenências.
• Como métrica das tendências de preços, o MACD é menos útil para ações que não estão em alta ou
estão negociando de forma irregular.
12.3. TIPO
• Indicador Oscilador atrasado baseado em preço.
12.4. BÁSICO
• Componentes básicos do MACD
Matematicamente
98 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
12.5. PERÍODOS
• O período para as médias móveis nas quais um MACD se baseia podem variar,
• Mas os parâmetros mais comumente usados são:
MME lenta 26 Períodos
MME rápida 12 Períodos
Linha de Sinal MME de 9 períodos da diferença entre os dois.
1.6 INTERPRETAÇÃO
• 3 sinais significativos gerados pelo indicador MACD:
Quando:
• A linha MACD cruza a linha de sinal; ou
• A linha MACD cruza zero; ou
• Existe uma divergência entre a linha MACD e o preço da ação ou entre o histograma e o preço da
ação.
Matematicamente isso corresponde a:
• MACD - Sinal = 0
• MME[rápida,12] - MME[lenta,26] = 0
• Sinal (preço relativo extremo final - preço relativo extremo inicial) ≠ Sinal (preço relativo extremo -
MACD extremo inicial)
12.6. CRUZAMENTOS
Cruzamento entre Linha MACD e Linha Sinal
Definição: Indica que a tendência do preço está prestes a acelerar na direção do cruzamento.
Compra Quando a linha MACD cruza para cima a linha de Sinal.
Venda Quando a linha MACD cruza para baixo a linha de Sinal.
Cruzamento entre Histograma e 0
Definição: O histograma é a diferença entre a linha MACD e a linha de Sinal, portanto,
Quando as linhas Não há diferença entre Graficamente isso Uma barra de valor 0 no
cruzam elas significa Histograma.
99 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Movimentação do Histograma
Definição: O histograma ajuda a visualizar quando as duas linhas (MACD e Sinal) estão se aproximando de
um cruzamento.
• O tamanho da diferença entre as Linhas MACD e Sinal é representado pelo tamanho da barra no
Histograma.
• Portanto, o tamanho da Barra no Histograma pode indicar a aceleração de uma tendência.
Barras no Histograma diminuindo sugere que um cruzamento pode estar se aproximando.
Barras no Histograma crescendo sugere que uma tendência já definida pode ficar ainda mais forte.
Cruzamento entre Linha MACD e 0
Definição: Um cruzamento da linha MACD com o eixo zero acontece quando não há diferença entre as MMEs
rápidas e lentas.
• Os cruzamentos em zero fornecem evidências de uma mudança na direção de uma tendência.
Mudança de positivo para negativo é um indicativo de baixa.
Mudança de negativo para positivo é um indicativo de alta.
12.7. DIVERGÊNCIAS
Divergências entre Linha MACD e Preços
Definição: Refere-se a uma discrepância entre a linha MACD e o gráfico do preço das ações.
Divergência entre MACD e o Preço Surge quando o preço atinge um novo nível mais baixo, mas o
Positiva MACD não.
Divergência entre MACD e o Preço Surge quando o preço atinge um novo nível mais alto, mas o
Negativa MACD não.
Interpretação:
Divergência Isso é interpretado como otimista, sugerindo que uma tendência de baixa pode estar quase
Positiva no fim.
Divergência Isso é interpretado como pessimista, sugerindo que os recentes aumentos de preços não
Negativa continuarão.
100 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Divergências entre Preços e Histograma
Níveis altos de preços Não confirmados por Novos níveis altos de Considerado um indicativo de
histograma BAIXA.
Níveis baixos de preços Não confirmados por Novos níveis baixos de Considerado um indicativo de
histograma ALTA.
Divergências mais longas e mais nítidas
Picos ou fundos distintos Consideradas mais significativas do que padrões pequenos e rasos.
12.8. FALSOS SINAIS
Como qualquer indicador, o MACD pode gerar sinais falsos.
Falso positivo Um cruzamento de alta seguido por um repentino declínio em uma ação.
Falso negativo Uma situação em que não houvesse cruzamento de alta, mas o preço acelerara
subitamente.
Uma estratégia prudente seria aplicar um filtro para sinalizar continuação do movimento.
Exemplo: Ao ocorrer o cruzamento entre as linhas de MACD e Sinal, aguardar 3 períodos para confirmar
movimentação.
Como em qualquer estratégia de filtragem, reduz tanto a probabilidade de sinais falsos quanto a frequência
de perda de lucro. Reduz também o lucro com operações acontecendo após confirmação.
Outra estratégia seria usar um segundo indicador.
Como indicador atrasado, o MACD é frequentemente associado a um indicador principal, como o Índice de
Força Relativa (RSI).
E por fim, utilizar comparações históricas, uma análise cuidadosa dos movimentos passados de preços fornece
informações adicionais sobre como uma ação tende a se mover.
12.9. LIMITAÇÕES
O MACD é normalmente criticado por não responder em condições de mercado de volatilidade muito baixa
ou alternativamente muito alta.
Como o MACD mede a divergência entre as médias, ele pode fornecer feedback significativo apenas à medida
que as tendências mudam.
Assim, o MACD é menos útil se o mercado não estiver em tendência, ou seja, se estiver lateral ou se estiver
variando de forma irregular, realizando movimentos repentinos, dramáticos ou compensatórios.
101 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Em um mercado lateral:
A divergência entre médias não terá uma tendência para apontar.
Em um mercado irregular:
As mudanças acontecerão rápido demais para serem detectadas pelas médias móveis ou serão canceladas
uma pela outra, diminuindo a utilidade do MACD.
Uma ressalva parcial a essa crítica é que se um mercado é tendencioso ou volátil, isso será sempre em relação
a um determinado período, portanto o MACD pode ser ajustado para períodos mais curtos ou mais longos
para compensar por isso. Para investidores mais tradicionais, um indicador como o MACD pode ser usado
apenas para confirmar uma decisão previamente determinada ou para selecionar um ponto de entrada ideal.
102 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
13. ACCUDISTR - ACUMULAÇÃO / DISTRIBUIÇÃO
Relaciona volume e preço.
13.1. OBJETIVO
• Avaliar oferta e demanda de um ativo.
• Ajudar a antecipar movimento dos preços pós momentos de congestão (preço lateral).
13.2. USO
• Verificar as tendências de preços ou para detectar potenciais mudanças de tendência nos preços.
13.3. TIPO
• Indicador de Momento baseado em volume. Antecipa o movimento dos preços.
• Criado por: Mark Chaikin / Larry Williams
13.4. AD VS WAD
• AD: Indicador tradicional - Utiliza preços do período corrente e uma parcela do volume.
• WAD: Indicador de LW - Utiliza preços de períodos anteriores. (Consenso é de que melhora o
desempenho).
13.5. BÁSICO
O Indicador mensura a pressão compradora e a pressão vendedora. Desta forma emite sinais que ajudam a
identificar se o mercado está em fase Acumulação ou Distribuição:
Fase de Acumulação
• Movimento lateral que antecede a tendência de alta.
• Ótimo momento para compra. Para isso requer informações de alta qualidade.
Fase de Distribuição
• Movimento lateral que antecede a tendência de baixa.
• Ótimo momento para venda. Para isso requer informações de alta qualidade.
Mas se o preço aumenta e o volume cai ou o contrário é sinal de divergência, indicando que podemos ver
uma mudança iminente no preço do ativo, por exemplo, se o indicador está se movendo para cima e o preço
do ativo caindo, provavelmente ocorrerá uma reversão que pode ser bearish (tendência do urso, de derrubar
os preços) ou bullish (tendência do touro, de elevar os preços).
103 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
13.6. INTERPRETAÇÃO
Preço Lateral & AD subindo = Acumulação - possivelmente precedendo tendência de Alta.
Preço Latera & AD caindo = Distribuição - possivelmente precedendo tendência de Baixa.
Preço Caindo & AD subindo = Possível reversão no preço.
Preço Subindo & AD caindo = Possível reversão no preço.
Atento a divergências dos preços com a linha de acumulação/distribuição.
104 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
14. ADX ÍNDICE DIRECIONAL MÉDIO
Average Directional Index
14.1. OBJETIVO
• Medir força e direção de uma tendência.
14.2. USO
• Embasar ou confirmar estratégias.
14.3. TIPO
• Indicador oscilador baseado em preço.
• Criado por: Welles Wider
14.4. O ADX UTILIZA
• Índice Direcional Positivo: +DI - Indica uma tendência de Alta
• Índice Direcional Negativo: -DI - Indica uma tendência de Baixa
14.5. 1.5 BÁSICO
Tendência do preço é de subir.
Tendência do preço é de cair.
Reversão de tendência.
Configuração: Recomendado, P: 14
14.6. INTERPRETAÇÃO
Limite de Variação: 0 a 100
0 - 25 Tendência fraca - movimento pouco significativo
25 - 50 Tendência média - local importante - para antecipar subida (entrada/saída)
50 - 75 Tendência forte
75+ Raro
• Atento a cruzamentos entre +DI & -DI & Atento a linha ADX.
105 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
15. OSCILADOR ESTOCÁSTICO
Definição: O oscilador estocástico é um indicador de momento que utiliza níveis de suporte e resistência. O
termo estocástico refere-se à localização de um preço atual em relação à sua faixa de preço durante um
período.
15.1. OBJETIVO
• Tenta prever os pontos de virada do preço ao comparar o preço de fechamento de um ativo com sua
própria taxa de variação de preço.
15.2. TIPO
• Indicador oscilador de momento baseado em preço.
15.3. 1.3 BÁSICO
O indicador é definido matematicamente como:
Rápido:
Lento:
Os cálculos acima encontram o intervalo entre a Máxima e a Mínima de um ativo durante um determinado
período.
O preço atual do ativo é então expresso como uma porcentagem desse intervalo, onde:
• 0% a parte inferior do intervalo e 100% indicando os limites superiores do intervalo ao longo do
período estudado.
A ideia por trás desse indicador é que os preços tendem a fechar perto dos extremos da faixa recente antes
dos pontos de virada.
106 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
15.4. LINHAS ESTOCÁSTICO
%K Fornece um sinal de antecipação
%D Fornece um sinal de virada
%D(lento) Fornece um sinal de confirmação de %D.
Diferença entre Rápido e Lento
• O estocástico rápido é mais sensível do que o estocástico lento a mudanças no preço.
• Provavelmente resultará em muitos sinais de transação, porém, provavelmente com menor qualidade.
Configuração: Recomendado, 5 / 9 / 14 Períodos para o estocástico; Suavização da linha é normalmente
feita com 3 Períodos.
15.5. INTERPRETAÇÃO
• O oscilador estocástico é baseado numa variação limite, o que significa que está sempre entre 0 e 100.
• Isso o torna um indicador de condições de sobre compra e sobre venda.
Sobre comprado Próximo a 100
Sobre vendido Próximo a 0
No entanto, estes nem sempre são indicativos de reversão iminente.
• Tendências muito fortes podem manter as condições de sobre compra ou sobre venda por um período
prolongado.
• Em vez disso, os analistas devem procurar por mudanças no oscilador estocástico em busca de pistas
sobre futuras mudanças de tendência.
15.6. SINAIS
O Principal sinal para agir utilizando um indicador estocástico é quando houver:
• Uma divergência em uma das áreas extremas.
• Com um cruzamento entre as linhas.
Cruzamentos simples entre as linhas podem ocorrer com muita frequência, por tanto o ideal é esperar que esses
cruzamentos ocorram em áreas de extremidade.
• Onde áreas extremas, são as áreas do indicador próximo ao valor 0 ou valor 100.
• Os preços tendem a fechar perto dos extremos pouco antes de pontos de virada.
No caso de uma tendência de ALTA
• Os preços tendem a elevar-se, fazendo máximas mais altas.
107 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
• A linha do estocástico geralmente buscará a extremidade superior (80-100).
• Quando o momento começa a desacelerar, A linha do estocástico começará a recuar da extremidade
superior.
• Fazendo com que o indicador estocástico se incline para baixo, próximo aos últimos preços de alta.
• Criando assim uma divergência, próxima ao momento da virada de preços.
No caso de uma tendência de BAIXA
• Os preços tendem a diminuir, fazendo mínimas mais baixas.
• A linha do estocástico geralmente buscará a extremidade inferior (0-20).
• Quando o momento começa a desacelerar, A linha do estocástico começará a recuar da extremidade
inferior.
• Fazendo com que o indicador estocástico se incline para cima, próximo aos últimos preços de baixa.
• Criando assim uma divergência, próxima ao momento da virada de preços.
15.7. LIMITAÇÕES
A principal limitação do oscilador estocástico é que é conhecido por produzir sinais falsos.
• É quando um sinal de negociação é gerado pelo indicador, mas o preço não segue.
• Durante condições voláteis do mercado, isso pode acontecer com bastante regularidade.
Uma maneira de ajudar com isso é usar a tendência de preço como um filtro.
• Onde os sinais são capturados apenas se estiverem na mesma direção da tendência geral dos preços.
15.8. DIFERENÇA COM IFR (ÍNDICE DE FORÇA RELATIVA).
O índice de força relativa (IFR) e o oscilador estocástico são osciladores de momento de preço que são
amplamente utilizados em análises técnicas.
Embora frequentemente usados em conjunto, cada um deles tem diferentes teorias e métodos subjacentes.
• O oscilador estocástico é baseado na suposição de que os preços de fechamento devem fechar perto
da mesma direção da tendência atual.
• O IFR rastreia os níveis de sobre compra e sobre venda, medindo a velocidade dos movimentos de
preços.
Em outras palavras,
• O oscilador estocástico funciona melhor em períodos de tendência consistente.
• O IFR foi projetado para medir a velocidade dos movimentos de preços.
108 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
16. CCI COMMODITY CHANNEL INDEX
16.1. OBJETIVO
• Ferramenta muito comum para analistas na identificação de tendências cíclicas.
• Identificar o início e o fim dos ciclos nos mercados futuros e é comumente usado para identificar
oportunidades de compra e venda.
16.2. TIPO
• Indicador oscilador atrasado de momento baseado em preço.
16.3. BÁSICO
• O CCI é calculado como a diferença entre o preço típico de um ativo e sua média móvel simples,
dividida pelo desvio médio absoluto do preço típico.
• O índice geralmente é dimensionado por um fator inverso de 0,015 para fornecer números mais
legíveis:
• Onde:
16.4. DIMENSIONAMENTO
Lambert define a constante em 0,015 para garantir que aproximadamente 70 a 80% dos valores de CCI
caiam entre -100 e +100. O CCI flutua acima e abaixo de zero.
A porcentagem de valores de CCI que caem entre +100 e -100 dependerá do número de períodos usados.
Período curto CCI mais volátil = Menor porcentagem de resultados entre +100 e -100.
Período longo CCI menos volátil = Maior porcentagem de resultados entre +100 e -100.
Configuração: Recomendado, 20 Períodos.
109 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos - [email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
16.5. INTERPRETAÇÃO
Muitos analistas também usam esse indicador para indicar mercados de sobre compra e venda em excesso,
bem como um oscilador.
• Cruzamentos acima da linha de sobre comprado indicam um mercado de sobre compra.
• Cruzamentos abaixo da linha sobre vendida indicam um mercado de sobre venda.
O CCI geralmente perde a parte inicial de uma nova tendência devido ao tempo gasto na posição neutra
(entre as linhas sobre comprado e sobre vendido).
Muitos analistas acreditam que o cruzamento da média do CCI acima ou abaixo de zero identifica as condições
de mercado antes que as linhas OverBought e OverSold sejam cruzadas.
16.6. SINAIS
Linha CCI
• O CCI normalmente oscila acima e abaixo de uma linha zero.
• As oscilações normais ocorrerão na faixa de +100 e -100.
Acima de +100 Sobre comprado Aponta probabilidade de correção do preço.
Abaixo de -100 Sobre vendido Aponta probabilidade de correção do preço.
Acima de Entrando em uma forte tendência Sinal de A posição deve ser fechada quando o CCI
+100 de ALTA COMPRA voltar abaixo de +100.
Abaixo de Entrando em uma forte tendência Sinal de A posição deve ser fechada quando o CCI
-100 de BAIXA VENDA voltar acima de -100.
Divergência entre Linha CCI e Preço
• Também podem ser aplicadas divergências para aumentar a robustez dos sinais.
Divergência Abaixo de -100 Sinal de que o preço está tentando retornar Portanto possível perna
Positiva ao valor acima de -100 de ALTA.
Divergência Acima de +100 Sinal de que o preço está tentando retornar Portanto possível perna
Negativa ao valor abaixo de +100 de BAIXA.
16.7. LIMITAÇÕES
Embora seja frequentemente usado para detectar condições de sobre compra e sobre venda, o CCI é altamente
subjetivo a esse respeito.
110 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
O indicador é ilimitado e, portanto, os níveis anteriores de sobre compra e sobre venda podem ter pouco
impacto em valores futuro.
O indicador é do tipo atrasado, o que significa que às vezes fornece sinais ruins.
Uma subida para +100 ou queda para -100 para sinalizar uma nova tendência pode chegar tarde demais,
pois o preço pode já está em alta ou baixa e estar começando a corrigir. Tais incidentes são chamados de
whipsaws. Um sinal é fornecido pelo indicador, mas o preço não segue.
Se não houver cuidado, esses podem ocorrer com frequência, portanto, o indicador é mais bem usado em
conjunto com:
• A análise de preços e outras formas de análise;
• Indicadores técnicos para ajudar a confirmar ou rejeitar os sinais de CCI.
111 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
17. OBV ON-BALANCE VOLUME
17.1. OBJETIVO
• Indicador muito utilizado para refletir movimentos do mercado baseado no volume.
• Relacionar Preço e Volume.
17.2. TIPO
• Indicador baseado em volume.
• Criado por: Joseph Granville.
17.3. BÁSICO
O OBV é calculado considerando o volume total do período de negociação e atribuindo-o um valor positivo
ou negativo.
• Quando o preço aumenta durante o período de negociação, o volume recebe um valor positivo,
• Quando o preço diminui durante o período de negociação, o volume recebe um valor negativo,
O total positivo ou negativo do volume para o período é então adicionado a um total acumulado desde o início
da medida.
Onde:
•
Se o preço de fechamento de hoje for superior ao preço de fechamento de ontem, então:
• OBV atual = OBV anterior + volume de hoje
Se o preço de fechamento de hoje for menor que o preço de fechamento de ontem, então:
• OBV atual = OBV anterior - volume de hoje
Se o preço de fechamento de hoje for igual ao preço de fechamento de ontem, então:
• OBV atual = OBV anterior
112 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
17.4. INTERPRETAÇÃO
É importante focar na tendência ao usar OBV.
• Isso é mais importante que o valor real da medida OBV.
• Essa medida expande a medida básica de volume combinando movimento de volume e preço.
Apesar de ser plotado em um gráfico de preços e medido numericamente, o valor quantitativo individual real
do OBV não é relevante. O próprio indicador é cumulativo, enquanto o intervalo de tempo permanece fixo
por um ponto de partida dedicado, o que significa que o valor do número real do OBV depende
arbitrariamente da data de início.
Em vez disso, traders e analistas analisam a natureza dos movimentos do OBV ao longo do tempo. A inclinação
da linha OBV carrega todo o peso da análise.
Os analistas analisam os números de volume no OBV para rastrear grandes investidores institucionais.
Eles tratam as divergências entre volume e preço como sinônimo da relação entre "dinheiro inteligente" e as
massas díspares, na esperança de mostrar oportunidades de compra contra tendências prevalecentes
incorretas. por exemplo, o dinheiro institucional pode aumentar o preço de um ativo e depois vendê-lo depois
que outros investidores entrarem na onda.
17.5. LIMITAÇÕES
Uma limitação do OBV é que ele é um indicador adiantado, o que significa que pode produzir previsões, mas
há pouca evidência sobre o que realmente aconteceu em termos dos sinais que produz.
Por isso, é propenso a produzir sinais falsos. Portanto, pode ser equilibrado usando indicadores atrasados em
conjunto. Adicione uma linha de média móvel ao OBV para procurar quebras de linha do OBV. Você pode
confirmar uma quebra no preço se o indicador OBV fizer um cruzamento simultâneo.
Outra nota de cautela ao usar o OBV é que um grande aumento de volume em um único dia pode acender o
indicador por um bom tempo, por exemplo, um anúncio surpresa de ganhos, sendo adicionado ou removido de
um índice, ou negociações maciças de blocos institucionais podem fazer com que o indicador suba ou desça,
mas o aumento no volume pode não ser indicativo de uma tendência.
113 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
18. RSI RELATIVE STRENGTH INDEX
18.1. OBJETIVO
• O RSI ajuda a sinalizar condições de sobre compra e sobre venda em um ativo.
• Identificar se o preço de um ativo foi injustificadamente empurrado para os níveis atuais e se uma
reversão pode estar a caminho.
18.2. TIPO
• Indicador oscilador de momento.
• Criado por: J. Welles Wilder.
18.3. BÁSICO
O RSI é classificado como um oscilador de momento, medindo a velocidade e magnitude dos movimentos de
preços direcionais.
• Momentum é a taxa de aumento ou queda de preço.
O RSI calcula o momento em que a relação entre fechamento mais alto e fechamento mais baixo ocorrem:
• Ações que tiveram mudanças positivas mais fortes têm um RSI mais alto do que ações que tiveram
mudanças negativas mais fortes.
Medido em uma escala de 0 a 100, com níveis altos e baixos marcados em 70 e 30, respectivamente. Os
períodos mais curtos ou mais longos são usados para perspectivas alternadamente mais curtas ou mais longas.
Níveis mais altos e baixos extremos - 80 e 20, ou 90 e 10 - ocorrem com menos frequência, mas indicam um
momento mais forte.
Limite de Variação: 0 a 100
0 - 20 Momento extremamente forte
20 - 30 Momento forte
70 - 80 Momento forte
80 - 100 Momento extremamente forte
Os períodos de ALTA são caracterizados pelo fechamento ser maior que o fechamento anterior:
114 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Os períodos de BAIXA são caracterizados pelo fechamento ser menor que o fechamento anterior:
Onde:
•
•
Se o último fechamento for o mesmo que o anterior, U e D serão zero.
As médias U e D são calculadas usando uma média móvel exponencial de período n (MME).
A proporção dessas médias é a força relativa:
Onde:
•
•
Se a média dos valores de D for zero, o valor do RSI é definido como 100.
A Força Relativa é então convertida em um Índice de Força Relativa entre 0 e 100:
Onde:
As médias móveis exponenciais devem ser adequadamente inicializadas com médias simples, usando os
primeiros n valores da série de preços.
Configuração: Recomendado, 14 Períodos.
115 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
19. AROON LINE
19.1. OBJETIVO
• Indicador para detectar tendências de preços
• Tenta sinalizar o início de uma tendência.
• Tenta indicar forças de uma tendência.
19.2. TIPO
Aroon UP Linha superior
Aroon Down Linha Inferior
19.3. BÁSICO
Aroon Up
Mede quanto tempo se passou desde que o preço atingiu a maior máxima dentro de um período.
𝑃 − 𝑃𝑒𝑟𝑖𝑑𝑜𝑠 𝑑𝑒𝑠𝑑𝑒 ú𝑙𝑡𝑖𝑚𝑎 𝑀á𝑥 𝑒𝑚 𝑃
𝐴𝑟𝑜𝑜𝑛𝑈𝑃 = ( ) × 100
𝑃
Onde:
• 𝑃 = Período definido para o estudo.
Aroon Down
Mede quanto tempo se passou desde que o preço atingiu a menor mínima dentro de um período.
𝑃 − 𝑃𝑒𝑟𝑖𝑑𝑜𝑠 𝑑𝑒𝑠𝑑𝑒 ú𝑙𝑡𝑖𝑚𝑎 𝑀𝑖𝑛 𝑒𝑚 𝑃
𝐴𝑟𝑜𝑜𝑛𝐷𝑂𝑊𝑁 = ( ) × 100
𝑃
Onde:
• 𝑃 = Período definido para o estudo.
116 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
19.4. SINAIS
As linhas retornam uma porcentagem;
Linhas retornam 100%
Aroon UP A barra onde isso acontece atingiu a maior máxima do período (P).
Aroon DOWN A barra onde isso acontece atingiu a menor mínima do período (P).
Linhas retornam 0
Aroon UP Não houve rompimento da maior máxima no período (P).
Aroon DOWN Não houve rompimento da menor mínima no período (P).
Cruzamento das linhas
Aroon UP cruza para Aroon Down = Possível início de nova tendência de ALTA
CIMA
Aroon DOWN cruza para Aroon UP = Possível início de nova tendência de BAIXA
CIMA
19.5. INTERPRETAÇÃO
A forma de interpretação abaixo deve ser considerada como uma sequência de eventos:
Cruzamento entre linhas
• Sinal de uma possível reversão de tendência.
• Aroon UP cruzou para cima = Tendência de Alta
• Aroon DOWN cruzou para cima = Tendência de Baixa
A linha que cruzou para cima atinge 100
• Uma nova tendência pode ter iniciado.
• A linha da tendência se mantém entre 70 e 100 e a linha contra a tendência se mantém entre 0 e 30
• A tendência está acontecendo
As 2 linhas estão se movimentando em paralelo
• Possível período de consolidação.
117 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
20. FUNÇÕES DE VOLUME
Definição: O volume é um indicador gráfico que apresenta o número de ações negociadas em um período
especificado.
20.1. OBJETIVO
• Usado para confirmar tendências e padrões gráficos.
20.2. TIPO
Financeiro R$
Quantidade nº de contratos negociados
Negócios nº de negócios concretizados
20.3. INTERPRETAÇÃO
Volume Alto + Forte Alta de Preços = Movimento MAIS Relevante de ALTA
Volume Baixo + Fraca Alta de Preços = Movimento MENOS Relevante de ALTA
Volume Alto + Forte Baixa de Preços = Movimento MAIS Relevante de BAIXA
Volume Baixo + Fraca Baixa de Preços = Movimento MENOS Relevante de BAIXA
20.4. FUNÇÕES E INDICADORES
Volume Série de Dados Funções
Financeiro Volume[0] VolumeD(0)
VolumeW(0)
VolumeM(0)
VolumeY(0)
VolumeOsc
VolumeROC
FinancialVol
Quantidade Quantity[0] QuantityVol
118 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
20.5. FUNÇÕES DE TAPE READING RELACIONADAS A VOLUME
TR - Volume de Agressão - Saldo AgressionVolBalance
TR - Volume de Agressão - Compra AgressionVolBuy
TR - Volume de Agressão - Venda AgressionVolSell
20.5.1. VOLUME QUANTIDADE
𝑉𝑜𝑙𝑢𝑚𝑒 = 𝐴𝑔𝑔𝑟𝐶𝑂𝑀𝑃𝑅𝐴 + 𝐴𝑔𝑔𝑟𝑉𝐸𝑁𝐷𝐴
20.5.2. QUANTIDADE DE AGRESSÃO - SALDO
𝐴𝑔𝑔𝑟𝑆𝐴𝐿𝐷𝑂 = 𝐴𝑔𝑔𝑟𝐶𝑂𝑀𝑃𝑅𝐴 − 𝐴𝑔𝑔𝑟𝑉𝐸𝑁𝐷𝐴
119 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
21. FUNÇÕES DE ALARME
21.1. GERENCIADOR DE ALARMES
3 Formas de adicionar alarmes
• Alertas de Rompimento no Gráfico;
• Gerenciador de Alarmes;
• Função alert()
21.2. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
Alert Dispara uma notificação de alarme.
Parametro
Periodo(3);
Preco(Fechamento);
var
vMM : Real;
Inicio
vMM := MediaExp(Periodo, Preco);
Plot(vMM);
// Função Alert
Se ((Fechamento >= (vMM-5)) e (Fechamento <= (vMM+5))) entao Alert(clVerde);
Fim;
120 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
22. FUNÇÕES BACKTESTING
22.1. TIPOS DE ORDENS
Compra (Buy) & Venda (Sell)
Mercado
• Em uma negociação de COMPRA, a ordem é executada pelo melhor preço de VENDA naquele
momento.
• Em uma negociação de VENDA, a ordem é executada pelo melhor preço de COMPRA naquele
momento.
Limite
• A ordem só é executada quando a compra ou venda de um ativo atinge preço igual ou melhor ao
definido.
Stop
• Ordem de disparo
• Uma ordem de stop-limite consiste em dois preços: um preço de stop e um preço limite.
• Esse tipo de pedido pode ser usado para ativar uma ordem de limite para comprar ou vender.
Figura 44. Tipos de Ordens
121 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
22.2. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
BuyAtMarket Realiza envio de ordem de compra à mercado.
BuyLimit Envia uma ordem limite de compra.
BuyPosition Retorna o tamanho da posição de compra.
BuyPrice Retorna o valor da última operação de compra.
BuyStop Realiza envio de ordem de compra stop.
BuyToCoverAtMarket Realiza o fechamento de uma operação de venda.
BuyToCoverLimit Envia uma ordem de compra limite para fechar uma posição.
BuyToCoverStop Realiza o envio de ordem de compra stop para fechar posição.
CancelPendingOrders Cancela as ordens pendentes.
ClosePosition Envia ordens para encerrar todas as posições.
HasPendingOrders Retorna se existe ordens pendentes.
IsBought Retorna verdadeiro caso o cliente esteja posicionado na compra.
IsSold Retorna verdadeiro caso o cliente esteja posicionado na venda.
MyPrice Retorna a média entre, a máxima, a mínima e o fechamento.
ReversePosition Envia ordens para inverter todas as posições.
SellPosition Retorna o tamanho da posição de venda.
SellPrice Retorna o valor da última operação de venda.
SellShortAtMarket Envia ordem de venda à mercado para abrir posição.
SellShortLimit Envia uma ordem limite de venda.
SellShortStop Abre uma posição de venda enviando uma ordem do tipo Stop.
SellToCoverAtMarket Realiza uma ordem de venda à mercado caso exista uma posição de compra.
SellToCoverLimit Enviar uma ordem limite de venda para fechar posição.
SellToCoverStop Envia uma ordem stop caso exista uma posição de compra.
SendOrder Envia uma ordem customizada.
122 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
23. FUNÇÕES BACKTEST
23.1. LISTA DE FUNÇÕES
Lista de funções e descrições como demonstradas na documentação da plataforma Profitchart:
Função Descrição
AskPrice Retorna o preço da melhor oferta de venda.
AskSize Retorna a quantidade da melhor oferta de venda.
BidPrice Retorna o preço da melhor oferta de compra.
BidSize Retorna a quantidade da melhor oferta de compra.
BookSpread Retorna a diferença entre o topo do livro.
IsBMF Retorna 1 se o ativo for da BMF, retorna 0 caso contrário.
Lote Retorna a quantidade mínima de ordem.
MinPriceIncrement Retorna o incremento mínimo do preço.
Figura 45. Funções de Livro
123 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
24. AUTOMAÇÃO (ROBÔS)
Definição: Automação é o processo de implementar mecanismos automáticos que controlam o funcionamento
de um sistema. No contexto do mercado financeiro e, mais especificamente, na ferramenta Profitchart, isso
significa um mecanismo que opera enviando ordens para o mercado financeiro de forma automática, termo
bastante utilizado neste contexto, é o termo robô, ou seja, seria um robô enviando ordens de forma automática
para o mercado financeiro por nós.
24.1. MODELO DE EXECUÇÃO
O engano mais comum que pode ser cometido ao falarmos de estratégias de automação é o de confundir esse
conceito com backtesting, ou seja, acreditar que um código desenvolvido para fins de backtesting vai funcionar
perfeitamente em um ambiente de automação. Isso não será necessariamente sempre verdade, e por um fator
muito importante, o modelo de execução é diferente entre essas 2 aplicações.
• Modelo de execução, significa detalhar como o código se comporta na aplicação, ou seja, como o
compilador irá executar o código, qual a sequência de eventos, qual a ordem em que as instruções são
executadas pelo computador que consequentemente pode afetar o resultado que nós observamos.
Nós vimos anteriormente que o código é executado pelo compilador 1 vez, de forma sequencial, ou seja, da
primeira linha até a última, sequencialmente, podendo ter seu fluxo influenciado por componentes como testes
condicionais e loops controlados, e isso é feito barra por barra, nas barras que já foram fechadas no gráfico,
até que o compilador alcance a barra mais recente, e com o mercado aberto, o compilador continua
executando o código da mesma forma porém tick a tick, ou seja, a cada variação do preço ou volume, até que
esta barra se feche, e um novo período seja iniciado.
Figura 46. Automação
124 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Porém, o grande segredo está em entender, e antecipar na nossa mente, como esse modelo de execução vai
afetar especificamente a aplicação do nosso código, por exemplo, para uma plotagem, ou para a pintura
das barras, para o gatilho de um alerta, para o filtro de um screening, para execuções de ordens em modo
de backtesting, e agora, claro, também para automação de ordens no mercado.
24.2. CONCEITOS IMPORTANTES
Conceitos importantes que precisam ser considerados ao desenvolver códigos de automação.
É importante entender que no momento o envio da ordem é feito pelo compilador no momento da
confirmação da condição no fechamento do período, e por tanto, a ordem é essencialmente enviada na
abertura do próximo período. Neste contexto, ordens a mercado serão enviadas no preço de abertura do
novo período, e ordens stop e limite no preço determinado através dos parâmetros configurados nas funções
de envio de ordem.
Outro fato importante é o de que para ordens stop de abertura ou aumento de posição, o compilador
aguarda pela duração do período em que está foi enviada, onde, não havendo o rompimento (ou execução)
da ordem, esta é automaticamente cancelada pelo compilador.
Finalmente, a configuração de saída deve ser através de uma combinação de ordens Stop (para o stop) e
Limite (para o alvo), caracterizando uma ordem OCO (One-Cancels-the-Other), ou em português, “Uma
Cancela a Outra”, que significa que havendo a execução de uma à outra é automaticamente cancelada.
// Combinação de Ordens de Saída formando uma ordem OCO para automação
SellToCoverLimit(Alvo);
SellToCoverStop(Stop,StopOffset);
Isso pode ser feito tanto através de envio de ordens ToCover através da lógica do algoritmo, porém pode
ser também configurada através do Editor de Estratégias de Negociação, ferramenta nativa da plataforma.
Figura 47. Editor de Estratégias de Negociação
125 | Versão 3.1 - Autor: Herbert Schiller
Licensed to Jose Carlos -
[email protected] - 059.616.134-45
SchillerApp – Curso Programação Profitchart
Neste contexto é importante entender que o Profitchart irá dar prioridade para ordens OCO configuradas
através do Editor de Estratégias de Negociação, por tanto, havendo ordens configuradas também através do
uso de funções no algoritmo, o compilador irá ignorar o código e apresentar o seguinte aviso no Log de
Eventos da ferramenta de automação:
Aviso: Ordens de cobertura definidas pelo código não foram criadas pois já existe uma estratégia oco na
configuração.
Outros conceitos e recomendações importantes que foram vistos durante as aulas do módulo.
Figura 48. Conceitos Importantes de Automação.
126 | Versão 3.1 - Autor: Herbert Schiller