Você está na página 1de 151

CURSO PROFITCHART

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
TABLE OF CONTENTS

C1 - Análise Técnica ............................................................................................................................................................... 11

Introdução 11

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

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

1.3 Características Importantes: .................................................................................................................................... 12

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

2.1 Três Suposições: ....................................................................................................................................................... 16

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

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

3.2 Tipos de Tendências ................................................................................................................................................. 18

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

3.4 LTA / LTB................................................................................................................................................................... 19

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 23

5.1 O que é Volume? ...................................................................................................................................................... 23

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

5.3 Interpretando o Volume ..........................................................................................................................................24

Padrões Gráficos ................................................................................................................................................................. 24

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

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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
6.3 Atenção .................................................................................................................................................................... 25

6.4 Reversão e Continuação ........................................................................................................................................... 25

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

Xícara 27

Topos e Fundos Duplos ...................................................................................................................................................... 28

Triângulos 29

Bandeiras, Flâmulas, Cunha ............................................................................................................................................... 30

11.1 Bandeiras e Flâmulas............................................................................................................................................. 30

11.2 Cunha .................................................................................................................................................................... 30

Gaps 31

C2 - Indicadores 32

Conceitos 32

1.1 Introdução ................................................................................................................................................................ 32

1.2 Tipos de Indicadores ................................................................................................................................................33

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

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

1.5 Sinais ........................................................................................................................................................................ 37

1.6 Tipos de Indicadores ............................................................................................................................................... 39

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

Ferramenta 41

1.1 Nelogica ProfitChart ................................................................................................................................................. 41

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.2 Programação no ProfitChart .................................................................................................................................... 41

1.3 Ambiente de Trabalho ..............................................................................................................................................42

Lógica de Programação ...................................................................................................................................................... 42

2.1 INTRODUÇÃO ...........................................................................................................................................................42

2.2 Palavras reservadas ..................................................................................................................................................42

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

2.4 Depuração ............................................................................................................................................................... 43

2.5 Variáveis .................................................................................................................................................................. 43

2.6 Parâmetros .............................................................................................................................................................. 44

2.7 Séries de Dados ....................................................................................................................................................... 46

2.8 Operadores ............................................................................................................................................................. 46

2.9 Controles de Fluxo................................................................................................................................................... 49

2.10 Operadores Lógicos ................................................................................................................................................55

2.11 Funções ................................................................................................................................................................. 56

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

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

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

1.2 Propriedades Gráficas ............................................................................................................................................. 62

1.3 Material de Suporte ................................................................................................................................................ 64

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

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

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

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

Code F. Gráficas Index .........................................................................................................................................................67

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Code F. Gráficas Preço ........................................................................................................................................................ 68

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

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

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

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

Code F. Matemática ............................................................................................................................................................. 73

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

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

1.1 Format EasyLanguage .............................................................................................................................................. 77

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

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

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

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

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

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

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

Code F. Calendário .............................................................................................................................................................. 82

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

Funções de Candle ...............................................................................................................................................................87

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

1.2 C_Doji ...................................................................................................................................................................... 87

1.3 C_ShootingStar ........................................................................................................................................................ 88

1.4 C_3WhSolds_3BlkCrows.......................................................................................................................................... 89

1.5 C_BullEng_BearEng ................................................................................................................................................. 90

1.6 C_Hammer_HangingMan ......................................................................................................................................... 91

1.7 C_MornDoji_EveDoji ............................................................................................................................................... 92

1.8 C_MornStar_EveStar ............................................................................................................................................... 93

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.9 C_PierceLine_DkCloud ............................................................................................................................................ 94

1.10 C_InsideBar ........................................................................................................................................................... 95

Code F. Candlestick ............................................................................................................................................................. 96

C8 - Setup - Barra Rejeitada ................................................................................................................................................ 101

O Setup - Barra Rejeitada ................................................................................................................................................... 101

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

1.2 Barra Rejeitada ........................................................................................................................................................101

1.3 Cenário do Mercado ................................................................................................................................................101

1.4 Entrada ....................................................................................................................................................................101

1.5 Stop .........................................................................................................................................................................101

1.6 Alvo .........................................................................................................................................................................101

1.7 'Respiro' ...................................................................................................................................................................101

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

2.2 Na Ponta da Compra .............................................................................................................................................. 102

