Você está na página 1de 171

CURSO PROFITCHART

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
TABLE OF CONTENTS
C1 - Análise Técnica ................................................................................................................................................................. 10

Introdução 10

1.1 Análise técnica vs Análise Fundamentalista.......................................................................................................................... 10

1.2 O que é um gráfico? ........................................................................................................................................................................ 10

1.3 Características Importantes........................................................................................................................................................ 11

Por que Análise Técnica? ....................................................................................................................................................... 15

2.1 Três Suposições............................................................................................................................................................................... 15

Uso de Tendências ................................................................................................................................................................... 16

3.1 Definição............................................................................................................................................................................................ 16

3.2 Tipos de Tendências ...................................................................................................................................................................... 17

3.3 Comprimentos ................................................................................................................................................................................. 18

3.4 LTA / LTB .......................................................................................................................................................................................... 18

3.5 Canais ................................................................................................................................................................................................. 20

Suporte e Resistência .............................................................................................................................................................. 21

4.1 Definição............................................................................................................................................................................................ 21

4.2 Por que são importantes? ............................................................................................................................................................ 21

4.3 Números redondos ........................................................................................................................................................................ 22

4.4 Reversão de Papel .......................................................................................................................................................................... 22

4.5 Importância de Suportes e Resistências ................................................................................................................................. 23

Volume 24

5.1 O que é Volume?.............................................................................................................................................................................. 24

5.2 Importância do Volume ................................................................................................................................................................ 24

5.3 Interpretando o Volume ............................................................................................................................................................... 25

Padrões Gráficos ...................................................................................................................................................................... 25

6.1 O que são Padrões Gráficos? ....................................................................................................................................................... 25

6.2 A História se repete ....................................................................................................................................................................... 25

6.3 Atenção .............................................................................................................................................................................................. 25

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
6.4 Reversão e Continuação ............................................................................................................................................................... 26

Ombro Cabeça Ombro (OCO) - Head and Shoulders ....................................................................................................... 27

Xícara 28

Topos e Fundos Duplos........................................................................................................................................................... 29

Triângulos 30

Bandeiras, Flâmulas, Cunha .................................................................................................................................................. 31

11.1 Bandeiras e Flâmulas.................................................................................................................................................................. 31

11.2 Cunha ............................................................................................................................................................................................... 31

Gaps 32

C2 - Indicadores ........................................................................................................................................................................ 33

Conceitos 33

1.1 Introdução......................................................................................................................................................................................... 33

1.2 Tipos de Indicadores ..................................................................................................................................................................... 34

1.3 Tipos de Construção ...................................................................................................................................................................... 35

1.4 Tipos de Apresentação.................................................................................................................................................................. 38

1.5 Sinais................................................................................................................................................................................................... 40

1.6 Tipos de Indicadores ..................................................................................................................................................................... 41

C3 - Básico Programação........................................................................................................................................................ 44

Ferramenta 44

1.1 Nelogica ProfitChart ...................................................................................................................................................................... 44

1.2 Programação no ProfitChart ....................................................................................................................................................... 44

1.3 Ambiente de Trabalho .................................................................................................................................................................. 45

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Lógica de Programação .......................................................................................................................................................... 45

2.1 INTRODUÇÃO................................................................................................................................................................................... 45

2.2 Palavras reservadas ....................................................................................................................................................................... 45

2.3 Execução do Código ....................................................................................................................................................................... 46

2.4 Depuração ......................................................................................................................................................................................... 46

2.5 Variáveis ............................................................................................................................................................................................ 46

2.6 Parâmetros ....................................................................................................................................................................................... 48

2.7 Séries de Dados ............................................................................................................................................................................... 50

2.8 Operadores ....................................................................................................................................................................................... 50

2.9 Controles de Fluxo.......................................................................................................................................................................... 53

2.10 Operadores Lógicos..................................................................................................................................................................... 59

2.11 Funções............................................................................................................................................................................................ 60

C4 - Funções - Gráficas ............................................................................................................................................................ 64

Funções Gráficas Básicas ....................................................................................................................................................... 64

1.1 Lista de Funções.............................................................................................................................................................................. 64

1.2 Propriedades Gráficas................................................................................................................................................................... 67

1.3 Material de Suporte ....................................................................................................................................................................... 68

Funções Gráficas de Preço ..................................................................................................................................................... 69

2.1 Lista de Funções.............................................................................................................................................................................. 69

Funções Gráficas de Indexação ............................................................................................................................................ 70

3.1 Lista de Funções.............................................................................................................................................................................. 70

Code F. Gráficas Index ............................................................................................................................................................. 71

Code F. Gráficas Preço............................................................................................................................................................. 73

C5 - Funções - Matemáticas ................................................................................................................................................... 75

Funções Matemáticas.............................................................................................................................................................. 75

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.1 Lista de Funções.............................................................................................................................................................................. 75

1.2 Funções Matemáticas - Geométricas ........................................................................................................................................ 77

Code F. Matemática .................................................................................................................................................................. 78

C6 - Funções - Calendário ....................................................................................................................................................... 84

Funções Calendário ................................................................................................................................................................. 84

1.1 Format EasyLanguage ................................................................................................................................................................... 84

1.2 Lista de Funções.............................................................................................................................................................................. 84

1.3 Funções Calendário - Séries de Dados - Fechamento ......................................................................................................... 87

1.4 Funções Calendário - Séries de Dados - Abertura................................................................................................................ 87

1.5 Funções Calendário - Séries de Dados - Máxima .................................................................................................................. 88

1.6 Funções Calendário - Séries de Dados - Mínima .................................................................................................................. 88

1.7 Funções Calendário - Séries de Dados - Volume .................................................................................................................. 88

1.8 Funções Calendário - Outros....................................................................................................................................................... 89

Code F. Calendário ................................................................................................................................................................... 90

C7 - Funções - Candlestick...................................................................................................................................................... 95

Funções de Candle ................................................................................................................................................................... 95

1.1 Lista de Funções.............................................................................................................................................................................. 95

1.2 C_Doji .................................................................................................................................................................................................. 95

1.3 C_ShootingStar................................................................................................................................................................................. 96

1.4 C_3WhSolds_3BlkCrows ............................................................................................................................................................... 97

1.5 C_BullEng_BearEng ........................................................................................................................................................................ 98

1.6 C_Hammer_HangingMan .............................................................................................................................................................. 99

1.7 C_MornDoji_EveDoji ................................................................................................................................................................... 100

1.8 C_MornStar_EveStar ................................................................................................................................................................... 101

1.9 C_PierceLine_DkCloud ............................................................................................................................................................... 102

1.10 C_InsideBar ................................................................................................................................................................................. 103

Code F. Candlestick ................................................................................................................................................................ 104

C8 - Setup - Barra Rejeitada................................................................................................................................................. 111

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
O Setup - Barra Rejeitada ..................................................................................................................................................... 111

1.1 Barra de Ignição ........................................................................................................................................................................... 111

1.2 Barra Rejeitada ............................................................................................................................................................................. 111

1.3 Cenário do Mercado .................................................................................................................................................................... 111

1.4 Entrada............................................................................................................................................................................................ 111

1.5 Stop................................................................................................................................................................................................... 111

1.6 Alvo................................................................................................................................................................................................... 111

1.7 'Respiro' .......................................................................................................................................................................................... 111

2.1 Lista de Condições ....................................................................................................................................................................... 111

2.2 Na Ponta da Compra ................................................................................................................................................................... 112

2.3 Na Ponta da Venda ...................................................................................................................................................................... 112

Condições Barra Rejeitada .................................................................................................................................................. 112

3.1 Lista de Condições....................................................................................................................................................................... 112

3.2 Na Ponta da Compra ................................................................................................................................................................... 112

3.3 Na Ponta da Venda ...................................................................................................................................................................... 112

Code B.R. Regra Coloração ................................................................................................................................................... 113

Code B.R. Plotagem ................................................................................................................................................................ 115

C9 - Funções - Indicadores ................................................................................................................................................... 118

Médias Móveis 118

MACD 120

Acumulação Distribuição ..................................................................................................................................................... 121

Índice Direcional Médio ....................................................................................................................................................... 122

Estocástico 123

CCI 124

OBV 125

RSI 126

Bandas de Bollinger .............................................................................................................................................................. 127

Médias Móveis 130

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.1 Objetivo........................................................................................................................................................................................... 130

1.2 Uso .................................................................................................................................................................................................... 130

1.3 Tipo .................................................................................................................................................................................................. 130

1.4 Básico............................................................................................................................................................................................... 130

1.5 Média Móvel Simples (Aritmética) ........................................................................................................................................ 131

1.6 Média Móvel Ponderada Linear .............................................................................................................................................. 132

1.7 Média Móvel Exponencial ......................................................................................................................................................... 132

1.6 Interpretação ................................................................................................................................................................................ 133

1.7 Sinais................................................................................................................................................................................................ 133

Moving Average Convergence Divergence ...................................................................................................................... 134

1.1 Objetivo........................................................................................................................................................................................... 134

1.2 Uso .................................................................................................................................................................................................... 134

1.3 Tipo .................................................................................................................................................................................................. 134

1.4 Básico............................................................................................................................................................................................... 134

1.5 Períodos .......................................................................................................................................................................................... 135

1.6 Interpretação ................................................................................................................................................................................ 135

1.7 Cruzamentos ................................................................................................................................................................................. 135

1.8 Divergências .................................................................................................................................................................................. 136

1.9 Falsos Sinais .................................................................................................................................................................................. 137

1.10 Limitações ................................................................................................................................................................................... 138

Acumulação / Distribuição (Accumulation / Distribution) ....................................................................................... 139

1.1 Objetivo........................................................................................................................................................................................... 139

1.2 Uso .................................................................................................................................................................................................... 139

1.3 Tipo .................................................................................................................................................................................................. 139

1.4 O AD vs WAD ................................................................................................................................................................................. 139

1.5 Básico............................................................................................................................................................................................... 139

1.6 Interpretação ................................................................................................................................................................................ 140

Índice Direcional Médio (Average Directional Index) .................................................................................................141

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.1 Objetivo........................................................................................................................................................................................... 141

1.2 Uso .................................................................................................................................................................................................... 141

1.3 Tipo .................................................................................................................................................................................................. 141

1.4 O ADX utiliza.................................................................................................................................................................................. 141

1.5 Básico............................................................................................................................................................................................... 141

1.6 Interpretação ................................................................................................................................................................................ 141

1.7 Sinais................................................................................................................................................................................................ 142

Oscilador Estocástico ............................................................................................................................................................ 142

1.1 Objetivo........................................................................................................................................................................................... 142

1.2 Tipo .................................................................................................................................................................................................. 142

1.3 Básico............................................................................................................................................................................................... 142

1.4 Linhas Estocástico ....................................................................................................................................................................... 143

1.5 Interpretação ................................................................................................................................................................................ 143

1.6 Sinais................................................................................................................................................................................................ 143

1.7 Limitações ...................................................................................................................................................................................... 144

1.8 Diferença com IFR (Índice de Força Relativa) ................................................................................................................... 144

Commodity Channel Index .................................................................................................................................................. 145

1.1 Objetivo........................................................................................................................................................................................... 145

1.2 Tipo .................................................................................................................................................................................................. 145

1.3 Básico............................................................................................................................................................................................... 145

1.4 Dimensionamento ....................................................................................................................................................................... 145

1.5 Interpretação ................................................................................................................................................................................ 146

1.6 Sinais................................................................................................................................................................................................ 146

1.7 Limitações ...................................................................................................................................................................................... 147

On-Balance Volume ............................................................................................................................................................... 148

1.1 Objetivo........................................................................................................................................................................................... 148

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.2 Tipo .................................................................................................................................................................................................. 148

1.3 Básico............................................................................................................................................................................................... 148

1.4 Interpretação ................................................................................................................................................................................ 149

1.5 Limitações ...................................................................................................................................................................................... 149

Relative Strength Index ........................................................................................................................................................ 150

1.1 Objetivo........................................................................................................................................................................................... 150

1.2 Tipo .................................................................................................................................................................................................. 150

1.3 Básico............................................................................................................................................................................................... 150

C10 - Funções - Back Test ..................................................................................................................................................... 152

Back Test Ferramenta........................................................................................................................................................... 156

Funções Alarme ...................................................................................................................................................................... 156

2.1 Gerenciador de Alarmes ............................................................................................................................................................ 156

2.2 Lista de Funções........................................................................................................................................................................... 156

Funções Back-testing ............................................................................................................................................................ 157

3.1 Tipos de Ordens ........................................................................................................................................................................... 157

3.2 Lista de Funções........................................................................................................................................................................... 158

Code F. BackTest Compra ..................................................................................................................................................... 162

Code F. BackTest Venda ........................................................................................................................................................ 164

Code F. BackTest Outras ....................................................................................................................................................... 166

C11 - Funções - Livro ............................................................................................................................................................. 167

Funções BackTest .................................................................................................................................................................. 167

1.1 Lista de Funções........................................................................................................................................................................... 167

Code F. Livro 167

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CURSO PROFITCHART
Introdução

1. O que esse curso, NÃO é?


o Não é um curso sobre sistemas operacionais ou estratégias de operação para o mercado de
ações.
o Não é um curso sobre calls para o mercado de ações.
o Não é um curso com foco em análise técnica, apesar do curso possuir 2 capítulos dedicados a
esse tópico.

2. O que esse curso é?


o Um curso de programação avançado específico para a plataforma Profit (Nelogica).
• Por cobrir o tópico partindo dos pontos mais básicos, exemplo, como ler um gráfico,
também serve como uma guia básico para iniciantes no mercado financeiro.
3. Objetivo
o Permitir que o aluno ao final do curso possa criar suas próprias regras de coloração,
indicadores, estratégias de execução e realizar e analisar backtest.
4. Público-alvo
o Iniciantes no mercado de ações - sem nenhuma experiência.
o Investidores com experiência intermediária no mercado, porém querem desenvolver
conhecimento sobre programação da plataforma Profit (Nelogica).
5. Didática
o Será necessário desenvolver o conhecimento gradativamente tanto sobre mercado, da lógica
de programação em si quanto da própria ferramenta (Profit).

6. Caminho das Pedras:


