Escolar Documentos
Profissional Documentos
Cultura Documentos
Aprenda A Desenvolver Seu Próprio Robô No MetaTrader 5 (MQL5) - v1.0
Aprenda A Desenvolver Seu Próprio Robô No MetaTrader 5 (MQL5) - v1.0
MetaTrader 5 (MQL5)
Junho de 2015
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Conteúdo
SEÇÃO 1 Introdução à Plataforma Metatrader 5 3
SEÇÃO 2 Ambiente 12
SEÇÃO 3 Noção Gráfica 19
SEÇÃO 3 MetaEditor: o IDE do MQL5 32
SEÇÃO 4 Apresentando a linguagem MQL5 40
SEÇÃO 5 Sintaxe 50
SEÇÃO 6 Tipos de Dados 56
SEÇÃO 7 Operações e expressões 63
SEÇÃO 8 Operadores 69
SEÇÃO 9 Variáveis 77
SEÇÃO 10 Arrays e matrizes 84
SEÇÃO 11 Funções 87
SEÇÃO 12 Referências 94
2
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Equipe
3
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Introdução à plataforma
MetaTrader 5
4
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Introdução
5
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Introdução
6
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Adquirindo a plataforma
Primeiro acesso
4
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
6
8
9
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
10
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Ambiente
13
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Janelas do Terminal
Janelas do Terminal
15
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Observação de Mercado
Testador de Estratégia
Noção gráfica
20
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Personalização
21
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Personalização
22
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Ferramentas analíticas
■ Os objetos são:
– Linhas (tendência, horizontal, etc)
– Ferramentas de Gann
– Ferramentas de Elliot
– Ferramentas de Fibonacci
26
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Ferramentas analíticas
■ Linhas
Fonte: http://www.mql5.com/en/charts/1630032/eurusd-h4-x-trade-brokers
27
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Ferramentas analíticas
■ Botões
Fonte: http://www.mql5.com/en/articles/749
28
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
30
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
31
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
MetaEditor: o IDE do
MQL5
33
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
O MetaEditor
34
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Criando um programa
35
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Criando um programa
36
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Criando um programa
37
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Criando um programa
38
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Criando um programa
39
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Outras funcionalidades
40
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Apresentando a linguagem
MQL5
41
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
O que é MQL5?
– Baseada em C/C++
42
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
E antes do MQL5?
43
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
– Eventos:
44
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Indicador:
– Programa que permite apresentar dados em forma gráfica,
que é conveniente para a análise
■ Indicador Customizado:
– É um indicador técnico escrito de forma independente, em
acréscimo aos já embutidos no terminal cliente
– Assim como os indicadores embutidos, os indicadores
customizados não podem negociar automaticamente,
estando limitados à implementação de funções analíticas
– Exemplos de indicadores (embutidos): média móvel, desvio
padrão, MACD, índice de força relativa e etc
45
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Script:
– É um código avulso destinado à execução de uma única
ação, disparada pelo evento de “start” de um EA ou
indicador
– Isso requer que a função de manipulação OnStart() esteja
presente no script
– Um exemplo de ações próprias de script:
46
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Library (biblioteca):
– Conjunto de funções customizadas destinado a armazenar e
distribuir blocos de programas customizados usados
frequentemente
– Bibliotecas (libraries) não podem começar uma execução
por si mesmas
47
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
48
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
49
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
50
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Sintaxe
51
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Sintaxe
52
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Comentários
/*
Comentário
de múltiplas // Comentário interno
linhas
*/
53
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Identificadores
54
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Identificadores
■ Recomendações
– Escolher um nome auto-explicativo e que explique o significado da
variável
– Não usar nomes sem sentido, como por exemplo a, b, c, i1, j99
– Evitar usar nomes comuns, como x e y para coordenadas, ou i para
índice.
■ Declaração de variáveis
55
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Identificadores
■ Palavras reservadas
bool const extern break false
enum private input do #define
struct protected static operator #property
char public case this
float virtual else #import
uchar return template
class continue true
int for #include
uint sizeof typename
color default
long if
ulong switch
datetime delete
short new
ushort while
double
string
void 56
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Tipos de dados
57
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Tipos de dados
– Texto: string
– Cor: color
– Enumeradores: enum
58
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
59
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Conversões possíveis:
int it = 10000;
long lo = it; // cast implicito (ok, int cabe em long)
int it2 = lo; // gera "warning" do compilador
int it3 = (int)lo; // cast explício (risco do programador)
60
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Estrutura:
– Palavra reservada: struct
■ Definição:
– Tipo de dados customizado composto por outros tipos
de dados (primitivos ou outras estruturas)
– É um tipo de dados heterogêneo
61
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
struct trade_conf
{
double take; // meta de lucro
double stop; // stop de proteção
uchar slippage; // slippage admissível
};
// cria e inicializa uma variável
// do tipo trade_conf
trade_conf tc = {0.0, 0.0, 5};
// mudando o valor de atributos
void teste(){// explicaremos funções em breve
tc.stop = 1.0;
tc.take = 2.0;
}
62
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Definição:
– A classe é uma estrutura de dados heterogênea que
suporta o conceito de orientação a objeto
– Orientação a objetos é uma forma de pensar (analisar e
projetar) e escrever (programar) sistemas de software
baseado na composição e interação entre diversas
unidades de software denominadas objetos
–A OO permite que os objetos (abstrações de
programação) se aproximem muito dos objetos do
mundo real
63
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações e expressões
64
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações e expressões
+ - * / % Operadores aritméticos
&& || Operadores lógicos
= += *= Operadores de atribuição
65
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações aritméticas
66
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações de atribuição
67
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações de relação
True se a é igual a b a == b;
True se a não é igual a b a != b;
True se a é menor que b a < b;
True se a é maior que b a > b;
True se a é menor ou igual a b a <= b;
True se a é maior ou igual a b a >= b;
68
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operações booleanas
AND &&
OR ||
NOT !
69
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operadores
70
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “return”
71
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “if-else”
72
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “switch”
73
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “while”
74
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “for”
75
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “break”
76
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Operador “continue”
77
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis
78
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis locais
int myFunction();
{
int retValue = 0;
return(retValue);
}
79
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis estáticas
int myFunction();
{
static int flag = 0;
return(flag);
}
80
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis globais
81
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis de entrada
82
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Variáveis de entrada
// Parâmetros de entrada
input int MA_Period = 13; // Smoothing period
input int MA_Shift = 0; // Line horizontal shift
input ENUM_MA_METHOD MA_Method = MODE_SMMA; // Smoothing method
83
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Inicialização de variáveis
int n = 1;
string s = “Hello !”;
double f[] = {0.0, 0.236, 0.382, 0.5, 0.618, 1.0};
int a[3][3] = {{1,1,1},{2,2,2},{3,3,3}};
int array[4] = {VAR1+VAR2,VAR2+VAR3,VAR3+VAR4,VAR4+VAR5};
// Inicialização de todos os campos da struct com valor 0
MqlTradeRequest request={0};
84
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Arrays e matrizes
85
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Arrays
86
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
87
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Funções
88
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
int myFunction();
{
static int flag = 0;
return(flag);
}
89
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
90
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
■ Exemplos
someFunc(); // Chamada incorreta
someFunc(9); // Chamada correta
someFunc(9,15); // Chamada correta
someFunc(9,15,45); // Chamada correta
someFunc(9, ,45); // Chamada incorreta
91
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Funções especiais
Ask()
Bid()
Bars()
Point()
Digits()
Time[]
Open[]
High[]
Low[]
Volume[]
OrderSend()
etc.
92
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Referências
93
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Contatos
contato@deltatrader.com.br
(27) 3026-3068
www.deltatrader.com.br
94
[yuanni] [printed: 03/14/05 17:59] [saved: 03/14/05 18:01] S:\intc\M&A\Projects\2005\Seth Conference\Merrill Corp Presentation_ppt.ppt
Referências
■ Referência http://www.mql5.com/pt/docs?source=terminal5_help_link.
95