2.3 Na Ponta da Venda ................................................................................................................................................. 102

Condições Barra Rejeitada ................................................................................................................................................ 102

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

3.2 Na Ponta da Compra .............................................................................................................................................. 102

3.3 Na Ponta da Venda ................................................................................................................................................. 102

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

Code B.R. Plotagem ........................................................................................................................................................... 105

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

Médias Móveis 108

MACD 109

Acumulação Distribuição.................................................................................................................................................... 110

Índice Direcional Médio...................................................................................................................................................... 111

Estocástico 112

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

OBV 114

RSI 115

Bandas de Bollinger ............................................................................................................................................................ 116

Médias Móveis 117

1.1 Objetivo ................................................................................................................................................................... 117

1.2 Uso .......................................................................................................................................................................... 117

1.3 Tipo.......................................................................................................................................................................... 117

1.4 Básico ...................................................................................................................................................................... 117

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

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

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

1.6 Interpretação ......................................................................................................................................................... 120

1.7 Sinais ...................................................................................................................................................................... 120

Moving Average Convergence Divergence ...................................................................................................................... 121

1.1 Objetivo ................................................................................................................................................................... 121

1.2 Uso .......................................................................................................................................................................... 121

1.3 Tipo.......................................................................................................................................................................... 121

1.4 Básico ...................................................................................................................................................................... 121

1.5 Períodos ................................................................................................................................................................. 122

1.6 Interpretação ......................................................................................................................................................... 122

1.7 Cruzamentos .......................................................................................................................................................... 122

1.8 Divergências ........................................................................................................................................................... 123

1.9 Falsos Sinais ............................................................................................................................................................ 124

1.10 Limitações ............................................................................................................................................................ 124

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

1.1 Objetivo .................................................................................................................................................................. 126

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.2 Uso ......................................................................................................................................................................... 126

1.3 Tipo......................................................................................................................................................................... 126

1.4 O AD vs WAD .......................................................................................................................................................... 126

1.5 Básico ..................................................................................................................................................................... 126

1.6 Interpretação ......................................................................................................................................................... 127

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

1.1 Objetivo .................................................................................................................................................................. 128

1.2 Uso ......................................................................................................................................................................... 128

1.3 Tipo......................................................................................................................................................................... 128

1.4 O ADX utiliza ........................................................................................................................................................... 128

1.5 Básico ..................................................................................................................................................................... 128

1.6 Interpretação ......................................................................................................................................................... 128

1.7 Sinais ...................................................................................................................................................................... 128

Oscilador Estocástico ........................................................................................................................................................ 129

1.1 Objetivo .................................................................................................................................................................. 129

1.2 Tipo......................................................................................................................................................................... 129

1.3 Básico ..................................................................................................................................................................... 129

1.4 Linhas Estocástico .................................................................................................................................................. 130

1.5 Interpretação ......................................................................................................................................................... 130

1.6 Sinais ...................................................................................................................................................................... 130

1.7 Limitações ............................................................................................................................................................... 131

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

Commodity Channel Index ................................................................................................................................................ 132

1.1 Objetivo .................................................................................................................................................................. 132

1.2 Tipo......................................................................................................................................................................... 132

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.3 Básico ..................................................................................................................................................................... 132

1.4 Dimensionamento .................................................................................................................................................. 132

1.5 Interpretação ......................................................................................................................................................... 133

1.6 Sinais ...................................................................................................................................................................... 133

1.7 Limitações .............................................................................................................................................................. 134

On-Balance Volume............................................................................................................................................................ 135

1.1 Objetivo .................................................................................................................................................................. 135

1.2 Tipo......................................................................................................................................................................... 135

1.3 Básico ..................................................................................................................................................................... 135

1.4 Interpretação ......................................................................................................................................................... 136

1.5 Limitações .............................................................................................................................................................. 136

Relative Strength Index..................................................................................................................................................... 137

1.1 Objetivo .................................................................................................................................................................. 137

1.2 Tipo......................................................................................................................................................................... 137

1.3 Básico ..................................................................................................................................................................... 137

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

Back Test Ferramenta ........................................................................................................................................................ 139

Funções Alarme 139

2.1 Gerenciador de Alarmes......................................................................................................................................... 139

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

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

3.1 Tipos de Ordens ..................................................................................................................................................... 140

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