7. Traduzir um Setup em regra de coloração com adendo de plotagem.
o Por quê?
• É simples. É visual.
o Entender, Desenvolver e Implementar Indicadores.
• O entendimento sobre indicadores é muito importante para sua aplicação.
o Traduzir o Setup em uma estratégia de execução e executar backtest.
o Ao final do curso você poderá desenvolver regras de coloração, indicadores e estratégias de
execução com os seus próprios parâmetros.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C1 - ANÁLISE TÉCNICA
INTRODUÇÃO

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
seus futuros movimentos 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. Observando 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.

1.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
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:

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.3 CARACTERÍSTICAS IMPORTANTES:
• Período Gráfico
• Refere-se ao limite de datas no nosso eixo horizontal (x). Podendo variar de décadas para
segundos. Os mais usados:
• 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

• Escalas do gráfico

• Aritmética;
• Logarítmica.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Gráficos construídos na escala aritmética (linear):
o 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.
o 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:


o A distância será igual em termos de variação percentual e não em valores absolutos.
o 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%.
o 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.

• A visualização da movimentação de preço na escala é muito mais 'justa' do ponto de vista


financeiro.
o A rentabilidade em % na escala aritmética pode esconder a real rentabilidade bruta,
dependendo da referência.
o O que não acontece na escala logarítmica, onde a rentabilidade em % está 'travada' ao valor
de referência.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
i. Série de Dados
• Cada ponto representa, para uma data específica, o preço de:
o Fechamento, (Preço no momento de fechamento de um período, seja 1H ou 1D)
o Abertura, (Preço no momento de abertura de um período, seja 1H ou 1D)
o Máxima, (Preço mais alto atingido num determinado período, seja 1H ou 1D)
o 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 padrão.

i. Tipos de Gráfico
• Os mais utilizados:
• Gráfico de linha:
o 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.
o A linha é formada pela conexão dos preços de fechamento no período.
o Os gráficos de linhas não fornecem informações visuais do intervalo de negociação para os
pontos individuais, como preços de alta, baixa e abertura.
o No entanto, 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Gráfico de barras:
o O gráfico de barras adiciona várias outras informações importantes a cada ponto de dados.
o O gráfico é composto de uma série de linhas verticais que representam cada ponto de dados.
o Essa linha vertical representa a alta e a baixa do período de negociação, juntamente com o
preço de fechamento.
o O fechamento e a abertura são representados na linha vertical por um traço horizontal.
• Gráfico de velas (candlesticks)
o O gráfico de velas é semelhante a um gráfico de barras, mas difere na maneira como é
construído visualmente.
o 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.
o A diferença ocorre na formação de uma barra larga na linha vertical, que ilustra a diferença
entre abertura e fechamento daquele período.
o Um padrão de cores é definido para estabelecer a ordem dos preços de abertura e fechamento.
• Isso porque, um preço pode abrir um período com um determinado valor, e ao final
desse período, fechar tanto abaixo como acima desse valor de abertura.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
POR QUE ANÁLISE TÉCNICA?

2.1 TRÊS SUPOSIÇÕES:


i. O mercado desconta tudo.
o 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.
o 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.
ii. O preço se move em tendências.
o Na análise técnica, acredita-se que os movimentos de preços sigam as tendências.
o Isso significa que, depois que uma tendência é estabelecida, é mais provável que o
movimento futuro dos preços esteja na mesma direção da tendência do que contra ela.
o A maioria das estratégias técnicas de negociação é baseada nessa premissa.
iii. A tendências históricas tendem a se repetir.
o Outra ideia importante na análise técnica é que a história tende a se repetir, principalmente
em termos de movimento de preços.
o A natureza repetitiva dos movimentos de preços é atribuída à psicologia do mercado;
o Em outras palavras, os participantes do mercado tendem a fornecer uma reação consistente
a estímulos similares ao longo do tempo.
o A análise técnica utiliza padrões gráficos para analisar os movimentos do mercado e
entender as tendências.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
USO DE TENDÊNCIAS

3.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:
o Uma tendência nada mais é do que a direção geral em que um título ou mercado está indo.

• Uma definição mais formal:


o Definir uma tendência vai muito além do óbvio.
o 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 altos e baixos.
o Na análise técnica, é o movimento dos preços de alta e baixa que constitui uma tendência.

Tendência de Classificada como uma série de (preços) máximas e mínimas mais altas
ALTA que as anteriores.

Tendência de Classificada como uma série de (preços) mínimas e máximas mais baixas
BAIXA que as anteriores.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

3.2 TIPOS DE TENDÊNCIAS


• Tendências de alta
• Tendências de baixa
• Tendências laterais / horizontais

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
3.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.

3.4 LTA / LTB


• Uma linha de tendência de alta (LTA) é desenhada nos pontos baixos (mínimas dos preços) de
uma tendência ascendente.
o Essa linha representa o suporte que o preço tem toda vez que passa de uma máxima para
uma mínima.
o Observe como o preço é sustentado por esse suporte.
o 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.

SchillerApp.com/ProfitChart
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.
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
3.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.
o A linha de tendência superior conecta uma série de máximas.
o Enquanto a linha de tendência inferior conecta uma série de mínimas.
• Um canal pode se inclinar:
o Para cima;
o Para baixo;
o Para os lados;
o 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 ultrapasse um dos níveis:
o Nesse caso, se esperar 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
SUPORTE E RESISTÊNCIA

4.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 título ao tentar 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.

4.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:
o Comprar as ações (no caso de um suporte)
o Vendê-las (no caso de resistência).

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Quando essas linhas de tendência são quebradas, acredita-se que a oferta e a demanda e a
psicologia por trás dos movimentos das ações tenham mudado;
o Nesse caso, provavelmente, novos níveis de suporte e resistência serão estabelecidos.

4.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;
o Geralmente representam os principais pontos de virada psicológica nos quais muitos
investidores tomam decisões de compra ou venda.
o 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.
o 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 É 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.

4.4 REVERSÃO DE PAPEL


• Uma vez que um nível de resistência ou suporte é quebrado, seu papel é revertido.
o Se o preço cair abaixo de um nível de suporte, esse nível se tornará resistência.
o 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.
• Para que ocorra uma reversão verdadeira, no entanto, é importante que o preço faça um
movimento forte através do suporte ou da resistência.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

4.5 IMPORTÂNCIA DE SUPORTES E RESISTÊNCIAS


• Pode ser usada para tomar decisões de negociação e identificar quando uma tendência está
revertendo.
o Por exemplo, se um investidor identifica um nível importante de resistência que foi testado
várias vezes, mas nunca quebrado, 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:
o Testam e confirmam tendências e precisam ser monitorados.
o Enquanto o preço da ação permanecer entre esses níveis de suporte e resistência, é provável
que a tendência continue.
o 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.
o Em muitos casos, o preço não chega atingir o número inteiro, mas flerta com ele.
o Prefira então, usar um valor próximo que aumente a probabilidade de um negócio bem
sucedido.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
VOLUME

5.1 O QUE É VOLUME?


• Volume é simplesmente o número de ações ou contratos negociados durante um determinado
período, geralmente um dia.
• Quanto maior o volume, mais ativa essa ação é.
• As barras de volume ilustram quantas ações foram negociadas por período e mostram tendências
da mesma maneira que os preços.

5.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.
o Por exemplo, uma ação salta 5% em um dia de negociação após uma longa tendência de
baixa.
o Isso é sinal de reversão de tendência? É 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
5.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.
o 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.

PADRÕES GRÁFICOS

6.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:
o Identificar tendências atuais;
o Identificar reversões de tendências;
o Acionar sinais de compra e venda.

6.2 A HISTÓRIA SE REPETE


• Vimos anteriormente as três suposições da análise técnica, a terceira das quais na análise técnica,
a história se repete.
• A teoria por trás dos padrões do gráfico é 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.

6.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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

6.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 rápidos, por exemplo, 30 minutos ou
menos.
o Esses períodos gráficos são normalmente relacionados a inserção de 'ruídos' nos padrões
gráficos:
o 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 anomalias no gráfico, desfigurando esses padrões
gráficos.
• Outro fator que pode desfigurar um gráfico é a pouca volatilidade.
o Ações que tem pouca oferta e demanda se traduzem em gráficos sem movimentação e com
pouco variação.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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:
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.
o 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.
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
TOPOS E FUNDOS DUPLOS

• Esse padrão de gráfico é outro padrão conhecido que sinaliza uma inversão de tendência
o É considerado um dos mais confiáveis e é comumente usado.
• 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.
o 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.
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
BANDEIRAS, FLÂMULAS, CUNHA

11.1 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,
o 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,
o 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.

11.2 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:
o Uma cunha em queda é de alta
o Uma cunha em alta é de baixa.
• Exemplo:
o Uma cunha em queda na qual duas linhas de tendência estão convergindo em uma direção
descendente.
o Se o preço subisse acima da linha de tendência superior, formaria um padrão de
continuação,
o Enquanto um movimento abaixo da linha de tendência inferior sinalizaria um padrão de
reversão.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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,
o 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,
o Haverá uma grande lacuna no gráfico entre esses dois períodos.
o Os movimentos de preços de hiatos podem ser encontrados nos gráficos de barras e nos
candelabros, mas não nos gráficos de ponto e figura ou de linhas básicas.
o As lacunas geralmente mostram que algo de significativo aconteceu na segurança, como
um anúncio de ganhos acima do esperado.

• Existem três tipos principais de lacunas,


o Separatistas,
• Um hiato de ruptura se forma no início de uma tendência.
o Separatistas (medição) e
• Um hiato de fuga se forma no meio de uma tendência.
o Exaustão.
• Um hiato de exaustão se forma próximo ao final de uma tendência.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C2 - INDICADORES
CONCEITOS

1.1 INTRODUÇÃO
• Discussão conceitual sobre indicadores
• A plataforma ProfitChart é infelizmente limitada na programação de indicadores.
o 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 é muito
mais matemático e conceitual do que operacional.
o Isso significa aprender formas de interpretar a informação passada por um indicador e então
traduzir essas informações em forma de sinais operacionais.

Conceito básico
• Indicadores, no nosso contexto de mercado de ações, são:
o Cálculos baseados no preço e no volume de um ativo.
• Usados para medir itens como:
o Fluxo de dinheiro;
o Tendências de movimentação de preço;
o A volatilidade dessa movimentação
o Momento da variação de um ativo em relação a um período histórico.

• 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
o Por exemplo, para determinarmos uma linha de tendência não precisamos de nenhum
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.

Objetivos Principais
o Confirmar o movimento dos preços e a qualidade dos padrões dos gráficos e;
o Formar sinais de compra e venda.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

1.2 TIPOS DE INDICADORES


• Existem várias formas de categorizar tipos de indicadores, então vamos fazer isso por relevância
• Vamos começar com 2 tipos de indicadores
o Antecedentes
o Atrasados

1. Antecedentes
o Precedem o movimento dos preços - para dar qualidade de previsão.
• 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).
• Os mais comuns são: os Estocásticos / Índice de Força Relativa.

2. Atrasados
o Seguem o movimento dos preços - servem como instrumento de confirmação.
• 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.
• O mais comum são: as Médias Móveis.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Essa informação é importante pra nos ajudar a interpretar os sinais que um indicador está
tentando nos dar.

1.3 TIPOS DE CONSTRUÇÃO


• Vamos discutir 2 tipos de construção de indicadores,

• Indicadores que são delimitados por uma variação limite - ou não.


o Os que são, são chamados de Osciladores;
o Os que não, são normalmente chamados de simplesmente de Indicadores.

• Nota: Osciladores também são indicadores, é apenas uma classificação pra diferenciar a construção
desses indicadores.

• O que significa dizer 'são delimitados por uma variação limite'?


o 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 a variação é entre 0 e 100.


o Os valores estão sempre dentro desse limite fixado pelo próprio cálculo matemático do
oscilador.
o Por isso, o classificamos como um oscilador.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• No caso do Estocástico, essa variação demonstra áreas em que o preço é considerado:

SOBRE COMPRADO Próximo a 100

SOBRE VENDIDO Próximo a 0

Em contraste, uma Média Móvel,


o Os valores dessa média móvel não são limitados por valores fixos.
o Eles acompanham o valor do preço (ou pontos no caso de um gráfico Índice), tendendo ao
infinito.

• Adicional sobre osciladores:


o Oscilador de preço absoluto (APO)
• Lida com os preços reais das médias móveis em vez de alterações percentuais.
o Oscilador de preço percentual (PPO)
• Calcula a diferença entre duas médias móveis de preço divididas pelo valor médio móvel
mais longo.
o Oscilador de Preço Prejudicado (DPO)
• Ignora as tendências de longo prazo e enfatiza os padrões de curto prazo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Enquanto um APO mostrará níveis mais altos para títulos com preços mais altos e níveis menores
para títulos com preços mais baixos,
• Um PPO calcula as alterações em relação ao preço.
• Um PPO é preferido quando:
o Comparando valores de osciladores entre diferentes títulos, especialmente aqueles com
preços substancialmente diferentes;
o Comparar valores do oscilador para o mesmo ativo em momentos significativamente
diferentes, especialmente um ativo cujo valor tenha mudado bastante.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.4 TIPOS DE APRESENTAÇÃO
• Vamos discutir 2 tipos de apresentação de indicadores,
LINHA Traçam-se retas 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,
o Demonstrar de forma visual valores de um cálculo e a relação entre esses valores.
o Cabe a pessoa gerando e analisando o gráfico/indicador, o papel de interpretar o que aquele
indicador visual está tentando dizer.

• O Indicador de Linha
o É construído ligando-se os pontos (coordenadas no plano X e Y), onde:
LINHA Eixo X Tempo
HORIZONTAL

LINHA VERTICAL Eixo Y Preço/Pontos

• A cada cálculo que executado, um ponto é marcado no gráfico.


o Esse ponto (x,y) 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.

• O Indicador Histograma
o É diferente em 2 principais aspectos
• Primeiro, na própria representação visual, ao invés de ligarmos pontos, os valores são
representados por barras verticais.
• Segundo, no formato de dados utilizados.
▪ Agrupando quantidades e representando esse valor em forma de barras que são
determinadas por um limite.
▪ O valor calculado pelo indicador é marco no eixo Y.
▪ E no eixo X, (a linha do tempo) o histograma delimita os valores calculados em
grupos de tempo ao invés de um valor específico.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Por exemplo
o No indicador de linha - Um ponto no eixo X - é uma data específica: 12 de março de 2020.
o No indicador histograma, Uma barra no eixo X representa um limite - : de 12 de março a 13
de março de 2020.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.5 SINAIS
2 Formas de utilizar indicadores para sinais de compra e venda
o Cruzamentos
• Por exemplo: Quando o preço cruza uma média móvel ou 2 médias móveis cruzam
entre si.
o Divergências
• Por exemplo: Quando a direção do preço e a direção do indicador divergem.
o Esses sinais podem indicar uma possível reversão, ou no mínimo um enfraquecimento de
uma tendência.
Exemplos:

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

1.6 TIPOS DE INDICADORES


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
o Média Móvel - Indicador do tipo [atrasado]
▪ É usado para identificar a tendência atual e tendências de reversão, e demarcar
níveis de suporte e resistência.
o MACD - Indicador do tipo [atrasado]
▪ É usado para revelar mudanças em força, direção, momento e duração de uma
tendência.
o Parabolic Stop and Reverse (Parabolic SAR) - Indicador do tipo [antecedente]
▪ Usado para encontrar reversões na direção do preço de um ativo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Indicadores de Momento
• Ajudam a identificar a velocidade do movimento do preço.
• Fazem isso comparando a variação de preços em um determinado período, mas podem também
ser utilizados para analisar volume.
• Exemplos
o Estocástico - Oscilador do tipo [antecedente]
▪ É usado para prever pontos de reversão de preço ao comparar preços de
fechamento com a variação de preço.
o Commodity Channel Index (CCI) - Oscilador do tipo [antecedente]
▪ É usado ajudar a identificar reversão de preços, extremidades de preços e força de
tendência.
o Índice de Força Relativa (RSI) - Indicador do tipo [antecedente]
▪ Mede a força da tendência atual, a velocidade de mudança em tendência e a
magnitude dessa mudança.

Indicadores de Volatilidade
• Esses medem a taxa de variação do movimento do preço, independente da direção.
• Geralmente baseados na mudança de máximas e mínimas históricas dos preços.
• Exemplos
o Bandas de Bollinger - Indicador do tipo [atrasado]
▪ É usado para medir máximas e mínimas do preço, relativo a preços anteriores.
o Average True Range - Indicador do tipo [atrasado]
▪ Este indicador não dá uma indicação de tendência de preço, mas sim o grau de
volatilidade do preço.

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]
▪ 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]

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
▪ Monitora o fluxo de dinheiro (in/out) do mercado
▪ Comparando fluxo de dinheiro com price action ajuda a identificar topos e fundos em
ciclos de curto e médio prazo.
• Volume Rate of Change - Indicador do tipo [atrasado]
▪ Da ênfase em aumentos de volume, que normalmente ocorrem nos momentos mais
significantes de topos, fundos e breakouts.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C3 - BÁSICO PROGRAMAÇÃO
FERRAMENTA

1.1 NELOGICA PROFITCHART


• Profit é uma ferramenta de análise e de negociação no mercado de ações brasileiro.
• Desenvolvido pela empresa Nelogica.
• Possível contratar diretamente com a Nelogica ou através de uma corretora.
• A versão utilizada neste curso é: ProfitPro

1.2 PROGRAMAÇÃO NO PROFITCHART


• Regras de coloração
a. Função: Colorir, de forma automática, componentes do gráfico ao atender condições estipuladas
pelo programador.
b. Uso: (Em ordem de importância)
1. Ferramenta de auxílio para indicar sinais visuais de operação (compra/venda).
2. Ferramenta de auxílio para estudos (análise técnica).
• Indicadores
a. Função: Plotar, de forma automática, componentes gráficos baseados em cálculos estipulados pelo
programador.
b. Uso: (Em ordem de importância)
1. Ferramenta de auxílio para estudos (análise técnica).
2. Ferramenta de auxílio para indicar sinais visuais (matemáticos) de operação (compra/venda).
• Estratégia de Execução*
a. 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.
b. Uso:
1. Back Test**
• Função: Simular resultados das operações (compra/venda) de um sistema operacional
definido pelo programador.
2. Screening:
• Função: Procurar por ativos/ações que atendam uma série de condições e parâmetros
definidos pelo programador.
* Não é Possível operar no mercado real com códigos de execução, apenas para fins de backtest. É
possível contratar robôs com a Nelogica.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
** O Back Test é limitado, ordens são executadas no fechamento da barra/candle/vela, dependendo da
periodicidade do gráfico estudado, isso pode criar falsos resultados.

1.3 AMBIENTE DE TRABALHO


• Desktops
• Layouts
• Barra de Estudos
• Estratégia de Execução
LÓGICA DE PROGRAMAÇÃO

2.1 INTRODUÇÃO
• Linguagem: NTSL (Nelogica Trading System Language)
• Baseado em EasyLanguage criado pela TradeStation.
• Por que precisamos entender a Lógica de Programação?
o Isso nos ajudará a programar códigos eficazes.
• Eficaz: Fazer certo a coisa certa.
• Eficiente: Fazer certo a coisa errada.
• Exemplo, Regra de Coloração invertida.
o Nos ajudará também a identificar e corrigir problemas com o nosso código.

2.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
o Exemplo, Início, Fim.
o Ficam marcadas em azul com efeito negrito.
o No ProfitChart pode ser inglês / Português. (Algumas, não todas)
• Identificadores reservados
o Exemplo, Abertura, Fechamento, Máxima, Mínima.
• Funções
o Uma função é um bloco de código que você precisa executar inúmeras veze no decorrer do
seu código.
• Por exemplo um cálculo específico.
o E o termo usado para chamar essa função é reservado. Seja uma função nativa ou criada pelo
usuário.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.3 EXECUÇÃO DO CÓDIGO
• Qual a rotina de execução do código em relação ao contexto de aplicação - No caso ProfitChart.
o É executado a cada atualização de valor (tick).
o Exemplo: Regra de Coloração.

2.4 DEPURAÇÃO
• Inglês: Debug
• Definição: Processo de encontrar a resolver defeitos ou problemas com um programa de
computador, que o previne de operar de forma correta. É importante dominar formas de depurar
nosso código.
• 3 Formas
o Verificar Sintaxe
• Definição: Conjunto de regras que determinam as diferentes possibilidades de
associação das palavras de uma língua.
• Funciona da mesma forma que para qualquer língua, pois, até mesmo linguagens de
programação seguem uma determinada 'gramática'.
• É o que determina se uma frase ou sentença faz sentido.
o Step Over (F3)
• Executa um código linha a linha, desconsiderando funções, por isso 'step over' ou 'pular'.
o Trace Into (F7)
• Também executa um código linha a linha, porém também testa funções linha a linha.
Trace into, traçar dentro.

2.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.
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?
o Para economizar processamento - ao reutilizar um valor ou resultado de um cálculo.
o Facilita a vida do programador ao associar nomes a valores. Exemplo, Área de um triângulo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Tipos
PT EN Definição Exemplo

Real Float Representa números ponto flutuantes (real) 3.14

Inteiro Integer Representa números Inteiros 1, 2, 3

Booleano Boolean Representa uma relação binária (1 e 0) Verdadeiro (True) /


Falso (False)

• Como Declarar
o Entre palavra reservada var e o início do nosso código com a palavra reservada Início
(Begin).
Exemplo
// Variáveis
// Real (Float) ex: 3.14
// Inteiro (Integer) ex: 1, 2 ,3
// Booleano (Boolean) ex: verdadeiro (true) / falso (false)

var
// identificador : Tipo;
vR1, vR3 : Real;
vI1 : Inteiro;
vB1 : Booleano;

// Inglês
vR2 : Float;
vI2 : Integer;
vB2 : Boolean;

Inicio
// Inicio do código a ser executado

vR1 := 80000;
vR2 := 2000;
// Nota - Para números reais
// Números inteiros também fazem parte do grupo dos números Reais.
// Não utilizar símbolo para agrupador de milhares
// Símbolo decimal é representado por . (ponto)

vR3 := vR1 + vR2; // vR3 = 80000 + 2000 = 82000

Plot(vR3);

// Fim do código
Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.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?
o 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 pelo programador.
• Tipos
o Utiliza os mesmos tipos definidos nas variáveis. (Real, Inteiro, Booleano)
• Como Declarar
o Entre a palavra reservada Parametro ou Input e a palavra reservada var.
Exemplo
Parametro // (Input)
// Identificador(Valor Inicial);
Sinal (2000); // Sinal é comumente um termo para um número de referência

// Variáveis
// Real (Float) ex: 3.14
// Inteiro (Integer) ex: 1, 2 ,3
// Booleano (Boolean) ex: verdadeiro (true) / falso (false)

var
// identificador : Tipo;
vR1, vR3 : Real;
vI1 : Inteiro;
vB1 : Booleano;

// Inglês
vR2 : Float;
vI2 : Integer;
vB2 : Boolean;

Inicio
// Inicio do código a ser executado

vR1 := 80000;
vR2 := 2000;
// Nota - Para números reais
// Números inteiros também fazem parte do grupo dos números Reais.
// Não utilizar símbolo para agrupador de milhares
// Símbolo decimal é representado por . (ponto)

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
vR3 := vR1 + vR2 + Sinal; // vR3 = 80000 + 2000 + Sinal = ?

Plot(vR3);

// Fim do código
Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.7 SÉRIES DE DADOS
• Definição: são os valores decorrentes de cada candle do gráfico.
• Abertura (Open)
o Retorna o valor de abertura da barra atual.
• Fechamento (Close)
o Retorna o valor de fechamento da barra atual.
• Minima (Low)
o Retorna o valor mínimo da barra atual.
• Maxima (High)
o Retorna o valor máximo da barra atual.
• Quantidade (Quantity)
o Retorna o valor da quantidade da barra atual.
• Importante
o Referência a valores do passado é feito através de contadores: [x] onde x é o número do
contador
• Exemplo: Abertura[1]; Fechamento[3]

2.8 OPERADORES

• Operadores Matemáticos

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

• Ordem de Operações
o 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.
• Divisão > Multiplicação > (Soma & Subtração)

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Expressão Resultado

10*10/5+2 22

1*2+2 102

50+100*10/2-1 549

Exemplo:

x = 10 * 10/5 + 2
x = 10 * 2 + 2
x = 20 + 2
x = 22

// Programaticamente

x = (10 * (10/5)) + 2 = 22

// Matematicamente

Alterando ordem das operações:

// Programaticamente

x = (10 * 10) / (5 + 2) = 14.2857

// Matematicamente

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Operadores de Comparação

Operador Descrição Exemplo (de condições verdadeiras)

> Maior que 5>4;

< Menor que 4<5;

>= Maior ou igual 5 >= 5 ; 6 >= 5

<= Menor ou igual 5 <=5 ; 4 <= 5

= Igual 4=4;5=5

<> Diferente 5 <> 4 ; 4 <> 5

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.9 CONTROLES DE FLUXO

SE, ENTÃO, SENÃO (TESTE CONDICIONAL)


o Definição: Se uma condição ou um grupo de condições for verdadeira, execute uma
sequência de Comandos (A), senão, execute uma outra sequência de Comandos (B).
o 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

Inicio
Se (Fechamento > Abertura) entao PaintBar(clVerde)
Senao Se (Fechamento < Abertura) entao PaintBar(clVermelho)
Senao PaintBar(clBranco);
Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
PARA, ATÉ (LOOP CONTROLADO)
o Definição: O comando PARA é utilizado para definir um loop controlado, ou seja, Comando
(A) é executado 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.

Parametro
Preco(Fechamento);
Periodo(9);

var
rResultado : Real;
iIndex : Inteiro;

Inicio

// Inicialização de variável
rResultado := 0;

// Período - 1 : Porque indexação conta-se apartir da posição 0


Para iIndex := 0 ate Periodo -1 faca
inicio
rResultado := rResultado + Preco[iIndex];
fim;

Plot(rResultado / Periodo);

// Alternativa
// Para iIndex := 0 ate Periodo -1 faca rResultado := rResultado + Preco[iIndex];
// rResultado := rResultado / Periodo;
// Plot(rResultado);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ENQUANTO, FAÇA (LOOP CONTROLADO)
o 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) a listagem (comandos) é executada. 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.

Parametro
Preco(Fechamento);
Periodo(2);

var
rResultado : Real;
iIndex : Inteiro;

Inicio

// Inicialização de variável
rResultado := 0;
iIndex := 0;

Enquanto (iIndex <= Periodo -1) faca


inicio
rResultado := rResultado + Preco[iIndex];
iIndex := iIndex +1;
fim;

Plot(rResultado / Periodo);

// Alternativa // Cuidado com último comando - está fora do loop 'Enquanto'.


// Enquanto (iIndex <= Periodo -1) faca rResultado := rResultado + Preco[iIndex]; iIndex := iIndex +1;
// rResultado := rResultado / Periodo;
// Plot(rResultado);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.10 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
o [1] = Verdadeiro
o [0] = Falso

Operador Lógico 'e'


o Saída 'verdadeira' (1) quando todas as entradas forem verdadeiras (1)
o 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

Operador Lógico 'ou'


o Saída 'verdadeira' (1) quando ao menos 1 das entradas for verdadeira (1)
o 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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

2.11 FUNÇÕES
• Definição: Uma função é um pedaço de código que executa alguma 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 neles.
o Esses dados são chamados parâmetros da função.
o A função pode retornar um certo valor, que é chamado valor de retorno.
o Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do
valor de retorno.

função Nome_da_Função( param 1: TIPO; param 2 : TIPO ) : Retorno;

Criar Função Dentro do Código


Exemplo

// Inicio - Parametros e Variáveis do Código


Parametro
Periodo(9);
var
rMM : Real;
// Fim - Parâmetros e Variáveis do Código

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Início - Função
// Discutir problema com o código
// As barras antes do período não são contadas
// Precisamos usar a função CurrentBar para corrigir
Funcao calcMM(Periodo : Inteiro) : Real;
var
nIndex : Inteiro;
Inicio
Result := 0;
Para nIndex := 0 ate Periodo -1 faca Result := Result + Fechamento[nIndex];
Result := (Result / Periodo);
Fim;
// Fim - Função

// Início - Código
Inicio
rMM := calcMM(Periodo);
Plot(rMM);
Se (Fechamento > rMM) entao PaintBar(clVerde) Senao PaintBar(clVermelho);
// Se (Fechamento > rMM) entao
// inicio
// PaintBar(clVerde);
// fim
// Senao
// inicio
// PaintBar(clVermelho);
// fim;