Code F. BackTest Compra .................................................................................................................................................. 144

Code F. BackTest Venda..................................................................................................................................................... 146

Code F. BackTest Outras .................................................................................................................................................... 148

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

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

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

Code F. Livro 149

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

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

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

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

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

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

• Caminho das Pedras:


o Traduzir um Setup em regra de coloração com adendo de plotagem.
• 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.
o 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.
o 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.
o 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:
1. 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

2. Escala 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
iii. 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.

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

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.

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

• 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 ALTA Classificada como uma série de (preços) máximas e mínimas mais altas que as anteriores.

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

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

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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 traders a antecipar o ponto em que o preço de uma ação
começará a subir novamente.
• 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).
• 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.

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

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.

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

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.

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

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 O triângulo simétrico é um padrão no qual duas linhas de tendência convergem uma para a outra.
o Esse padrão é neutro, pois pode romper para cima ou para baixo.
o Esse rompimento serve como uma confirmação de uma tendência nessa direção.

• O triângulo ascendente,
o A linha de tendência superior é plana, enquanto a linha de tendência inferior é inclinada para cima.
o Isso geralmente é considerado um padrão de alta no qual os investidores procuram uma fuga positiva.

• O triângulo descendente,
o A linha de tendência inferior é plana e a linha de tendência superior é descendente.
o 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.
• Pensa-se que os padrões durem de uma a três semanas.

• 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.
• A outra diferença é que as cunhas tendem a se formar por períodos mais longos, geralmente entre três e seis
meses.

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

• Essa informação é importante pra nos ajudar a interpretar os sinais que um indicador está tentando nos dar.

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

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.

• No caso do Estocástico, essa variação demonstra áreas em que o preço é considerado:

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.
• 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 HORIZONTAL Eixo X Tempo

LINHA VERTICAL Eixo Y Preço/Pontos

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


• 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.
Por exemplo
o No indicador de linha - Um ponto no eixo X - é uma data específica: 12 de março de 2020.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
o No indicador histograma, Uma barra no eixo X representa um limite - : de 12 de março a 13 de março de
2020.

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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.6 TIPOS DE INDICADORES
Os tipos de indicadores mais usados e suas classificações:

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.

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.

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


1. 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).
2. 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).
3. 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.
** O Back Test é limitado, ordens são executadas no fechamento da barra/candle/vela, isso pode criar falsos
resultados.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
1.3 AMBIENTE DE TRABALHO
1. Desktops
2. Layouts
3. Barra de Estudos
4. 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.

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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.
o Break-Point - Função auxiliar
• Seleciona a linha de código para iniciar teste - marcada com um círculo vermelho.

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

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

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.

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

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'


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


• 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.
• Esses dados são chamados parâmetros da função.
• A função pode retornar um certo valor, que é chamado valor de retorno.
• Os parâmetros (e seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de
retorno.

função 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
vBandaInferior := vBandaMedia - (Desvio * vDesvioPadrao);

// Plotar
Plot(vBandaSuperior);

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

1. PaintBar
o Função para regra de coloração,
o Pode atribuir cores a candles/barras e a indicadores.

2. Plot
o Função para plotagem,
o 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,
o Por tanto, plotar um gráfico, seja com linhas ou histogramas, nada mais é que marcar pontos num gráfico, e
é exatamente isso que a função Plot faz.

• Coordenadas
o Todo ponto num gráfico de eixo X e Y, possui 2 coordenadas,
• Uma para eixo X
• Uma para eixo Y

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

• Parâmetros
o SetPlotColor(number, color)
• number: Um número inteiro de 1 a 4, sendo então o número da linha.

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

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• 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
o Gráfico
• Fundo do Gráfico
o Candles/Barra
o Indicadores
o 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

i. 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
// iVal := CurrentBar;
// Se (LastBarOnChart) entao PaintBar(clAmarelo);

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

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

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]
// rVal := (Abertura + Fechamento) / 2; // Midpoint
// Plot(rVal);
// Se (Leader = 0) entao paintbar(clpurpura);
// Se (Leader = 1) entao paintbar(clazul);

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

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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// rVal := Square(3); // 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
// 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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Highest
// Maior valor em um período
// Pode ser Série de Dados ou Indicador
// rVal := Highest(Minima, 2);

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

// 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,12);

// 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,12);

// MidPoint - Ponto médio de um preço