Fim;
// Fim - Código
Criar Função Externa
Exemplo
Parametro
index(0);
var
Result : Real;
Inicio
Result := Abs(Abertura[index] - Fechamento[index]);
Plot(Result);
Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE - BANDAS DE BOLLINGER
// Banda de Bollinger
// Banda Media = Soma do Fechamento de N Periodos / N Periodos
// Banda Superior = BM + (D * DesvPadrao)
// Banda Inferior = BM - (D * DesvPadrao)

// D = Desvio
// DesvPadrao = Fórmula Matemática = StdDevs(Serie, Periodo)

Parametro
Preco(Fechamento);
Periodo(20);
Desvio(2);

var
vContagem : Inteiro;
vPrecoMedio : Real;
vBandaMedia : Real;
vBandaSuperior : Real;
vBandaInferior : Real;
vDesvioPadrao : Real;

Inicio

vPrecoMedio := 0;
vBandaMedia := 0;
vBandaSuperior := 0;
vBandaInferior := 0;
vDesvioPadrao := 0;

// Banda Media
Para vContagem := 0 ate Periodo - 1 faca
inicio
vPrecoMedio := vPrecoMedio + Preco[vContagem];
fim;

vBandaMedia := vPrecoMedio / Periodo;

// Desvio Padrão
vDesvioPadrao := StdDevs(Preco, Periodo);

// Banda Superior
vBandaSuperior := vBandaMedia + (Desvio * vDesvioPadrao);

// Banda Inferior

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
vBandaInferior := vBandaMedia - (Desvio * vDesvioPadrao);

// Plotar
Plot(vBandaSuperior);
Plot2(vBandaInferior);
Plot3(vBandaMedia);

// Regra de Coloração
Se (Fechamento > vBandaSuperior) entao
inicio
PaintBar(clVermelho);
fim

Senao Se (Fechamento < vBandaInferior) entao


inicio
PaintBar(clVerde);
fim;

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C4 - FUNÇÕES - GRÁFICAS
FUNÇÕES GRÁFICAS BÁSICAS

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,

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• 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 ProfitChart entende que o valor de x será sempre o momento no tempo atual, ou seja,
• Como o código é executado a cada mudança de tick (valor), e a cada mudança de tick ós
nos movemos na linha do tempo,
• Afinal estamos indo sempre para o futuro.
• Portanto a função Plot sempre que for executada, irá sempre assumir a hora, minuto e
segundo em que o código foi executado como o nosso valor X.
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 ProfitChart, a função plot, simplesmente espera que o programador entre
com o valor de Y.

• Linhas
o O ProfitChart permite plotar até 4 indicadores no mesmo código,
o Plot, Plot2, Plot3, Plot4

• Resultado
o A função plota um ponto no gráfico com um valor Y que o programador determina e usa a
hora atual 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 nosso valor Y.

• NoPlot
o Inverso da função Plot.
o Na prática, a função NoPlot não irá plotar um ponto quando solicitado, efetivamente
'pulando' esse ponto.

• Parâmetro
o NoPlot(numplot)
• numplot: Um número inteiro de 1 a 4, sendo então o número da linha.

• SetPlotColor
o Irá determinar uma cor para nosso indicador, programaticamente.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

• Parâmetros
o SetPlotColor(number, color)
• number: Um número inteiro de 1 a 4, sendo então o número da linha.
• color: A cor a ser usada - podendo ser um número inteiro ou uma palavra reservada.
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
o 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 4, 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.

• GetPlotColor
o Inverso da função SetPlotColor.
o 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 4, sendo então o número da linha.

• GetPlotWidth
o Inverso da função SetPlotWidth.
o 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 4, sendo então o número da linha.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.2 PROPRIEDADES GRÁFICAS

• Propriedades da Estratégia
o Botão propriedades da estratégia
• É possível definir parâmetros iniciais do indicador:
▪ Cor.
▪ Espessura das linhas.
• Nota: Valores determinados programaticamente tem prioridade e irão sobre escrever
esses determinados aqui.
o 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
o 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.

• Regras de Coloração
▪ Gráfico
▪ Fundo do Gráfico
▪ Candles/Barra
▪ Indicadores
▪ Importante
▪ Ao usar parâmetros - existe distinção valores entrados nas propriedades da Regra de
Coloração e nas propriedades do indicador.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.3 MATERIAL DE SUPORTE

• Nomenclatura de cores

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. GRÁFICAS INDEX

var
index, iVal: Inteiro;

Inicio

// Funções Gráficas - Index

// CurrentBar // Retorna o índice atual da barra


// iVal := CurrentBar;
// PaintBar(clAmarelo);

// LastBarOnChart
// Se (LastBarOnChart) entao PaintBar(clAmarelo);

// MaxBarsForward
// index := CurrentBar;
// iVal := MaxBarsForward;
// PaintBar(clAmarelo);

// MaxBarsBack
// index := CurrentBar;
// iVal := MaxBarsBack;
// PaintBar(clAmarelo);

// GraphicInterval
// Interval = Tipo do Gráfico
// itTrade = 0
// itMinute = 1
// itDaily = 2
// itWeekly = 3
// itMonthly = 4
// itYearly = 5
// itAggressor = 6
// itLote = 7
// itVariation = 8
// itInversion = 9
// itQtd = 10
// itRenko = 11
// itRange = 12
// itPointFigure = 13
// itKagiChart = 14
// itBookMap = 15
// itVarInv = 16
// itSecond = 17

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Plot(GraphicInterval);

// Se (GraphicInterval = itRenko) entao


// inicio
// executa minha estratégia
// PaintBar(clVerde);
// fim
// Senao PaintBar(clVermelho);

// GraphicOffset
// Offset = Periodicidade
// Plot(GraphicOffset);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. GRÁFICAS PREÇO

var
rVal : Real;

Inicio

// Funções Gráficas - Preço

// AvgPrice
// rVal := (Maxima + Minima + Abertura + Fechamento) / 4;
// Plot(AvgPrice);

// Range
// rVal := (Maxima - Minima);
// Plot(Range);

// MedianPrice
// rVal := (Maxima + Minima) / 2;
// Plot(MedianPrice);

// TypicalPrice
// rVal := (Maxima + Minima + Fechamento) / 3;
// Plot(TypicalPrice);

// WeightedClose
// rVal := (Maxima + Minima + Fechamento + Fechamento) / 4;
// Plot(WeightedClose);

// TrueHigh
// Se (Maxima >= Fechamento[1]) entao rVal:=Maxima senao rVal:=Fechamento[1];
// Plot(TrueHigh);

// TrueLow
// Se (Minima <= Fechamento[1]) entao rVal:=Minima senao rVal:=Fechamento[1];
// Plot(TrueLow);

// TrueRange
// rVal := TrueHigh - TrueLow; // 11.400,00 - 06/04/2020
// rVal := Maxima - Fechamento[1]; // 11.400,00 - 06/04/2020
// Plot(TrueRange);

// Plot2(rVal);

// Leader
// Candle Leader : Midpoint[0] > Maxima[1] ou Midpoint[0] < Minima[1]

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// rVal := (Abertura + Fechamento) / 2; // Midpoint
// Plot(rVal);
// Se (Leader = 0) entao paintbar(clpurpura);
// Se (Leader = 1) entao paintbar(clazul);

// RangeLeader
// Candle RangeLeader : (Leader[0] = 1) e (Range[0] > Range[1])
// rVal := (Abertura + Fechamento) / 2; // Midpoint
// Plot(rVal);
// Se (RangeLeader = 0) entao paintbar(clpurpura);
// Se (RangeLeader = 1) entao paintbar(clazul);
// Plot(Range[0]);
// Plot2(Range[1]);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C5 - FUNÇÕES - MATEMÁTICAS
FUNÇÕES MATEMÁTICAS

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.

Round2Fraction

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.

Gcd

Combination Retorna o valor da combinação matemática.

Factorial Retorna o fatorial de um número.

Permutation Calcula a permutação.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.2 FUNÇÕES MATEMÁTICAS - 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. MATEMÁTICA

var
rVal : Real;

Inicio

// Funções Matemáticas

// Abs // Retorna o valor absoluto de um número


// rVal := Abs(-5.32); // rVal = 5.32

// Pos - mesmo que Abs


// rVal := Pos(-4.35);

// Neg
// Retorna o valor negativo de um número
// rVal := Neg(5.32); // rVal = -5.32

// Sign - Retorna informação sobre o sinal do número


// +1 : Positivo
// -1 : Negativo
// rVal := Sign(4);
// rVal := Sign(-4);

// Ceiling - Teto - Arredonda para o próximo maior número inteiro


// rVal := Ceiling(4.2); // rVal = 5

// Floor - Chão - Arredonda para o próximo menor número inteiro


// rVal := Floor(4.8); // rVal = 4

// Round - Arredonda o número decimal para o número inteiro mais próximo


// rVal := Round(4.2);
// rVal := Round(4.8);

// FracPortion - Retorna a porção fracionária de um número


// rVal := FracPortion(4.2); // rVal = 0.2

// IntPortion - Retorna a porção inteira de um número


// rVal := IntPortion(4.2); // rVal = 4

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Power - Número x elevado a n-Potência
// x^(n) = 4^(2)
// rVal := Power(4, 2);
// Sqrt - Square Root - Raiz Quadrada
// rVal := Sqrt(9); // rVal = 3

// Square - Quadrado - Número ao quadrado


// x^(2)
// rVal := Square(4); // rVal = 9

// Mod
// Retorna o resto da divisão
// rVal := Mod(1,3);

// Log - Retorna o logarítmo natural


// rVal := Log(0.5);

// Combination
// Z = {10, 20, 30, 40}
// Combinar em grupos de 2 :
// {10, 20} e {10, 30} e {10, 40} e {20, 30} e {20, 40} e {30, 40}
// rVal := Combination(4, 2); // rVal = 6

// Factorial
// Fatorial de um número
// Fatorial de 4 : 1 x 2 x 3 x 4 ... x N
// rVal := Factorial(4); // rVal = 24

// Permutation
// Encontra a relação de Permutação - sem repetição e sem ordem necessária
// rVal := Permutation(4, 3);

// Cum // Retorna o acumulo valores de uma série de dados


// rVal := Cum(Maxima);

// Random
// Retorna um valor aleatório entre 0 e n-1, onde n > 1
// n:1 >> 0 e 1-1 : 0
// n:2 >> 0 e 2-1 : 1

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// n:99 >> 0 e 99-1 : 98
// rVal := Random(99);

// Exp // Retorna a constante Euler elevada a daterminado expoente


// e = 2.71828
// rVal := Exp(2); // rVal := 7.3890461584

// ExpValue // Retorna o valor de um número elevado a determinado expoente


// rVal := ExpValue(2); // rVal := 7.3890461584

// FastD & FastK & FastKCustom & SlowK


// Retorna as linhas K%D do estocástico
// Discutir na aula sobre estocástico

// ExtremePriceRatio - Razão de Preço Extremo


// Razão : comparação de 2 números : Máxima e Mínima
// Razão simples = x/y : Maior Maxima / Menor Minima
// rVal := ExtremePriceRatio(1, falso); // UseLog está invertido

// Highest
// Maior valor em um período
// Pode ser Série de Dados ou Indicador
// rVal := Highest(Minima, 3);

// Lowest
// Menor valor em um período
// Pode ser Série de Dados ou Indicador
// rVal := Lowest(Minima, 3);

// HighestBar
// Índice do maior valor em relação a barra atual
// Número de barras atrás
// Pode ser Série de Dados ou Indicador
// rVal := HighestBar(Maxima, 3);

// LowestBar
// Índice do menor valor em relação a barra atual
// Número de barras atrás
// Pode ser Série de Dados ou Indicador
// rVal := LowestBar(Maxima,3);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// MidPoint - Ponto médio de um preço
// Pode ser Série de Dados ou Indicador
// rVal := MidPoint(Maxima, 3);

// PriceOscillator
// Diferença entre MM Rápida (Curta - Fast) e MM Lenta (Longa - Slow)
// rVal := PriceOscillator(Fechamento, 9, 21);
// Plot(rVal);

// VolumeOsc
// Diferença entre MM Rápida (Curta) e MM Lenta (Longa) do Volume
// rVal := VolumeOsc(9, 21);
// Plot(rVal);

// VolumeROC - Rate of Change - Taxa de Variação do Volume


// Determinar probabilidade da continuação do movimento atual
// Volume ROC = (Volume - Volume N Periodos) / Volume N Periodos * 100
// rVal := VolumeRoc(3);
// Plot(rVal);

// UlcerIndex
// Estuda o nível de stress do mercado
// O Índice de úlcera usa retrações para medir o "estresse"
// associado ao instrumento no momento. Conforme declarado por Peter Martin
// e Byron McCann, "quanto maior a IU de um investimento,
// mais provável é que o investimento cause úlceras ou noites sem dormir".
// rVal := -UlcerIndex(Fechamento, 14);
// Plot(rVal);

// PercentR
// Retorna a % do preço em relação a um período
// rVal := 100 * ( (Highest(Maxima, 3) - Fechamento) / (Highest(Maxima, 3) - Lowest(Minima, 3) ) );
// rVal := PercentR(3);

// NumUnits
// Número de contratos para um determinado investimento
// (x, y) onde x = Quantidade de dinheiro ; y = mínimo n de contratos
// rVal := NumUnits(800, 10);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Summation - Acumula somas de uma série de dados
// rVal := Fechamento[0] + Fechamento[1];
// rVal := Summation(Fechamento, 3);

// StdDevs - Standard Deviation - Desvio Padrão


// rVal := StdDevs(Fechamento, 3);

// TriAverage - Média Móvel triangular


// A média móvel simples da média móvel simples
// SMA = (P1 + P2 + P3 + ... + Pn) / n
// TMA = (SMA1 + SMA2 + SMA3 + ... SMAn) / n
// rVal := TriAverage(Fechamento, 9);
// Plot2(Media(9,Fechamento));

// Volatility
// Volatilidade é a variação do preço em um intervalo específico
// (a diferença entre a máxima e mínima).
// Mede a volatilidade do mercado traçando uma média suavizada do TrueRange.
// Ele retorna uma média do TrueRange em um número específico de barras,
// dando maior peso ao TrueRange da barra mais recente.
// rVal := Volatility(9);

// HarmonicMean
// Média harmonica - 2 relações inversamente proporcionais
// Exemplo - velocidade de um carro e tempo
// Percurso 100 km : 1/2 a 100km/h e 1/2 a 50km/h = 1.5 horas
// Média Simples : ( 100 + 50 ) / 2 : 75km/h = 1.33 horas
// Média Harmonica : 2 / (1/100 + 1/50) : 66.6km/h = 1.5 horas
// Pode ser Série de Dados ou Indicador
// rVal := 2 / ( (1/79300) + (1/78415);
// Plot(HarmonicMean(Fechamento, 72));
// Plot2(rVal);

// MinutesToTime // Nas funções de Calendário


// Conversor de minutos para hora militar - padrão da linguagem
// rVal := MinutesToTime(120);

// Geométricas

// Arctangent // Retorna o arco-tangente de um número em graus

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Tangent // Retorna a tangente de um número em graus
// Cotangent // Retorna a cotangente de um número em graus

// Cos // Retorna o cosseno de um número (radianos)


// Sin // Retorna o seno de um número (radianos)

// Cosine // Retorna o cosseno de um número em graus


// Sine // Retorna o seno de um número em graus
Plot(rVal);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C6 - FUNÇÕES - CALENDÁRIO
FUNÇÕES CALENDÁRIO

1.1 FORMAT EASYLANGUAGE


1. Data (Date)
YYY MM DD

Ano Mês Dia

2. Hora (Time)
HH MM

Horas Minutos
Formato 24h.

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]

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Tabela Tipo da Barra (BarType)

Valor Descrição

0 TickBar

1 Intraday

2 Diário

3 Semanal

4 Mensal

5 Point & Figure

Tabela Tipos de Gráfico (Interval)

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

11 (R) Renko

12 (N) Range

13 (PF) Ponto Figura

14 (K) Kagi

16 (PI) Ponto Inversão

17 (s) Segundo

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Tabela Dias da Semana (DayofWeek)

Valor Descrição

0 Domingo

1 Segunda-Feira

2 Terça-Feira

3 Quarta-Feira

4 Quinta-Feira

5 Sexta-Feira

6 Sábado

1.3 FUNÇÕES CALENDÁRIO - SÉRIES DE DADOS - 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.

1.4 FUNÇÕES CALENDÁRIO - SÉRIES DE DADOS - 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.5 FUNÇÕES CALENDÁRIO - SÉRIES DE DADOS - 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.

1.6 FUNÇÕES CALENDÁRIO - SÉRIES DE DADOS - 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.

1.7 FUNÇÕES CALENDÁRIO - SÉRIES DE DADOS - 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.8 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. CALENDÁRIO
var
rVal : Real;
iVal : Inteiro;

Inicio

// Funções Calendário

// Date (Data)
// Retorna a Data da barra em estudo
// em formato EasyLanguage:
// EL : YYYMMDD >> AAAMMDD onde : (A)no / (M)ês / (D)ia
// AAA >> 1-AA >> +2000, exemplo : 100:[2000], 101:[2001] ... 120:[2020]
// AAA >> 0-AA >> +1900, exemplo : 000:[1900], 098:[1998] ... 99:[1999]
// iVal := Date;

// Time
// Retorna o Horário de fechamento* (abertura) da barra em estudo
// em formato EasyLanguage:
// EL : HHMM >> (H)ora / (M)inuto
// Exemplo : 0900 = 900 = 9h da manhã / 1333 = 1h da tarde
// iVal := Time;

// CurrentDate
// Retorna Data atual (sistema - barra inferior) - formato EL
// iVal := CurrentDate;

// CurrentTime
// Retorna Hora atual (sistema - barra inferior) - formato EL
// iVal := CurrentTime;

// DayOfMonth
// Retorna o dia do mês de uma determinada data em formato (DD)
// iVal := CurrentDate; // 120-05-23
// iVal := DayOfMonth(CurrentDate);

// Month
// Retorna o mês de uma determinada data em formato (MM)
// iVal := CurrentDate; // 120-05-23
// iVal := Month(CurrentDate);

// Year
// Retorna o ano de uma determina data em formato (YYYY)
// iVal := CurrentDate; // 120-05-23
// iVal := Year(CurrentDate);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// BarType // Retorna a periodicidade da Barra
// 0 = TickBar
// 1 = Intraday
// 2 = Diário
// 3 = Semanal
// 4 = Mensal
// 5 = Point & Figure
// iVal := BarType;

// DayOfWeek
// Retorna O dia do mês de uma determinada data
// 0 = Domingo
// 1 = Segunda-Feira
// 2 = Terça-Feira
// 3 = Quarta-Feira
// 4 = Quinta-Feira
// 5 = Sexta-Feira
// 6 = Sábado
// iVal := CurrentDate; // 120-05-23
// iVal := DayOfWeek(1200512);

// Monday
// Retorna 1 para Segunda-Feira
// iVal := Monday;

// Tuesday
// Retorna 2 para Terça-Feira
// iVal := Tuesday;

// Wednesday
// Retorna 3 para Quarta-Feira
// iVal := Wednesday;

// Thursday
// Retorna 4 para Quinta-Feira
// iVal := Thursday;

// Friday
// Retorna 5 para Sexta-Feira
// iVal := Friday;

// Saturday
// Retorna 6 para Sábado
// iVal := Saturday;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Sunday
// Retorna 0 para Domingo
// iVal := Sunday;

// Se (DayOfWeek(Date) = Monday) entao PaintBar(clAmarelo);

// LastCalcDate
// Retorna a data de abertura da última barra completa em formato EL
// Útil com mercado aberto
// iVal := LastCalcDate;

// LastCalcTime
// Retorna o horário de abertura da última barra completa em formato EL
// iVal := LastCalcTime;

// LastDayOfMonth
// Retorna o último dia do mês (DD)
// iVal := LastDayOfMonth(Month(CurrentDate));

// CalcDate // Adiciona ou Subtrai Dias de uma data


// CalcDate(Referência, Mudança)
// Adicionar : + DaysChange (Mudança)
// Subtrair : - DaysChange (Mudança)
// iVal := CalcDate(CurrentDate, - 10);

// CalcTime // Adiciona ou Subtrai Minutos de um horário


// CalcTime(Referência, Mudança)
// Adicionar : + MinuteChange (Mudança)
// Subtrair : - MinuteChange (Mudança)
// iVal := CalcTime(CurrentTime, +60);

// ELDate // Converte data para formato EasyLanguage


// (AAAA,MM,DD) >> (AAAMMDD)
// iVal := ELDate(2020, 05, 06);

// ELDate_Consol // Converte data para formato EasyLanguage


// (AAAAMMDD) >> (AAAMMDD)
// iVal := ELDate_Consol(19980506);

// TimeToMinutes
// Converte horário (HHMM) em minutos
// iVal := TimeToMinutes(CurrentTime); // Usa hora da barra inferior
// iVal := TimeToMinutes(1532);

// MinutesIntoWeek
// Minutos desde Domingo 12 am (meia-noite) até data determinada

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// XDay : [0-6] // XTime : Hora
// iVal := MinutesIntoWeek(1, 0000);

// BarDuration // Retorna a duração da barra atual - em minutos


// Mostrar final de semana
// iVal := BarDuration;

// FindBar // Buscar barra no passado


// iVal := FindBar(1200305, 1000);
// iVal := FindBar(ELDate_Consol(20200305), 1000);
// iVal := FindBar(ELDate(2020, 03, 05), 1000);

// Se (FindBar(ELDate(2020, 03, 05), 1000) = 0) entao PaintBar(clAmarelo);

// RS_BarsPerDay
// Retorna número de barras de acordo com periodicidade
// Não considera mercado aberto ou fechado - contagem é total
// iVal := RS_BarsPerDay;

// 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
// rVal := CloseW(1);

// 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
// rVal := OpenD(1);

// 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
// rVal := HighD(1);

// 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
// rVal := LowD(1);

// VolumeD - Volume de N dias atrás


// VolumeM - Volume de N meses atrás
// VolumeW - Volume de N semanas atrás

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// VolumeY - Volume de N anos atrás
// rVal := VolumeD(1);

// DaysToExpiration - Dias restantes para data referência


// Referência : Terceira Sexta-Feira do mês
// iVal := DaysToExpiration(05,120);

// Next3rdFriday
// Retorna o número de dias até a próxima terceira sexta-feira do mês
// Series : Meses a frente, onde:
// 0 : Mês atual
// 1 : Próximo Mês ...
// Não conta dias de mercado fechado
// iVal := Next3rdFriday(0);

// BarAnnualization - Retorna um fator de anualização


// 1D : 19.10 = Sqrt(365)
// 1S : 7.21 = Sqrt(52)
// 1M : 3.46 = Sqrt(12)
// rVal := BarAnnualization;

// Plot(iVal);
// Plot(rVal);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C7 - FUNÇÕES - CANDLESTICK
FUNÇÕES DE CANDLE

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

1.2 C_DOJI
• Identifica um candle Doji.
• Definição:
i. 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.

Doji

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.3 C_SHOOTINGSTAR
• Identifica um candle Estrela Cadente.

• Definição:
i. O corpo do candle é pequeno, porém não é Doji.
ii. O candle é de alta.
iii. O candle está acima do candle anterior.
iv. O candle anterior é de alta e maior que o candle médio.

• Parâmetros:

Nome Padrão Descrição

Length 14 Comprimento para calcular o corpo médio.


(Comprimento)

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

Estrela Cadente

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.4 C_3WHSOLDS_3BLKCROWS
• Identifica:
i. 3 White Soldiers / 3 Black Crows.
ii. 3 Soldados Brancos / 3 Corvos Negros.

• Definição - 3 Soldados Brancos:


i. 3 candles de alta consecutivos.
ii. As 3 linhas devem fechar próximo as máximas.
iii. Abertura do segundo e terceiro candle deve estar 'dentro' do corpo do candle anterior.

• Definição - 3 Corvos Negros:


i. 3 candles de baixa consecutivos.
ii. As 3 linhas devem fechar próximo as mínimas.
iii. Abertura do segundo e terceiro candle deve estar 'dentro' do corpo do candle anterior.

• Parâmetros:

Nome Padrão Descrição

Length (Comprimento) 14 Comprimento para calcular o corpo médio.

Percent (Porcentagem) 5 Porcentagem do limite entre o Fechamento e a Máxima ou a


Mínima.

3 Soldados Brancos

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.5 C_BULLENG_BEARENG
• Identifica:
i. Bullish Engulfing - Engolfo de Alta (Touro)
ii. Bearish Engulfing - Engolfo de Baixa (Urso)

• Definição - Engolfo de Alta:


i. O corpo de um candle verde é maior e envolve a abertura e o fechamento de um candle
vermelha anterior.
ii. A tendência é de baixa.
iii. O corpo do candle verde é maior que o corpo médio dos candles anteriores.

• Definição - Engolfo de Baixa:


i. O corpo de um candle vermelho é maior e envolve a abertura e o fechamento de um candle
verde anterior.
ii. A tendência é de alta.
iii. O corpo do candle vermelho é maior que o corpo médio dos candles anteriores.

• 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 Comprimento para calcular o corpo médio.

Engolfo de Alta Engolfo de Baixa

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.6 C_HAMMER_HANGINGMAN
• Identifica:
i. Hammer (Martelo)
ii. Hanging Man (Homem Enforcado)

• Definição - Martelo:
i. O corpo do candle está na metade superior do candle e a sombra geralmente tem o dobro do
comprimento do corpo.
ii. A tendência é de baixa.
iii. Pode ser um candle vermelho ou verde, mas não um Doji.

• Definição - Homem Enforcado:


i. O corpo do candle está na metade superior do candle e a sombra geralmente tem o dobro do
comprimento do corpo.
ii. A tendência é de alta.
iii. 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 14 Comprimento para calcular o corpo médio.


(Comprimento)

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

Martelo Homem Enforcado

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.7 C_MORNDOJI_EVEDOJI
• Identifica:
i. Morning Doji (Doji da Manhã)
ii. Evening Doji (Doji da Tarde)

• Definição - Doji da Manhã:


i. Um padrão de três candles:
i. O primeiro é um longo candle vermelho,
ii. Seguido por um candle Doji que se forma abaixo,
iii. O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
o O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.

• Definição - Doji da Tarde:


o Um padrão de três candles:
i. O primeiro é um longo candle barra verde,
ii. Seguida por um candle Doji que se forma acima,
iii. O terceiro é um candle vermelho que se fecha no corpo dos primeiros candles.
o O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.

• 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 Comprimento para calcular o corpo médio.

Percent (Porcentagem) 5 Porcentagem do limite entre o Fechamento e a Máxima ou a


Mínima.

Doji da Manhã Doji da Tarde

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.8 C_MORNSTAR_EVESTAR
• Identifica:
o Morning Star (Estrela da Manhã)
o Evening Star (Estrela da Tarde)

• Definição - Estrela da Manhã:


o Um padrão de três candles:
i. O primeiro é um longa candle vermelho,
ii. Seguido por um candle de corpo pequeno que se forma abaixo,
iii. O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
o O corpo do primeiro candle precisa ser maior que o corpo médio dos candles anteriores.

• Definição - Estrela da Tarde:


o Um padrão de três candles:
i. O primeiro é um longo candle verde,
ii. Seguido por um candle de corpo pequeno que se forma acima,
iii. O terceiro é um candle vermelho que se fecha no corpo dos primeiros candles.
o 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 Comprimento para calcular o corpo médio.

Estrela da Manhã Estrela da Tarde

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.9 C_PIERCELINE_DKCLOUD
• Identifica:
o Piercing Line (Linha Penetrante)
o 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 é 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 é de alta.

• Linha Penetrante pode ser considerada um padrão de reversão de ALTA,


o 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,


o 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 Comprimento para calcular o corpo médio.

Linha Penetrante Nuvem Escura

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.10 C_INSIDEBAR
• Identifica Candle InsideBar.
• Definição :
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])
o Retorna 1: Verdadeiro
o Retorna 0: Falso

// Função - InsideBar
// Retorna 1 : Verdadeiro
// Retorna 0 : Falso

var
Result : Inteiro;

Inicio

Se ( (Maxima < Maxima[1]) e (Minima > Minima[1]) ) entao Result := 1 Senao Result := 0;
Plot(Result);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. CANDLESTICK
var
iVal: Inteiro;
rVal: Real;

oBullishEngulfing, oBearishEngulfing : Inteiro;