// rVal := (Abertura + Fechamento) / 2; // De um candle
// rVal := (Máxima + Máxima) / 2; // De um preço
// Pode ser Série de Dados ou Indicador
// rVal := MidPoint(Maxima, 4);

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

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

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


// Determinar probabilidade da continuação do movimento atual
// rVal := VolumeRoc(3);

// UlcerIndex
// Estuda o nível de stress do mercado
// rVal := UlcerIndex(Fechamento, 3);

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

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

// Summation - Acumula somas de uma série de dados


// rVal := Fechamento[0] + Fechamento[1];
// rVal := Summation(Fechamento, 2);

// StdDevs - Standard Deviation - Desvio Padrão


// rVal := StdDevs(Fechamento, 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, 2));
// Plot2(rVal);

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


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

// Geométricas
// Arctangent // Retorna o arco-tangente de um número em graus
// 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)
// Cosine // Retorna o cosseno 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

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]

Monday Retorna 1 para Segunda-Feira.

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

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

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

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.

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.

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

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

// BarType // Retorna a periodicidade da Barra


// 0 = TickBar
// 1 = Intraday

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

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

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

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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// 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:
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 (Porcentagem) 5 Limite do Doji para (Abertura - Fechamento) como uma 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:
O corpo do candle é pequeno, porém não é Doji.
O candle é de alta.
O candle está acima do candle anterior.
O candle anterior é de alta e maior que o candle médio.

• Parâmetros:

Nome Padrão Descrição

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

Factor (Fator) 2 Fator de limite para o tamanho do corpo em relação a amplitude da


barra,

Ex: 2 = Sombra deve ser 2x maior que o corpo da barra

Estrela Cadente

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

• Definição - 3 Soldados Brancos:


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

• Definição - 3 Corvos Negros:


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

• Parâmetros:

Nome Padrão Descrição

Length (Comprimento) 14 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:
o Bullish Engulfing - Engolfo de Alta (Touro)
o Bearish Engulfing - Engolfo de Baixa (Urso)

• Definição - Engolfo de Alta:


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

• Definição - Engolfo de Baixa:


O corpo de um candle vermelho é maior e envolve a abertura e o fechamento de um candle verde
anterior.
A tendência é de alta.
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:
o Hammer (Martelo)
o Hanging Man (Homem Enforcado)

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

• Definição - Homem Enforcado:


O corpo do candle está na metade superior do candle e a sombra geralmente tem o dobro do
comprimento do corpo.
A tendência é de alta.
Pode ser candle vermelho ou verde, mas não um Doji.

• O Martelo pode ser considerado um padrão Bullish (Touro) de reversão de ALTA que precisa de confirmação.
• O Homem Enforcado pode ser considerado um padrão Bearish (Urso) de reversão de BAIXA que precisa de
confirmação.

• Parâmetros:

Nome Padrão Descrição

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

Factor (Fator) 2 Fator de limite para o tamanho do corpo em relação a amplitude da


barra. Ex: 2 = Sombra deve ser 2x maior que o corpo da barra

Martelo Homem Enforcado

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

• Definição - Doji da Manhã:


o Um padrão de três candles:
O primeiro é um longo candle vermelho,
Seguido por um candle Doji que se forma abaixo,
O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
o 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:
O primeiro é um longo candle barra verde,
Seguida por um candle Doji que se forma acima,
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:
O primeiro é um longa candle vermelho,
Seguido por um candle de corpo pequeno que se forma abaixo,
O terceiro é um candle verde que se fecha no corpo dos primeiros candles.
o 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:
O primeiro é um longo candle verde,
Seguido por um candle de corpo pequeno que se forma acima,
O terceiro é um candle vermelho que se fecha no corpo dos primeiros candles.
o 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(5);
// 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
// 2. O candle é está em uma alta
// 3. O candle está acima do candle anterior
// 4. O candle anterior é de alta e maior que o candle médio
// iVal := C_ShootingStar(14 ,2);
// Se (iVal = 1) entao PaintBar(clAmarelo);

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

// C_3WhSolds_3BlkCrows

// Identifica 2 tipos de candle:

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// - 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. As 3 linhas devem fechar próximo as 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. As 3 linhas devem fechar próximo as mínimas
// 3. Abertura do segundo e terceiro candle deve estar 'dentro'
// do corpo do candle anterior