o3WhiteSoldiers, o3BlackCrows : Inteiro;
oHammer, oHangingMan : Inteiro;
oMorningDojiStar, oEveningDojiStar : Inteiro;
oMorningStar, oEveningStar : Inteiro;
oPiercingLine, oDarkCloud : Inteiro;

Inicio

// Funções CandleStick

// C_Doji
// C_3WhSolds_3BlkCrows
// C_BullEng_BearEng
// C_Hammer_HangingMan
// C_MornDoji_EveDoji
// C_MornStar_EveStar
// C_PierceLine_DkCloud

// #########################################################

// C_Doji
// Definição de Barra Doji:
// O corpo do candle é pequeno,
// O fechamento é igual, ou muito próximo, ao valor da abertura,
// de acordo com uma %.
// iVal := C_Doji(2);
// Se (iVal = 1) entao PaintBar(clAmarelo);

// #########################################################

// C_ShootingStar
// Definição de Barra Shooting Star (Estrela Cadente):
// 1. O corpo do candle é pequeno, porém não é Doji,
// - Próximo a Minima e o corpo normalmente 2x menor que a cauda (Factor)

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// 2. O candle está em um movimento "maior" de alta
// 3. O corpo do candle está acima do corpo do candle anterior
// 4. O candle anterior é de alta e maior que a média dos corpos anteriores
// iVal := C_ShootingStar(14, 2);
// Se (iVal = 1) entao PaintBar(clAmarelo);

// #########################################################

// C_3WhSolds_3BlkCrows

// Identifica 2 tipos de candle:


// - 3 White Soldiers / 3 Black Crows
// - 3 Soldados Brancos / 3 Corvos Negros

// Condições para 3 Soldados Brancos:


// 1. 3 candles de alta consecutivos
// 2. Os 3 candles devem fechar próximo as suas máximas
// 3. Abertura do segundo e terceiro candle deve estar 'dentro'
// do corpo do candle anterior

// Condições para 3 Corvos Negros:


// 1. 3 candles de baixa consecutivos
// 2. Os 3 candles devem fechar próximo as suas mínimas
// 3. Abertura do segundo e terceiro candle deve estar 'dentro'
// do corpo do candle anterior

// iVal := C_3WhSolds_3BlkCrows(2, 51, o3WhiteSoldiers, o3BlackCrows);


// Regra de Coloração
// Se (o3WhiteSoldiers = 1) entao PaintBar(clVerdeLimao)
// Senao se (o3BlackCrows = 1) entao PaintBar(clVermelho);

// #########################################################

// C_BullEng_BearEng

// Identifica 2 tipos de barras:

// Bullish Engulfing - Engolfo de Alta (Touro)


// Condições
// 1. O corpo de uma barra verde é maior e envolve a abertura e o fechamento

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// de uma barra vermelha anterior.
// 2. A tendéncia é de baixa.
// 3. O corpo da barra verde é maior que o corpo médio das barras anteriores.

// Bearish Engulfing - Engolfo de Baixa (Urso)


// Condições
// 1. O corpo de uma barra vermelha é maior e envolve a abertura e o fechamento
// de uma barra verde anterior.
// 2. A tendéncia é de alta.
// 3. O corpo da barra vermelha é maior que o corpo médio das barras anteriores.

// 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 MAXIMA pode ser usado como nível de resistência.

// iVal := C_BullEng_BearEng(14, oBullishEngulfing, oBearishEngulfing);


// Regra de Coloração
// Se (oBullishEngulfing = 1) entao PaintBar(clVerdeLimao)
// Senao se (oBearishEngulfing = 1) entao PaintBar(clVermelho);

// #########################################################

// C_Hammer_HangingMan

// Identifica 2 tipos de barras:

// Hammer & Hanging Man


// Martelo & Homem Enforcado

// Martelo - Condições:
// 1. O corpo da barra está na metade superior da barra e
// a cauda geralmente tem o dobro do comprimento do corpo.
// 2. A tendéncia é de baixa.
// 3. Pode ser uma barra vermelha ou verde, mas não um Doji.

// Homem Enforcado - Condições:


// 1. O corpo da barra está na metade superior da barra e
// a cauda geralmente tem o dobro do comprimento do corpo.
// 2. A tendéncia é de alta.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// 3. Pode ser uma barra vermelha ou verde, mas não um Doji.

// O Martelo pode ser considerado um padrão Bullish de reversão de ALTA


// que precisa de confirmação.
// Homem Enforcado pode ser considerado um padrão Bearish de reversão de BAIXA
// que precisa de confirmação.

// iVal := C_Hammer_HangingMan(14, 2, oHammer, oHangingMan);


// Regra de Coloração
// Se (oHammer = 1) entao PaintBar(clVerdeLimao)
// Senao se (oHangingMan = 1) entao PaintBar(clVermelho);

// #########################################################

// C_MornDoji_EveDoji

// Identifica 2 tipos de barras:


// Morning Doji & Evening Doji
// Doji da Manhã e Doji da Tarde

// Doji da Manhã - Condições:


// 1. Um padrão de três barras,
// A primeira é uma longa barra vermelha,
// Seguida por uma barra Doji que se forma abaixo,
// A terceira é uma barra verde que se fecha no corpo da primeira barra.
// 2. O corpo da primeira barra precisa ser maior que o corpo médio das barras
// anteriores.

// Doji da Tarde - Condições:


// 1. Um padrão de três barras,
// A primeira é uma longa barra verde,
// Seguida por uma barra Doji que se forma acima,
// A terceira é uma barra vermelha que se fecha no corpo das primeira barra.
// 2. O corpo da primeira barra precisa ser maior que o corpo médio das barras
// anteriores.

// 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.

// iVal := C_MornDoji_EveDoji(14, 2, oMorningDojiStar, oEveningDojiStar);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Regra de Coloração
// Se (oMorningDojiStar = 1) entao PaintBar(clVerdeLimao)
// Senao se (oEveningDojiStar = 1) entao PaintBar(clVermelho);

// #########################################################

// C_MornStar_EveStar

// Identifica 2 tipos de barras:


// Morning Star & Evening Star
// Estrela da Manhã & Estrela da Tarde

// Estrela da Manhã - Condiçõs:


// 1. Um padrão de três barras,
// A primeira é uma longa barra vermelha,
// Seguida por uma barra de corpo pequeno que se forma abaixo,
// A terceira é uma barra verde que se fecha no corpo da primeira barra.
// 2. O corpo da primeira barra precisa ser maior que o corpo médio das barras
// anteriores.

// Estrela da Tarde - Condiçõs:


// 1. Um padrão de três barras,
// A primeira é uma longa barra verde
// Seguida por uma barra de corpo pequeno que se forma acima,
// A terceira é uma barra vermelha que se fecha no corpo da primeira barra.
// 2. O corpo da primeira barra precisa ser maior que o corpo médio das barras
// 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.

// iVal := C_MornStar_EveStar(14, oMorningStar, oEveningStar);


// Regra de Coloração
// Se (oMorningStar = 1) entao PaintBar(clVerdeLimao)
// Senao se (oEveningStar = 1) entao PaintBar(clVermelho);

// #########################################################

// C_PierceLine_DkCloud

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Identifica 2 tipos de barras:
// Piercing Line & Dark Cloud
// Linha Penetrante & Nuvem Escura

// Linha Penetrante - Condições:


// 1. Uma grande barra verde que abre abaixo da MINIMA de uma barra vermelha
// anterior e fecha acima da metade do corpo da barra anterior
// 2. A tendência é de baixa.

// Nuvem Escura - Condições:


// 1. Uma grande barra vermelha que abre acima da MAXIMA de uma barra verde
// anterior e fecha abaixo da metade do corpo da barra anterior
// 2. A tendência é de alta.

// Linha Penetrante pode ser considerada um padrão de reversão de ALTA,


// no entanto, se a barra verde não for muito longa,
// 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 a barra vermelha não for muito longa,
// as formações podem ser consideradas apenas uma formação de continuação.

// iVal := C_PierceLine_DkCloud(14, oPiercingLine, oDarkCloud);


// Regra de Coloração
// Se (oPiercingLine = 1) entao PaintBar(clVerdeLimao)
// Senao se (oDarkCloud = 1) entao PaintBar(clVermelho);

// #########################################################

// 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

// rVal := C_InsideBar;
// Se (rVal = 1) entao PaintBar(clAmarelo);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Plot(rVal);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C8 - SETUP - BARRA REJEITADA
O SETUP - BARRA REJEITADA

1.1 BARRA DE IGNIÇÃO


• Definição: Barra de força que demonstra mudança no padrão de movimento.

1.2 BARRA REJEITADA


• Definição: Resposta frustrada a Barra de Ignição.

1.3 CENÁRIO DO MERCADO

• Setup acontece normalmente após um período de mercado consolidado, (preço lateral).

1.4 ENTRADA
• No terceiro candle, ao romper máxima + (respiro) da Barra Rejeitada.

1.5 STOP
• Mínima - (respiro) da Barra Rejeitada.

1.6 ALVO
• Recomendado 100% de Fibonaci.

1.7 'RESPIRO'
• Refere-se a um valor de compensação para o mercado, normalmente um pequeno valor acima ou
abaixo dos valores de entrada e saída, dependendo da direção.
• Ajuda a evitar movimentos bruscos de mercado que acontecem para atingir metas de
investidores pequenos.

• Condições Barra de Ignição

2.1 LISTA DE CONDIÇÕES


• Corpo da Barra de Ignição > 2x o corpo das Barras[1] & [2] & [3].
• Sombras da Barra de Ignição < 20% do próprio corpo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
2.2 NA PONTA DA COMPRA
• Barra de Ignição deve ser uma Barra de ALTA = Fechamento > Abertura.
• Pintar a Barra de Verde.

2.3 NA PONTA DA VENDA


• Barra de Ignição deve ser uma Barra de BAIXA = Fechamento < Abertura.
• Pinta a Barra de Vermelho.

CONDIÇÕES BARRA REJEITADA

3.1 LISTA DE CONDIÇÕES


• Corpo da Barra Rejeitada < 35% corpo da Barra de Ignição.
• Sombras da Barra Rejeitada < 2x o próprio corpo.

3.2 NA PONTA DA COMPRA


• Barra Rejeitada deve ser uma Barra de BAIXA = Fechamento < Abertura.
• Pinta a Barra de Amarelo.

3.3 NA PONTA DA VENDA


• Barra Rejeitada deve ser uma Barra de ALTA = Fechamento > Abertura.
• Pinta a Barra de Amarelo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE B.R. REGRA COLORAÇÃO

Parametro
// Parâmetros Barra de Ignição
RazaoCorpoBarraIgnicao(2); // Proporção do corpo da Barra de Ignição em relação as barras
anteriores [1] [2] [3].
RazaoSombraBarraIgnicao(0.35); // Proporção das sombras da Barra de Ignição em relação ao
próprio corpo.
// Parâmetros Barra Rejeida
RazaoCorpoBarraRejeitada(0.5); // Proporção do corpo da Barra Rejeitada em relação corpo da Barra
de Ignição.
RazaoSombraBarraRejeitada(2); // Proporção das sombras da Barra Rejeitada em relação ao próprio
corpo.

var
cp0, cp1, cp2, cp3 : Real;
sab, sbb, sap, sbp : Real;
BarraIgnicaoIndex : Inteiro;
TipoBarraIgnicao : Inteiro;

Inicio

// Calcular Corpo das Barras


cp0 := CorpoBarra(0);
cp1 := CorpoBarra(1);
cp2 := Abs(Abertura[2] - Fechamento[2]);
cp3 := Abs(Abertura[3] - Fechamento[3]);

// Calcular Sombras da Barra Atual


sab := Maxima - Fechamento; // Sombra Alta da Barra Branca
sbb := Abertura - Minima; // Sombra Baixa da Barra Branca

sap := Maxima - Abertura; // Sombra Alta da Barra Preta


sbp := Fechamento - Minima; // Sombra Baixa da Barra Preta

// Teste Barra Ignição


// Teste 1 - Tamanho do Corpo

Se ( (cp0 > (cp1 * RazaoCorpoBarraIgnicao)) e (cp0 > (cp2 * RazaoCorpoBarraIgnicao)) e (cp0 > (cp3 *
RazaoCorpoBarraIgnicao)) ) entao
inicio

// Teste 2 - Sombra da Barra


Se ( (Fechamento > Abertura) e (sab < (cp0 * RazaoSombraBarraIgnicao)) e (sbb < (cp0 *
RazaoSombraBarraIgnicao)) ) entao
inicio

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
PaintBar(clVerde); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 2;
fim
Senao Se ( (Fechamento < Abertura) e (sap < (cp0 * RazaoSombraBarraIgnicao)) e (sbp < (cp0 *
RazaoSombraBarraIgnicao)) ) entao
inicio
PaintBar(clVermelho); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 1;
fim
Senao TipoBarraIgnicao := 0;
// 2 = Barra de Ignição de Alta (Branca)
// 1 = Barra de Ignição de Baixa (Preta)
// 0 = Não é uma Barra de Ignição

fim
// Teste Barra Rejeitada
Senao Se (CurrentBar = BarraIgnicaoIndex + 1) entao
inicio

// Barra Rejeitada de Alta - Após uma Barra de Ignição de Baixa


Se ( (TipoBarraIgnicao = 1) e (Fechamento > Abertura) e (cp0 < (cp1 * (RazaoCorpoBarraRejeitada)))
e (sab < (cp0 * RazaoSombraBarraRejeitada)) e (sbb < (cp0 * RazaoSombraBarraRejeitada)) ) entao
inicio
paintBar(clBlue); // Ponta da Venda
fim
// Barra Rejeitada de Baixa - Após uma Barra de Ignição de Alta
Senao Se ( (TipoBarraIgnicao = 2) e (Fechamento < Abertura) e (cp0 < (cp1 *
(RazaoCorpoBarraRejeitada))) e (sap < (cp0 * RazaoSombraBarraRejeitada)) e (sbp < (cp0 *
RazaoSombraBarraRejeitada)) ) entao
inicio
paintBar(clAqua); // Ponta da Compra
fim;

fim;

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE B.R. PLOTAGEM