// iVal := C_3WhSolds_3BlkCrows(14, 5, 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 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);

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

// 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.
// 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 das primeiras barras.
// 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,

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Seguida por uma barra Doji que se forma acima,
// A terceira é uma barra vermelha que se fecha no corpo das primeiras barras.
// 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, 5, oMorningDojiStar, oEveningDojiStar);


// 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 primeiro é 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 das primeiras barras.
// 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 das primeiras barras.
// 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

// Identifica 2 tipos de barras:

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

// Plot(iVal);
// 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.

2. 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
PaintBar(clVerde); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 2;
fim

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


Se ( (Fechamento > Abertura) e (sab < (cp0 * RazaoSombraBarraIgnicao)) e (sbb < (cp0
* RazaoSombraBarraIgnicao)) ) entao
inicio
PaintBar(clVerde); BarraIgnicaoIndex := CurrentBar; TipoBarraIgnicao := 2;
fim

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

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

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

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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);
// Series de Dados - Preco(Fechamento)
Exponencial(Verdadeiro);

var

vValor : Real;
vValor2 : Real;

Inicio

// Médias Móveis

// Media - Média Móvel Simples (Aritimética)


// MediaExp - Média Móvel Exponencial

Se (Exponencial) entao
inicio
vValor := MediaExp(MediaLonga, Fechamento); // MM Lenta
vValor2 := MediaExp(MediaCurta, Fechamento); // MM Rápida
fim
Senao
inicio
vValor := Media(21, Fechamento); // MM Lenta
vValor2 := Media(9, Fechamento); // MM Rápida
fim;

Plot(vValor);
Plot2(vValor2);

Se (vValor2 > vValor) entao SetPlotColor(2, clLime) Senao SetPlotColor(2, clAmarelo);

Fim;

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 (vHistograma > 0) entao SetPlotColor(3, clLime) Senao SetPlotColor(3, clVermelho);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ACUMULAÇÃO DISTRIBUIÇÃ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

• 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|; // diferente de [0]


vDiN := DiPDiM(Periodo)|1|; // diferente de [1]

Plot(vADX);
Plot2(vDiP);
Plot3(vDiN);

Se (vDiP > vDiN) entao SetPlotColor(1, clLime) Senao SetPlotColor(1, clVermelho);

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
ESTOCÁSTICO

• Funções
o SlowStochastic
o FastStochastic
o FullStochastic
o SlowK
o FastD
o FastK

var

vSSt : Real;
vFSt : Real;
vFullSt : Real;
vSK : Real;
vFD : Real;
vFK : Real;

Inicio

// Estocástico
vFSt := FastStochastic(8);
vSSt := SlowStochastic(8);
vFullSt := FullStochastic(8);

vSK := SlowK(8);
vFD := FastD(8);
vFK := FastK(8);

Fim;

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

• 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

• Funções
o OBV
o OBVAvg

var

vOBV : Real;
vOBVAvg : Real;

Inicio

// OBV

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

Plot(vOBV);
Plot2(vOBVAvg);

Fim;

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

• 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

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

o Onde:

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:

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:

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

Criado por: Gerald Appel

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 Sinal MME de 9 períodos da diferença entre o dois.

CONFIGURAÇÃO: Recomendado, MACD (26,12,9).

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,

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
Quando as linhas Não há diferença entre Graficamente isso Uma barra de valor 0 no
cruzam elas significa Histograma.

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 Histograma diminuindo sugere que um cruzamento pode estar se aproximando.

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

Cruzamento entre Linha MACD e 0


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 Positiva entre MACD e o Surge quando o preço atinge um novo nível mais baixo, mas o
Preço MACD não.

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

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

Divergência Negativa Isso é interpretado como pessimista, sugerindo que os recentes aumentos 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 por Novos níveis altos de Considerado um indicativo de
preços histograma BAIXA.

Níveis baixos de Não confirmados por Novos níveis baixos de Considerado um indicativo de
preços histograma 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 positivo Um cruzamento de alta seguido por um repentino declínio em uma ação.

Falso negativo Uma situação em que não houvesse cruzamento de alta, mas o preço acelerara
subitamente.

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

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

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

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• 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:
o A divergência entre médias não terá uma tendência para apontar.
• Em um mercado irregular:
o 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
o 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 subindo = Acumulação - possivelmente precedendo tendência de Alta.

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

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

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

• Atento a divergências dos preços com a linha de acumulação/distribuição.

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

1.7 SINAIS
• Atento a cruzamentos entre +DI & -DI & Atento a linha ADX

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

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

o No caso de uma tendência de BAIXA


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

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.

Criado por: Donald Lambert

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:

o Onde:

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.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
• A porcentagem de valores de CCI que caem entre +100 e -100 dependerá do número de períodos usados.
Período curto CCI mais volátil = Menor porcentagem de resultados entre +100 e -100.

Período longo CCI menos volátil = Maior porcentagem de resultados entre +100 e -100.

CONFIGURAÇÃO: Recomendado, 20 Períodos.

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 CCI
+100 tendência de ALTA COMPRA voltar abaixo de +100.

Abaixo de - Entrando em uma forte Sinal de VENDA A posição deve ser fechada quando o CCI
100 tendência de BAIXA voltar acima de -100.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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 retornar ao Portanto possível perna
Positiva 100 valor acima de -100 de ALTA.

Divergência Acima de Sinal de que o preço está tentando retornar ao Portanto possível perna
Negativa +100 valor abaixo de +100 de BAIXA.

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
o Indicador muito utilizado para refletir movimentos do mercado baseado no volume.
o Relacionar Preço e Volume.

1.2 TIPO
o Indicador baseado em volume.

Criado por: Joseph Granville.

1.3 BÁSICO
o 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 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:

o Onde:

• Se o último fechamento for o mesmo que o anterior, U e D serão zero.


• As médias U e D são calculadas usando uma média móvel exponencial de período n (MME).
• A proporção dessas médias é a força relativa:

o Onde:

• Se a média dos valores de D for zero, o valor do RSI é definido como 100.
• A Força Relativa é então convertida em um Índice de Força Relativa entre 0 e 100:

o Onde:

• As médias móveis exponenciais devem ser adequadamente inicializadas com médias simples, usando os
primeiros n valores da série de preços.

CONFIGURAÇÃO: Recomendado, 14 Períodos.

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.

SellToCoverLimit Enviar uma ordem limite de venda para fechar posição.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
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;
Se ((vEntrada < vStop) e (Fechamento <= vEntrada)) entao inicio Posicionado :=
verdadeiro; SellShortAtMarket; vAlvo := (Maxima-Minima)*1.61; fim;
fim
Senao

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

CODE F. BACKTEST COMPRA


var
i : Inteiro;
EstamosPosicionados : Booleano;
TamanhoPosicao : Inteiro;
UltimoPrecoCompra : Real;

Inicio

//#####################################################################################
#########
i := CurrentBar;
// PaintBar(clAmarelo);
//#####################################################################################
#########

//#####################################################################################
#########
// Ordens Sell To Cover - São executadas apenas se houver posição aberta
// ------------------------------------------------------------------------------------
---------
//
// SellToCoverAtMarket - Realiza uma ordem de venda à mercado CASO EXISTA uma posição
de compra.
// Se (Abertura > Fechamento) entao
// SellToCoverAtMarket;
//

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// SellToCoverLimit - Enviar uma ordem limite de venda para fechar posição.
// Se (Fechamento > Abertura) entao
// SellToCoverLimit(Maxima);
//
// SellToCoverStop - Envia uma ordem stop caso exista uma posição de compra.
// SellToCoverStop(Minima, Minima);
//
//#####################################################################################
#########

//#####################################################################################
#########
// Ordens Buy - Ordens de compra para abrir posição
// Note que as entradas acontecem no Candle seguinte ao do nosso sinal.
// ------------------------------------------------------------------------------------
---------
//
// BuyAtMarket - Envia uma ordem a mercado.
// Se (Fechamento > Abertura)
// entao BuyAtMarket;
//
// BuyLimit - Envia uma ordem limite de compra.
// Se (Fechamento > Abertura)
// entao BuyLimit(Minima);
//
// BuyStop - Realiza envio de ordem de compra stop.
// Se (Fechamento > Abertura)
// entao BuyStop(Minima, Minima);
// entao BuyStop(Maxima, Minima);
//
//#####################################################################################
#########