Parametro
// Parâmetros Barra de Ignição
RazaoCorpoBarraIgnicao(2); // Proporção do corpo da Barra de Ignição em relação as barras
anteriores [1] [2] [3].
RazaoSombraBarraIgnicao(0.35); // Proporção das sombras da Barra de Ignição em relação ao
próprio corpo.
// Parâmetros Barra Rejeida
RazaoCorpoBarraRejeitada(0.5); // Proporção do corpo da Barra Rejeitada em relação corpo da Barra
de Ignição.
RazaoSombraBarraRejeitada(2); // Proporção das sombras da Barra Rejeitada em relação ao próprio
corpo.

var
cp0, cp1, cp2, cp3 : Real;
sab, sbb, sap, sbp : Real;
BarraIgnicaoIndex : Inteiro;
TipoBarraIgnicao : Inteiro;
vEntrada, vStop, vAlvo : Real;
isEntrada : Booleano;

Inicio

// Calcular Corpo das Barras


cp0 := CorpoBarra(0);
cp1 := CorpoBarra(1);
cp2 := Abs(Abertura[2] - Fechamento[2]);
cp3 := Abs(Abertura[3] - Fechamento[3]);

// Calcular Sombras da Barra Atual


sab := Maxima - Fechamento; // Sombra Alta da Barra Branca
sbb := Abertura - Minima; // Sombra Baixa da Barra Branca

sap := Maxima - Abertura; // Sombra Alta da Barra Preta


sbp := Fechamento - Minima; // Sombra Baixa da Barra Preta

// Teste Barra Ignição


// Teste 1 - Tamanho do Corpo

Se ((cp0 > (cp1 * RazaoCorpoBarraIgnicao)) e (cp0 > (cp2 * RazaoCorpoBarraIgnicao)) e (cp0 > (cp3 *
RazaoCorpoBarraIgnicao)) ) entao
inicio

// Teste 2 - Sombra da Barra

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Se ( (Fechamento > Abertura) e (sab < (cp0 * RazaoSombraBarraIgnicao)) e (sbb < (cp0 *
RazaoSombraBarraIgnicao)) ) entao
inicio
PaintBar(clVerde); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 2;
fim
Senao Se ( (Fechamento < Abertura) e (sap < (cp0 * RazaoSombraBarraIgnicao)) e (sbp < (cp0 *
RazaoSombraBarraIgnicao)) ) entao
inicio
PaintBar(clVermelho); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 1;
fim
Senao TipoBarraIgnicao := 0;
// 2 = Barra de Ignição de Alta (Branca)
// 1 = Barra de Ignição de Baixa (Preta)
// 0 = Não é uma Barra de Ignição

fim
// Teste Barra Rejeitada
Senao Se (CurrentBar = BarraIgnicaoIndex + 1) entao
inicio

// Barra Rejeitada de Alta - Após uma Barra de Ignição de Baixa


Se ( (TipoBarraIgnicao = 1) e (Fechamento > Abertura) e (cp0 < (cp1 * (RazaoCorpoBarraRejeitada)))
e (sab < (cp0 * RazaoSombraBarraRejeitada)) e (sbb < (cp0 * RazaoSombraBarraRejeitada)) ) entao
inicio
paintBar(clBlue); // Ponta da Venda
isEntrada := verdadeiro;
vEntrada := Minima - 5;
vStop := Maxima + 5;
vAlvo := Minima - ((Maxima - Minima) * 1.61);
fim
// Barra Rejeitada de Baixa - Após uma Barra de Ignição de Alta
Senao Se ( (TipoBarraIgnicao = 2) e (Fechamento < Abertura) e (cp0 < (cp1 *
(RazaoCorpoBarraRejeitada))) e (sap < (cp0 * RazaoSombraBarraRejeitada)) e (sbp < (cp0 *
RazaoSombraBarraRejeitada)) ) entao
inicio
paintBar(clAqua); // Ponta da Compra
isEntrada := Verdadeiro;
vEntrada := Maxima + 5;
vStop := Minima - 5;
vAlvo := Maxima + ((Maxima - Minima) * 1.61);
fim;

fim;

// Barra de Ignição foi encontrada e & Barra Rejeitada também foi encontrada
Se (isEntrada) entao

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
inicio

// Plotagem
Plot(vEntrada);
Plot2(vStop);
Plot3(vAlvo);

// Barra seguinte a Barra Rejeitada - É onde a entrada deve ocorrer


Se (CurrentBar >= BarraIgnicaoIndex + 2) entao
inicio
// Teste para confirmar se houve entrada
Se (
( (TipoBarraIgnicao = 1) e (Fechamento > vEntrada) ) ou
( (TipoBarraIgnicao = 2) e (Fechamento < vEntrada) ) ) entao
inicio
isEntrada := falso; // Caso não houver entrada - resetar a nossa variável booleana
fim
// Se houver a entrada - testar onde ocorreu a saída
Senao Se (
( (TipoBarraIgnicao = 1) e ((Minima <= vAlvo) ou (Maxima >= vStop)) ) ou
( (TipoBarraIgnicao = 2) e ((Maxima >= vAlvo) ou (Minima <= vStop)) ) ) entao
inicio
// Saída detectada - Zerar variável e pintar Candle
isEntrada := falso;
paintBar(clAzul);
fim;

fim;

fim;

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C9 - FUNÇÕES - INDICADORES
MÉDIAS MÓVEIS

• Funções
o Media
o 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;

SchillerApp.com/ProfitChart
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|);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
MACD

• Funções
o 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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ACUMULAÇÃO DISTRIBUIÇÃO
o Funções
o AccuDistr
o AccuDistrW

Inicio

// AccuDistr - Original
// AccuDistrW - Williams

Plot(AccuDistr);

Plot2(AccuDistrW);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ÍNDICE DIRECIONAL MÉDIO
o Funções
o ADX
o DiPDiM

Parametro
Periodo(14);

var
vADX : Real;
vDiP : Real;
vDiN : Real;

Inicio

// ADX
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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ESTOCÁSTICO
o Funções
o SlowStochastic
o FastStochastic
o FullStochastic
o SlowK
o FastD
o FastK
o FastKCustom
o MomentumStochastic
var
FastSt : Real;
SlowSt : Real;
FullSt : Real;
MSt : Real;
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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CCI
o Funções
o 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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
OBV
o Funções
o OBV
o OBVAvg

var

vOBV : Real;
vOBVAvg : Real;
mm : Real;

Inicio

vOBV := OBV;
vOBVAvg := OBVAvg(10, 3);
// 0 = Aritmética
// 1 = Exponencial
// 2 = Welles Wilder
// 3 = Ponderada (Linear)

mm := Media(9, vOBV);

Plot(vOBV);
Plot2(mm);

Se (vOBV[1] < mm[1]) e (vOBV[0] > mm[0]) entao Select;

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
RSI
o Funções
o RSI

Var

vRSI : Real;

Inicio

// RSI

vRSI := RSI(9, 0); // 0 = Clássico // 1 = Simples

Plot(vRSI);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
BANDAS DE BOLLINGER
o Funções
o BollingerBands
o BollingerBandW
o BollingerBPerc

var

vBB : Real;
vBBW : Real;
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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
AROON LINE
o Funções
o AroonLin
▪ 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

o AroonOsc
• 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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
VOLUME
o 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);

// 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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
MÉDIAS MÓVEIS
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.

1.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.
o Com flutuações do dia a dia removidas - melhor visão da verdadeira tendência.

1.2 USO
• Confirmar tendências, ou apontar possíveis reversões de tenências.
• Estabelecer níveis de suporte e resistência.

1.3 TIPO
• Indicador baseado em preço.

1.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 à 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íodos, é 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.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.
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:
o

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.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.
o 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

o Onde:
o

1.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

o Onde:
o

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
o Observação:
o

CONFIGURAÇÃO: Depende do período utilizado.

1.6 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.
o Uma média de curto prazo acima de uma média de longo prazo, indica tendência de ALTA.
o 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.

1.7 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

1.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.

1.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.

1.3 TIPO
• Indicador Oscilador atrasado baseado em preço.

1.4 BÁSICO
• Componentes básicos do MACD
o

• Matematicamente

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.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 MME de 9 períodos da diferença entre o


Sinal dois.

1.6 INTERPRETAÇÃO
• 3 sinais significativos gerados pelo indicador MACD:
• Quando:
o A linha MACD cruza a linha de sinal; ou
o A linha MACD cruza zero; ou
o 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:
o MACD - Sinal = 0
o MME[rápida,12] - MME[lenta,26] = 0
o Sinal (preço relativo extremo final - preço relativo extremo inicial) ≠ Sinal (preço relativo
extremo - MACD extremo inicial)

1.7 CRUZAMENTOS
Cruzamento entre Linha MACD e Linha Sinal
o 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


o 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 Graficamente isso Uma barra de valor 0 no
cruzam entre elas significa Histograma.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Movimentação do Histograma
o 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 diminuindo sugere que um cruzamento pode estar se aproximando.
Histograma

Barras no crescendo sugere que uma tendência já definida pode ficar ainda mais
Histograma forte.

Cruzamento entre Linha MACD e 0


o 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.

1.8 DIVERGÊNCIAS
Divergências entre Linha MACD e Preços
o 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 Surge quando o preço atinge um novo nível mais
Positiva Preço baixo, mas o MACD não.

Divergência entre MACD e o Surge quando o preço atinge um novo nível mais alto,
Negativa Preço mas o MACD não.

ii. Interpretação:
Divergência Isso é interpretado como otimista, sugerindo que uma tendência de baixa
Positiva pode estar quase no fim.

Divergência Isso é interpretado como pessimista, sugerindo que os recentes aumentos


Negativa de preços não continuarão.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Divergências entre Preços e Histograma
Níveis altos de Não confirmados Novos níveis altos de Considerado um indicativo
preços por histograma de BAIXA.

Níveis baixos de Não confirmados Novos níveis baixos de Considerado um indicativo


preços por histograma de ALTA.

Divergências mais longas e mais nítidas


Picos ou fundos distintos Consideradas mais significativas do que padrões pequenos e
rasos.

1.9 FALSOS SINAIS


• Como qualquer indicador, o MACD pode gerar sinais falsos.
Falso Um cruzamento de alta seguido por um repentino declínio em uma ação.
positivo

Falso Uma situação em que não houvesse cruzamento de alta, mas o preço acelerara
negativo 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 de atraso, 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 investigação cuidadosa dos movimentos passados de preços fornece informações
adicionais sobre como uma ação tende a se mover.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.10 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.
• 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 dos MACDs.
• 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ACCUDISTR
ACUMULAÇÃO / DISTRIBUIÇÃO (ACCUMULATION / DISTRIBUTION)

• Relaciona volume e preço.

1.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).

1.2 USO
• Verificar as tendências de preços ou para detectar potenciais mudanças de tendência nos preços.

1.3 TIPO
• Indicador de Momento baseado em volume. Antecipa o movimento dos preços.

Criado por: Mark Chaikin / Larry Williams

1.4 O 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).

1.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
o Movimento lateral que antecede a tendência de alta.
o Ótimo momento para compra. Para isso requer informações de alta qualidade.

Fase de Distribuição
o Movimento lateral que antecede a tendência de baixa.
o Ótimo momento para venda. Para isso requer informações de alta qualidade.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart

• 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).

1.6 INTERPRETAÇÃO

Preço Lateral & AD = Acumulação - possivelmente precedendo tendência de Alta.


subindo

Preço Latera & AD caindo = Distribuição - possivelmente precedendo tendência de Baixa.

Preço Caindo & AD = Possível reversão no preço.


subindo

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ADX
ÍNDICE DIRECIONAL MÉDIO (AVERAGE DIRECTIONAL INDEX)

1.1 OBJETIVO
• Medir força e direção de uma tendência.

1.2 USO
• Embasar ou confirmar estratégias.

1.3 TIPO
• Indicador oscilador baseado em preço.
Criado por: Welles Wider

1.4 O ADX UTILIZA


• Índice Direcional Positivo: +DI - Indica uma tendência de Alta
• Índice Direcional Negativo: -DI - Indica uma tendência de Baixa

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

1.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

SchillerA
pp.com/ProfitChart

SchillerA
SchillerApp – Curso Programação ProfitChart
1.7 SINAIS
• Atento a cruzamentos entre +DI & -DI & Atento a linha ADX
ESTOCÁSTICO
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.

1.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.

1.2 TIPO
• Indicador oscilador de momento baseado em preço.

1.3 BÁSICO
• O indicador é definido matematicamente como:
• Rápido:

• Lento:

• Os cálculos acima encontram o intervalo entre a Alta 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:
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.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 O estocástico rápido é mais sensível do que o estocástico lento a mudanças no preço.
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.

1.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.


o Tendências muito fortes podem manter as condições de sobre compra ou sobre venda por
um período prolongado.
o 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.

1.6 SINAIS
• O Principal sinal para agir utilizando um indicador estocástico é quando houver:
o Uma divergência em uma das áreas extremas.
o 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.
o No caso de uma tendência de ALTA

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
o Os preços tendem a elevar-se, fazendo máximas mais altas.
o A linha do estocástico geralmente buscará a extremidade superior (80-100).
o Quando o momento começa a desacelerar, A linha do estocástico começará a recuar da
extremidade superior.
o Fazendo com que o indicador estocástico se incline para baixo, próximo aos últimos
preços de alta.
o Criando assim uma divergência, próxima ao momento da virada de preços.

o No caso de uma tendência de BAIXA


o Os preços tendem a diminuir, fazendo mínimas mais baixas.
o A linha do estocástico geralmente buscará a extremidade inferior (0-20).
o Quando o momento começa a desacelerar, A linha do estocástico começará a recuar da
extremidade inferior.
o Fazendo com que o indicador estocástico se incline para cima, próximo aos últimos
preços de baixa.
o Criando assim uma divergência, próxima ao momento da virada de preços.

1.7 LIMITAÇÕES
• A principal limitação do oscilador estocástico é que é conhecido por produzir sinais falsos.
o É quando um sinal de negociação é gerado pelo indicador, mas o preço não segue.
o 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.
o Onde os sinais são capturados apenas se estiverem na mesma direção da tendência geral
dos preços.

1.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 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 O IFR rastreia os níveis de sobre compra e sobre venda, medindo a velocidade dos
movimentos de preços.
• Em outras palavras,
o O oscilador estocástico funciona melhor em períodos de tendência consistente.
o O IFR foi projetado para medir a velocidade dos movimentos de preços.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CCI
COMMODITY CHANNEL INDEX

1.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.

1.2 TIPO
• Indicador oscilador atrasado de momento baseado em preço.

1.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:
o

1.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.