//#####################################################################################
#########
//
// IsBought - Retorna verdadeiro caso o cliente esteja posicionado na compra.
EstamosPosicionados := IsBought;
//
// BuyPosition - Retorna o tamanho da posição de compra.
TamanhoPosicao := BuyPosition;
//
// BuyPrice - Retorna o valor da última operação de compra.
UltimoPrecoCompra := BuyPrice;
//
//#####################################################################################
#########

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. BACKTEST VENDA
var
i : Inteiro;
EstamosPosicionados : Booleano;
TamanhoPosicao : Inteiro;
UltimoPrecoVenda : Real;

Inicio

//#####################################################################################
#########
i := CurrentBar;
//#####################################################################################
#########

//#####################################################################################
#########
// Ordens Buy To Cover - São executadas apenas se houver posição aberta
// ------------------------------------------------------------------------------------
---------
//
// BuyToCoverAtMarket - Realiza o fechamento de uma operação de venda.
// Se (Fechamento > Abertura) entao
// BuyToCoverAtMarket;
//
// BuyToCoverLimit - Envia uma ordem de compra limite para fechar uma posição.
// BuyToCoverLimit(Minima);
//
// BuyToCoverStop - Realiza o envio de ordem de compra stop para fechar posição.
// BuyToCoverStop(Maxima, Maxima);
//
//#####################################################################################
#########

//#####################################################################################
#########
// Ordens Sell - Ordens de venda pra para abrir posição
// Note que as entradas acontecem no Candle seguinte ao do nosso sinal.
// ------------------------------------------------------------------------------------
---------
//
// SellShortAtMarket - Envia ordem de venda à mercado para abrir posição.
// Se (Abertura > Fechamento)
// entao SellShortAtMarket;
//
// SellShortLimit - Envia uma ordem limite de venda.
// Se (Abertura > Fechamento)
// entao SellShortLimit(Fechamento);
//
// SellShortStop - Abre uma posição de venda enviando uma ordem do tipo Stop.

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
// Se (Abertura > Fechamento)
// entao SellShortStop(Minima, Minima);
// entao SellShortStop(Minima, Maxima);
//
//#####################################################################################
#########

//#####################################################################################
#########
//
// IsSold - Retorna verdadeiro caso o cliente esteja posicionado na venda.
// EstamosPosicionados := IsSold;
//
// SellPosition - Retorna o tamanho da posição de venda.
// TamanhoPosicao := SellPosition;
//
// SellPrice - Retorna o valor da última operação de venda.
// UltimoPrecoVenda := SellPrice;
//
//#####################################################################################
#########

Fim;

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
CODE F. BACKTEST OUTRAS
var
i : Inteiro;
TemOrdemPendente : Booleano;
Preco : Real;

Inicio

//#####################################################################################
#########
i := CurrentBar;
// PaintBar(clAmarelo);
//#####################################################################################
#########

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

// ReversePosition - Envia ordens para inverter todas as posições.


// Se (Abertura < Fechamento)
// entao SellShortAtMarket
// Senao Se (Abertura > Fechamento)
// entao ReversePosition;

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

// MyPrice - Retorna a média entre, a máxima, a mínima e o fechamento.


// MyPrice : (Maxima + Minima + Fechamento) / 3
// Preco := MyPrice;
// Plot(MyPrice);

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

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


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

// AskSize - Retorna a quantidade da melhor oferta de venda.


// Ferramentas > Livro de Ofertas

SchillerApp.com/ProfitChart
SchillerApp – Curso Programação ProfitChart
vTamanhoAsk := AskSize;

// BidPrice - Retorna o preço da melhor oferta de compra.


vPrecoBid := BidPrice;

// BidSize - Retorna a quantidade da melhor oferta de compra.


// Ferramentas > Livro de Ofertas
vTamanhoBid := BidSize;

// BookSpread - Retorna a diferença entre o topo do livro.


// Spread = Bid - Ask
// Ferramentas > Livro de Ofertas > Gráfico
vBookSpread := BookSpread;

// IsBMF - Retorna verdadeiro se o ativo for da BMF, retorna falso caso contrário.
TesteBMF := IsBMF;

// Lote - Retorna a quantidade mínima de ordem.


// Lote completo 100 / Mercado Fracionário : 1
// vLote := Lote;

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

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

// Se (TesteBMF) entao Plot(1) Senao Plot(0);


Plot(vPrecoAsk);

Fim;

SchillerApp.com/ProfitChart

Você também pode gostar