Schiller
App.com/ProfitChart

Schiller
SchillerApp – Curso Programação ProfitChart
CONFIGURAÇÃO: Recomendado, 20 Períodos.

1.5 INTERPRETAÇÃO
• Muitos analistas também usam esse indicador para indicar mercados de sobre compra e venda
em excesso, bem como um oscilador.
o Cruzamentos acima da linha de sobre comprado indicam um mercado de sobre compra.
o 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.

1.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 Sinal de A posição deve ser fechada quando o
+100 tendência de ALTA COMPRA CCI voltar abaixo de +100.

Abaixo de - Entrando em uma forte Sinal de A posição deve ser fechada quando o
100 tendência de BAIXA VENDA CCI 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 - Sinal de que o preço está tentando Portanto possível


Positiva 100 retornar ao valor acima de -100 perna de ALTA.

Divergência Acima de Sinal de que o preço está tentando Portanto possível


Negativa +100 retornar ao valor abaixo de +100 perna de BAIXA.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.7 LIMITAÇÕES
• Embora seja frequentemente usado para detectar condições de sobre compra e sobre venda, o
CCI é altamente subjetivo a esse respeito.
• 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,
o Pois o preço pode já está em alta ou baixa e estar começando a corrigir.
o Tais incidentes são chamados de whipsaws;
• Um sinal é fornecido pelo indicador, mas o preço não segue.
o Se não houver cuidado, esses podem ocorrer com frequência.
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
OBV
ON-BALANCE VOLUME

1.1 OBJETIVO
• Indicador muito utilizado para refletir movimentos do mercado baseado no volume.
• Relacionar Preço e Volume.

1.2 TIPO
• Indicador baseado em volume.
Criado por: Joseph Granville.

1.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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.4 INTERPRETAÇÃO
• É importante focar na tendência ao usar OBV.
o Isso é mais importante que o valor real da medida OBV.
o 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 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;
o 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.
o Por exemplo, o dinheiro institucional pode aumentar o preço de um ativo e depois vendê-lo
depois que outros investidores entrarem na onda.

1.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.
o Portanto, pode ser equilibrado usando indicadores atrasados em conjunto.
o Adicione uma linha de média móvel ao OBV para procurar quebras de linha do OBV;
o 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.
o 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
RSI
RELATIVE STRENGTH INDEX

1.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.

1.2 TIPO
• Indicador oscilador de momento.

Criado por: J. Welles Wilder.

1.3 BÁSICO
• O RSI é classificado como um oscilador de momento, medindo a velocidade e magnitude dos
movimentos de preços direcionais.
o 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:
o 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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Os períodos de ALTA são caracterizados pelo fechamento ser maior que o fechamento anterior:

• Os períodos de BAIXA são caracterizados pelo fechamento ser menor que o fechamento anterior:

• Onde:
o

• 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:

o Onde:
o

• 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:

o Onde:
o

• 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
AROON LINE
RELATIVE STRENGTH INDEX

1.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.

1.2 TIPO

AROON UP Linha superior

AROON DOWN Linha Inferior

1.3 BÁSICO

i. Aroon Up
a. Mede quanto tempo se passou desde que o preço atingiu a maior máxima dentro de um
período.
𝑃 − 𝑃𝑒𝑟𝑖𝑑𝑜𝑠 𝑑𝑒𝑠𝑑𝑒 ú𝑙𝑡𝑖𝑚𝑎 𝑀á𝑥 𝑒𝑚 𝑃
𝐴𝑟𝑜𝑜𝑛𝑈𝑃 = ( ) × 100
𝑃
o Onde:
▪ 𝑃 = Período definido para o estudo.

ii. Aroon Down


a. Mede quanto tempo se passou desde que o preço atingiu a menor mínima dentro de um
período.
𝑃 − 𝑃𝑒𝑟𝑖𝑑𝑜𝑠 𝑑𝑒𝑠𝑑𝑒 ú𝑙𝑡𝑖𝑚𝑎 𝑀𝑖𝑛 𝑒𝑚 𝑃
𝐴𝑟𝑜𝑜𝑛𝐷𝑂𝑊𝑁 = ( ) × 100
𝑃
o Onde:
▪ 𝑃 = Período definido para o estudo.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.4 SINAIS

• As linhas retornam uma porcentagem;

i. 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).

ii. 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).

iii. Cruzamento das linhas


AROON cruza para AROON DOWN = Possível início de nova tendência de ALTA
CIMA
UP

AROON cruza para AROON UP = Possível início de nova tendência de BAIXA


CIMA
DOWN

1.5 INTERPRETAÇÃO

• A forma de interpretação abaixo deve ser considerada como uma sequência de eventos:

i. Cruzamento entre linhas (listado acima em 1.3)


o 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

ii. A linha que cruzou para cima atinge 100


• Uma nova tendência pode ter iniciado.

i. 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

i. As 2 linhas estão se movimentando em paralelo


• Possível período de consolidação.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
VOLUME
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.

1.1 OBJETIVO

• Usado para confirmar tendências e padrões gráficos.

1.2 TIPO

FINANCEIRO R$

QUANTIDADE nº de contratos negociados

NEGÓCIOS nº de negócios concretizados

1.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

1.4 FUNÇÕES E INDICADORES

Volume Série de Dados Funções

Financeiro Volume[0] VolumeD(0)


VolumeW(0)
VolumeM(0)
VolumeY(0)

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
VolumeOsc
VolumeROC
FinancialVol

Quantidade Quantidade[0] QuantityVol

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

VOLUME QUANTIDADE
𝑉𝑜𝑙𝑢𝑚𝑒 = 𝐴𝑔𝑔𝑟𝐶𝑂𝑀𝑃𝑅𝐴 + 𝐴𝑔𝑔𝑟𝑉𝐸𝑁𝐷𝐴

QUANTIDADE DE AGRESSÃO - SALDO


𝐴𝑔𝑔𝑟𝑆𝐴𝐿𝐷𝑂 = 𝐴𝑔𝑔𝑟𝐶𝑂𝑀𝑃𝑅𝐴 − 𝐴𝑔𝑔𝑟𝑉𝐸𝑁𝐷𝐴

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C10 - FUNÇÕES - BACK TEST
BACK TEST FERRAMENTA

• Ferramenta de Back Test


FUNÇÕES ALARME

2.1 GERENCIADOR DE ALARMES


• 3 Formas de adicionar alarmes
o Alertas de Rompimento no Gráfico;
o Gerenciador de Alarmes;
o Função Alert.

2.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;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
FUNÇÕES BACK-TESTING

3.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 melhor ou igual ao
delimitado.
Stop
• Ordem de disparo
• Uma ordem de stop-limit 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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
3.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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• Exemplo
• Histograma > Nova Janela
• BackTest - Fibonacci é a partir da entrada
• Custo Corretagem
• Exportar

var

vBBP : Real;
valorCorrigido : Real;
i : Inteiro;
vEntrada, vStop, vAlvo : Real;
Posicionado : Booleano;

Inicio

// Bandas de Bollinger - Com estratégia de Execução

vBBP := BollingerBPerc(2.00, 20, 0); // Perc = Percentual

valorCorrigido := (vBBP - 50) / 100;

Se ((vBBP <= 100) e (vBBP >= 0))


Entao SetPlotColor(1, clGray)
Senao SetPlotColor(1, clAqua);

Plot(valorCorrigido);

Se (Posicionado) entao
inicio

Se ((vEntrada > vStop) e ((Fechamento < vStop) ou (Fechamento >= (vEntrada + vAlvo)))) entao inicio
Posicionado := falso; ClosePosition; fim;
Se ((vEntrada < vStop) e ((Fechamento > vStop) ou (Fechamento <= (vEntrada - vAlvo)))) entao inicio
Posicionado := falso; ClosePosition; fim;

fim

Senao
inicio
Se (CurrentBar = i+1) entao
inicio
Se ((vEntrada > vStop) e (Fechamento >= vEntrada)) entao inicio Posicionado := verdadeiro;
BuyAtMarket; vAlvo := (Maxima-Minima)*1.61; fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Se ((vEntrada < vStop) e (Fechamento <= vEntrada)) entao inicio Posicionado := verdadeiro;
SellShortAtMarket; vAlvo := (Maxima-Minima)*1.61; fim;
fim
Senao
inicio
Se (vBBP > 100) entao
inicio
PaintBar(clAmarelo);
i := CurrentBar;
vEntrada := Maxima;
vStop := Minima;
fim
Senao Se (vBBP < 0) entao
inicio
PaintBar(clPurpura);
i := CurrentBar;
vEntrada := Minima;
vStop := Maxima;
fim
Senao i:=0;
fim;
fim;

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. BACKTEST COMPRA
var
vMACD : Real;
EstouComprado, EstouVendido : Booleano;
TemCompra, TemVenda : Booleano;
PosCompra : Inteiro;
PrecoCompra : Real;

Inicio

// Condição
vMACD := MACD(26, 12, 9)|1|;
TemCompra := (vMACD[1] < 0) e (vMACD[0] > 0);
TemVenda := (vMACD[1] > 0) e (vMACD[0] < 0);

// Posição
EstouComprado := IsBought;
EstouVendido := IsSold;

// Fechar Posição
Se (TemVenda) entao
inicio
PaintBar(clAzul);
SellToCoverAtMarket(1);
//SellToCoverLimit(4214, 1);
//SellToCoverStop(4208, 4208, 1);
//Se (EstouComprado) entao SendOrder(osSell, otMarket, 1, 0, 0);
//ClosePosition;
fim;

// Abrir Posição
Se (EstouComprado = falso) e (TemCompra) entao
inicio
PaintBar(clAmarelo);
//BuyAtMarket(1);
//BuyLimit(5643,1);
//BuyStop(5643, 5643, 1);
SendOrder(osBuy, otMarket, 1, 0, 0);
fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
{Só funciona no gráfico do Editor de Estratégias}

// BuyPosition - Retorna tamanho da posição de compra


PosCompra := BuyPosition;
Plot(PosCompra);

// BuyPrice - Retorna o preço da última compra


PrecoCompra := BuyPrice;
Plot2(PrecoCompra);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. BACKTEST VENDA
var

vMACD : Real;
EstouComprado, EstouVendido : Booleano;
TemCompra, TemVenda : Booleano;
PosVenda : Inteiro;
PrecoVenda : Real;

Inicio

// Condição
vMACD := MACD(26, 12, 9)|1|;;
TemCompra := (vMACD[1] < 0) e (vMACD[0] > 0);
TemVenda := (vMACD[1] > 0) e (vMACD[0] < 0);

// Posição
EstouComprado := IsBought;
EstouVendido := IsSold;

// ###### Ponta da Venda

// Fechar posição - caso exista


Se (TemCompra) entao
inicio
PaintBar(clAzul);
//BuyToCoverAtMarket(1);
//BuyToCoverLimit(Maxima, 1);
//BuyToCoverStop(Minima, Minima, 1);
//Se (EstouVendido) entao SendOrder(osBuy, otMarket, 1, Maxima, Maxima);
//ClosePosition;
fim;

// Abrir posição - caso não exista


Se (EstouVendido = falso) e (TemVenda) entao
inicio
PaintBar(clAmarelo);
SellShortAtMarket(1);
//SellShortLimit(Minima, 1);
//SellShortStop(Maxima, Maxima, 1);

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
//SendOrder(osSell, otMarket, 1, Maxima, Maxima);
fim;

{Só funciona no gráfico do Editor de Estratégias}

// SellPosition - Retorna tamanho da posição de venda


PosVenda := SellPosition;
Plot(PosVenda);

// SellPrice - Retorna o preço da última compra


PrecoVenda := SellPrice;
Plot2(PrecoVenda);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. BACKTEST OUTRAS
var
TemOrdemPendente : Booleano;

Inicio

// ##### Outras

// MyPrice
// (Máxima + Mínima + Fechamento) / 3
Plot(MyPrice);

TemOrdemPendente := HasPendingOrders;
Se (TemOrdemPendente) entao CancelPendingOrders;

// ReversePosition - Envia ordens para inverter todas as posições.


Se (Abertura < Fechamento) entao SellShortAtMarket
Senao Se (Abertura > Fechamento) entao ReversePosition;

// Se (Abertura < Fechamento) entao BuyAtMarket;


// ClosePosition - Envia ordens para encerrar todas as posições.
// Se (Abertura < Fechamento)
// entao BuyAtMarket;
// Se (BuyPosition >= 5) entao ClosePosition;

fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
C11 - FUNÇÕES - LIVRO
FUNÇÕES BACKTEST

1.1 LISTA DE FUNÇÕES


1. 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.

CODE F. LIVRO

var
vPrecoAsk, vTamanhoAsk : Real;
vPrecoBid, vTamanhoBid : Real;
vBookSpread : Real;
TesteBMF : Booleano;
vIncremento : Real;
vLote : Inteiro;

Inicio

//####################################################################

// AskPrice - Retorna o preço da melhor oferta de venda.


// vPrecoAsk := AskPrice;

// BidPrice - Retorna o preço da melhor oferta de compra.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// vPrecoBid := BidPrice;

// AskSize - Retorna a quantidade da melhor oferta de venda.


// Ferramentas > Livro de Ofertas
// vTamanhoAsk := AskSize;

// BidSize - Retorna a quantidade da melhor oferta de compra.


// Ferramentas > Livro de Ofertas
// vTamanhoBid := BidSize;

// MinPriceIncrement - Retorna o incremento mínimo do preço.


// Exemplo :
// Preços = 1 centavo
// Mini Contrato Indíce: 5 pontos
// Mini Dólar: 0.5 pontos
// vIncremento := MinPriceIncrement;

// BookSpread - Retorna a diferença entre Bid e Ask do livro.


// Spread = Ask - Bid
// Ferramentas > Livro de Ofertas > Gráfico
// vBookSpread := BookSpread;

// Lote - Retorna a quantidade mínima de ordem.


// Ações Lote Completo : 100
// Ações Lote Fracionário : 1
// Contrato Cheio (DOL/IND) : 5
// Contrato Mini (WDO/WIN) : 1
// vLote := Lote;

// IsBMF -
// Retorna verdadeiro se o ativo for da BMF,
// Retorna falso caso contrário.

// TesteBMF := IsBMF;
// Se (TesteBMF) entao Plot(99) Senao Plot(-3.14);

//####################################################################

Fim;

SchillerApp.com/ProfitChart

Você também pode gostar