fala pessoal tudo bom Como prometido Chegou o grande dia do metatrader 5 né você que tava aqui esperando poder começar programar no metatrader 5 Finalmente chegou a hora vai ser um vídeo profundo né complexo Talvez para alguns mas eu garanto que vocês não vão se arrepender a ideia aqui vai ser começar com o código mais simples com as funcionalidades básicas para quem já vem do Profit eu vou sempre estar fazendo um paralelo né do ntl pro metatrader 5 acho que isso Vai facilitar um pouco o seu aprendizado depois de uma série de vídeos o meu
objetivo é fazer com que a gente replique aquele código quando eu falo replicar não é copiar e colar porque não vai funcionar né o mundo do metatrader 5 é muito diferente vocês vão entender isso daqui a pouco mas o objetivo é a gente criar né o gradiente linear no metatrader E por que que eu insisto no Gradiente linear porque é uma estratégia que envolve quando eu falo estratégia é um algoritmo certo eu vou tentar evitar usar a palavra estratégia porque estratégia vem de setup enfim não é isso que eu tô querendo fazer aqui é um
algoritmo que ele traz diversos conceitos né dentro conceitos de de Loop de lógica condicional se se não eu acho que ele cobre bem o espectro de de programação dessas linguagens vai ter uma outra coisa que a gente não vai ver mas é um é um algoritmo que dá pra gente né se aprofundar e você entendendo ele é o começo para que você realmente expanda seus horizontes e crie diversos outros algoritmos para você implementar nas suas estratégias nos teus setups de automação eu vou fazer tentar aqui em 5 minutos talvez menos resumir como é que é
o passo a passo do do metatrader certo ele geralmente tá de graça nas corretoras é quase quase todas corretoras acredito eu disponibilizam o metatrader Diferentemente do Profit a condição de você ter uma conta demo ou não ela é separada no Profit qualquer conta que você tenha no Profit automaticamente você recebe um simulador no met Trader é diferente certo então por exemplo tem corretora que não te cobra para ter o metatrader 5 para operar em conta real mas te cobra para ter o simulador Se não me engano salva memória a Clear faz isso certo vai no
menu da sua corretora procura pela parte de plataforma procura metatrader 5 dá uma lida lá né no regulamento de utilização etc para você não ter cobrança Surpresa porque o pessoal fala ah é grátis é grátis é grátis mas assim se a corretora quiser cobrar ela vai cobrar e outra coisa Não esperem por muito suporte do metatrader sim né o pessoal não costuma dar suporte No entanto quando você tem um problema o log dele né que ele chama de Journal é muito completo Então vai ter tudo ali é muito fácil pra corretora identificar onde é que
deu problema e etc entendeu é o que de certa forma traz uma segurança passar essa fase eu vou mostrar minha tela aqui para vocês e eu vou explicar mais ou menos como é que configura a conta mas é mais ou menos mesmo certo o objetivo daqui a gente já começar pro código senão o v vai ficar com 200 minutos vamos aqui pra minha tela ó aqui é a carinha dele e é uma plataforma que para você utilizar ela para fazer operação Eu particularmente não gosto né basicamente você tem esse botão aqui de compra e venda
você clica com o botão direito aqui ó vem no trading aqui e etc Ela não ela não te dá muitas facilidades certo aqui você vê né eu já tava testando aqui um Gradiente esse são os pontos de entrada e de saída com uma banda de bollinger plotado aqui na tela ela tem a parte de indicadores aqui ó lista de indicadores objetos para você adicionar enfim é um negócio é um mundo universo bem diferente certo assim que você recebe a plataforma é muito provável que você veja talvez essa tela aqui se não essa tela aqui você
vai ver dois gráficos um do lado do outro mas vocês provavelmente sempre vai ter essa janelinha aqui do navegador beleza aqui no navegador Você vai vir accounts né ou contas depende da sua instalação eu mais uma vez reforço né recomendo a gente sempre utilizar as coisas em inglês porque de quebra você aprende uma segunda língua né então você vai aqui ó no open an account Muito provavelmente o seu metatrader não vai vir com isso aqui ó esse aqui pode ser que esteja em branco então basta você digitar aqui ó por exemplo XP né e procurar
find your Company e deixa eu ver se tem aqui por exemplo B BTG ver se ele acha alguma coisa ó ele não achou no caso mas assim a corretora ela vai te dar um link do metatrader ela vai te passar as instruções você coloca aqui se você não encontrar a empresa aqui utilizando só o nome dela você copia aqui o endereço que ela vai te passar e quando você copia copar automaticamente vai vai funcionar Beleza então aqui ó vamos supor que eu vou vai usar a XP inclusive é que eu tô utilizando aqui a conta
demo certo você vai em avançar ele vai te passar um login uma senha e você vai escolher se você quer produção ou demo demo é de demonstração né que é onde você é basicamente a simulação você escolhe se você quer produção né que é conta real ou conta de demonstração E aí manda concluir quando você concluir vai aparecer aqui do lado belezinha então aqui ó eu tô conectado com a minha conta demonstração Então esse é o básico certo esse é o básico do do metatrader 5 bem superficialmente o objetivo não é ensinar esse esse step
Inicial mas sim e mostrar a programação como é que é diferente onde é que fica a parte de programação dele ó você vem bem aqui ó em ide ele vai abrir o meta codes né por isso que é mkl meta codes language editor pode apertar o F4 também se você não tiver mudado as teclas de atalho então ó cliquei aqui ele abriu aqui essa janela a ide e ele vai vir um monte de diretório aqui ó se você quiser brincar com alguns exemplos né você vem aqui em experts aí você vai ter ó advisors exemplos
os que eu foi criados né Por Mim e etc a gente vai criar um novo certo vamos criar um do começo só para vocês entenderem um pouco a diferença do Profit aqui a automação de estratégia ele chama de expert advisor como se fosse um conselheiro experiente um Expert advisor Exatamente isso e temos os indicadores né Ele separa isso em em condições muito di dientes aqui ó você inclusive tem um diretório só para indicadores e um e um só para experts eu não vou entrar no mundo dos indicadores agora no metatrader5 você criar um indicador é
um pouquinho mais difícil até do que você criar uma estratégia automatizada certo por conta da do do raciocínio lógico que você tem que ter você precisa entender muito bem o conceito dele de é basicamente um conceito de recursividade até assim a forma como você trata as barras né os candles é é um pouco complexa Mas vamos aqui pra parte de pra parte de robôs né robôs ou Expert advisors eu vou começar a criando um novo quando eu clico em novo ó ele traz essa janelinha aqui você pode usar um template ou você pode usar esse
generate né Tem indicador customizado ah etc eu vou direto pro template vocês vão entender por do template Então vamos lá avançar aí ele vai pedir o nome do teu Expert eu vou colocar aqui h h9 k e t botar aqui iniciantes beleza iniciantes o autor vou deixar esse aqui ó URL do canal aqui eu já posso até colocar alguns parâmetros vou só mostrar para vocês aqui ó e game por exemplo certo seria um parâmetro de game tipo inteiro valor inicial vamos supor que a gente queira um valor inicial de vamos falar de mini índice 100
pontos beleza avançar aqui são as funções que são executadas os eventos né Eu quero que tipo de evento eu quero on trade né esse evento ele é chamado quando um trade acontece vocês vão ver que tem o on tick aqui que é o principal evento no nosso trabalho vamos dizer assim né então você tem um trade on trade transaction on timer on timer você pode criar um temporizador para a cada tantos segundos ele executar o teu código ah Rodolfo eu não quero usar um antique porque eu acho que o antique é pesado e eu quero
que o meu código execute a cada 10 segundos ou a cada segundo por exemplo então você pode botar no one timer eu eu não vou selecionar nenhum certo on book event é quando tem algum evento do book isso aqui é massa para quem quer trabalhar com leitura de fluxo o metatrader de fato tem muita ferramenta para fazer isso é on tester isso aqui é só quando você tá testando enfim tem vários eu vou concluir bom pessoal antes de ir pro código já peço para você se inscrever no canal mandar o like compartilhar com seus Brothers
aí e sisters e dá aquele apoio moral se você acha que o conteúdo realmente vale que você tá aprendendo ó 499 799 enfim vira membro aí né dá um auxílio financeiro aí que aumenta a motivação aqui para manter o canal no ar Bora lá como eu escolhi um template ele já vem pré preenchido aqui ó como vocês estão vendo né Tem um esse aqui é tudo comentário tudo que começa com barra barra é comentário tudo que tá em verde aqui e aí vocês já primeira diferença que vocês vão ver aqui o editor dele já é
muito melhor Ah mas o editor do Profit é o editor do Profit tem umas coisas que eu nem entendo nem às vezes dá nem para chamar el de editor né Por exemplo o o tab como você muda de de letra para letra assim quem quem não programa talvez nem conheça isso mas se eu seguro o control e aperto pro lado pro outro tá vendo que ele pula as palavras ó para quem tá programando isso aqui é maravilhoso certo então Ó eu aumentei um pouquinho a fonte aqui acho que eu preciso aumentar um pouco mais né
Deixa eu ver aqui ó quando a tela fic muito grande também complica mas vamos lá boa parte dos problemas que vocês apontam nos meus vídeos são relacionados a você visualizando a informação e incorretamente talvez porque esteja vendo na resolução baixa sempre que tiver vendo esses vídeos de código vai ali na engrenagenzinha do YouTube e bota na resolução máxima meus vídeos boa parte deles são em Full HD um ou outro eu gravo em 4K certo esse aqui eu tá gravando em Full HD então ó é só mesmo algumas propriedades para caso você faça um robô que
você queira colocar na loja etc fica bonitinho aqui são os inputs né que nem no Profit a gente tem o os inputs lá aqui a gente tem só que aqui a gente tem algumas diferenças nos inputs vou mostrar para vocês a gente criou aqui ó um input que é do tipo inteiro que chama igame com valor igual a 100 certo deixa eu dar um espaço aqui ó PR a gente ir organizando as coisas eu vou salvar esse cara aqui certo eu vou compilar a estratégia eu venho aqui ó cliquei compilar beleza e agora eu vou
mostrar o negócio para vocês ó essa variável igame que eu criei Cadê o metatrader tá aqui ó se eu vier aqui ó vocês vão ver que aqui tem o tobox o to boox tem trade que é onde você acompanha as suas operações em aberto etc aqui tem um monte de coisa isso aqui você vai explorar mas o automatizador de estratégias você tem que vir aqui ó em viw strategy tester né que em português eu não sei como é que vai tá mas no caso aqui Inclusive é o cont control R ele vai abrir essa segunda
janelinha aqui eu vou fechar essa aqui por enquanto certo ó deixar só o strategy tester ó aqui do lado e aí o seguinte ó eu vou selecionar essa estratégia que eu acabei de criar Ah que eu não sei onde el salvou inclusive deixa eu ver tá aqui ó HK h9 k it iniciantes então aqui eu vou configurar o meu back test eu ainda ela ainda não tá fazendo nada então quando executar ela não vai fazer nada mas eu quero mostrar um negócio para vocês é eu vou dizer o período que eu quero eu quero do
dia 17 ou dia 19 aí aqui eu posso eu posso simular o delay né que é interessante simular delay eu vou colocar aqui 100 msos de delay isso aqui é outra parada massa como é que você quer rodar o teu teste você quer usar o modelo de Open High low Close ou seja para cada barra ele vai testar o teu código em quatro pontos na abertura na mínima ou melhor na abertura na máxima na mínima e no fechamento esse cara aqui é ocupado por você fazer um back test o back test da show e na
conta real você completamente diferente esse cara é ocupado Ah isso é ruim Rodolfo não não é ruim esse cara por outro lado ele faz com que você possa rodar o teste muito rápido então você com ele consegue por exemplo detectar os erros mais grosseiros da Estratégia era para entrar aqui não entrou era para entrar ali não entrou depois aqui no metatrader você pode vir aqui e dizer que seja testado em todo o tic ou em todo o tic baseado nos tics reais aí vai dem demorar cinco vezes mais para você testar a sua estratégia Mas
você vai est fazendo teste fiel Beleza então assim você pode até escolher ó somente preços de abertura eu vou deixar no 1 Minuto oh hlc certo ou seja mesmo que eu esteja testando num candle ou numa barra de 5 minutos ele vai fazer para cada minuto o hlc não importa o tempo que eu escolhi ó por exemplo aqui ó aqui eu vou fazer minha estratégia rodar nos 5 minutos no ing 24 né no mini índice o contrato atual mas o teste dele vai rodar 5 x 4 ou seja vai rodar 5 x 4 por barra
porque ele continua rodando no minuto aqui você define qual fo o depósito inicial o tipo de moeda é importante você configurar isso aqui porque se você não configurar isso aqui ele pode dar ruim na sua ele pode não Não rodar certo e eu não tô mexendo com otimização otimização Depois eu mostro para vocês inclusive em outro vídeo mas vamos lá aqui o que eu queria mostrar ó entradas Tá vendo aquela variável que eu configurei ó tá aqui ó igame então você vem aqui e diz ó não eu quero 150 ou seja ele vai testar o
teu código com 150 de ganho agora olha que massa é isso aqui ó vou voltar aqui pro código e vou dizer aqui ó var é um tá vendo um comentário ó variável para definir pontos de ganho ou vou vou fazer o seguinte é ter pontos de ganho só tudo bem botar assim vou salvar vou compilar o compilar Se não me engano é o contol F7 ó não só F7 ó apertar o F7 vou voltar pra tela do Profit e agora ó olha só ele botou o meu comentário aqui para ajudar né deixar mais legal a
forma de customização das entradas né os inputs Beleza eu vou rodar aqui agora o teste eu posso rodar o teste aqui ó apertando o botão start Ou seja que que ele vai fazer ele vai rodar o meu meu Expert advisor né A minha automação no in24 no período de de 5 minutos M5 é 5 minutos do dia 17 ao dia 19 19 foi sábado se eu não me engano Ou sexta-feira nem lembro mais é sexta-feira e ele vai rodar no 1 Minuto hlc vamos ver aqui ó e o meu input é 150 mas o código
não faz nada Então vamos lá start tá aqui ó nova janela ele tá rodando devagar ó tá vendo ó Isso aqui é ele rodando ó pronto rodou até o final Pedi até o dia 19 só que ele rodou só até o até o final até o final do dia 18 isso é normal né o último dia no no no metatrader geralmente ele não consegue rodar quando é final de semana Alguma coisa assim eu eu não lembro agora posso estar falando besteira aqui mas o que importa não é isso é outra coisa aí se ele tivesse
realizado algum trade ó ele ia mostrar aqui ele mostra as operações e aqui também é tudo que a estratégia fez ó tá vendo ó ele vai mostrar que ele começou que ele inicializou e bá bá Beleza então vamos voltar aqui agora para o editor que que a gente precisa saber logo de cara vocês viram Deixa eu ver se eu consigo passar esse pinzinho aqui ó Styler o Styler é para ele organizar o código Eu particularmente gosto que o a abertura de bloco esteja aqui em cima ó e não na linha de baixo Só que eu
acho que se eu deixa eu ver ó tá vendo ele muda ó ele não não respeita eu vou tirar esses comentários aqui esse primeiro bloco aqui inclusive ele já coloca a descrição é um bloco de inicialização do código ou seja todas as vezes que você colocar o seu Expert advisor na tela ou começar a rodar ele ele vai executar o on init Ou seja no início quando iniciar Então tá vendo ó ele retorna aqui ó init a subsid ou seja isso aqui significa ó deu bom pode rodar se ele retornar qualquer coisa diferente disso aqui
ele nem executa o teu o teu otimizador Então se existe alguma verificação que você precisa realizar antes do teu do teu da tua automação rodar você pode colocar no on init Que tipo de coisa ah tentar pegar o valor de uma variável verificar o que o que o usuário colocou nas variáveis Então vamos supor que você coloca lá pro cara definir um Stop loss e o cara coloca o stop loss de 10 pontos ou seja não não presta para nada você pode dizer aqui ó se o stop loss configurado do usuário for menor for menor
do que 10 pontos e trava não abre né dá um erro Então esse é o on init vocês vão ver que eu utilizo ele para inicializar os handles né ou melhor os handlers que é um conceito conceito meio complicado mas vocês vão entender já já o que eu quero dizer com ele tá certo então vamos fazer fazer o seguinte ó Ah sim aí você vai ter aqui um on de init né que seria na de initialization ou seja assim como você tem o evento de inicialização Você tem o evento de saída Ou seja quando o
meu a minha estratégia parar que que é para eu fazer aí ele vai por exemplo Geralmente eu uso isso aqui para apagar algumas variáveis alguns buffers para evitar consumo de memória aleatório enfim eu faço uma outra limpeza de de de de memória vamos chamar assim posso também se eu tiver plotado coisa no gráfico eu quiser tirar as coisas do gráfico esse aqui é o canto também certo vocês ó pare estratégia arranca as coisas do gráfico certo então vamos ver aqui uma coisa ó o ontick é o nosso é o nosso arroz com feijão é aqui
que a gente vai programar certo poderia ser no ontimer também como eu falei no ontimer você iria se configurar no on init dizer ó o meu timer eu quero que roda de tantos em tantos segundos tantos em tantos minutos etc lá na inicialização aí ele chamaria essa função a cada tanto tempo né para para você mas a gente vai no on tick certo ou seja toda vida que tiver uma mudança No Tic mudança de preço por exemplo né seja compra seja venda ele vai Executar a função só que às vezes a quantidade de negociações ou
de mudanças no tick é tão rápida que não dá tempo de você processar todo o teu código de uma vez por isso é importante que você tenha códigos eficientes ah Rodolfo quer dizer que ele pode perder informação do ontick sim ele pode perder informação do antique tem uma regrinha no no metatrader 5 que diz o seguinte toda vida que o ontick for chamado mas o teu ontick ainda tiver sendo executado ele descarta a informação e vai pro próximo só que assim o ontick ele assim eu não sei que você faça alguma besteira mas ele é
muito rápido então assim é você vai perder pouquíssimos chics de forma que seja irrelevante essa perda Beleza então vamos fazer o seguinte ó no on init eu vou fazer o primeira coisa aqui bem Bem Simples né vou fazer um print inicializando três pontinhos beleza e no on the init eu vou colocar aqui ó print desligando certo e um ponto e no ontick eu vou colocar aqui print tick vocês vão ver que ele vai botar um monte de lixo na tela quer dizer lixo não eu uso isso para debugar E aí esse aqui é uma das
grandes vantagens do metatrader em relação ao Profit você realmente consegue debugar aqui num nível absurdo só que dessa vez eu não vou rodar do tester da onde eu mostrei aqui do do metatrader eu posso apertar o start aqui posso mas eu também Posso rodar de dentro do editor então eu venho aqui ó tem esse cara aqui certo e tem esse cara aqui ó Beleza eu vou eu gosto de usar esse aqui e esse aqui seria para plugar a partir de agora paraa frente como o mercado tá fechado eu quero ver o dado histórico certo com
base em quê Com base no que eu configurei aqui ó então ele respeita essa configuração então eu vou clicar aqui para vocês verem ele vai abrir a janela né do do do automatizador e vai passar Tic por Tic vamos ver ele abriu aqui na outra janela Ó mas vou colocar aqui para vocês ó tá vendo ó tic tic tic tic tic tic para cada barra ele vai mandando um Tic né então ó é porque ficou extremamente poluído Ó mas vamos subir aqui para vocês verem ó inicializando ou seja chamou no deinit só uma vez o
on init na verdade chamou uma vez depois ele começa Ó tic tic tic tic tic tic tic tic ou seja né como eu falei ó Open High low Close Open High low Close para cada minuto ele vai chamando Open High low Close mesmo que eu esteja rodando a estratégia em 5 minutos são barras de 5 minutos aqui certo ó dá para ver aqui pelo lado ó por aqui ó você vai ver que são 5 5 minutos ó 12:45 1250 1255 etc beleza e aí tem ó tic tic tic tic um monte de tic tic tic
tá vendo ó e lá no final vai ter o desligando certo como a gente não tá comprando vendendo nada então ó ele não mexe na na no resultado não tem histórico e não tem operações belezinha vamos voltar aqui pro código e aí a gente vai vai começando a fazer as as paradas né que que nós vamos fazer aqui nós vamos fazer o indicador utilizando banda de bollinger para pegar o gancho lá já do PR e a gente vai começar agora a mexer com o indicador certo e a gente vai comprar na mínima da na barra
inferior vender na máxima e vai sair sempre no meio no canal do meio certo então o nosso o nosso take Profit que é um conceito do utilizado aqui no metatrader que seria o stop game né que é o take Profit a gente vai sempre colocar no meio da do canal belezinha Então bora lá bora começar a pensar nas nossas variáveis Só que tem um detalhe esse detalhe é importante o metatrader ele tem uma biblioteca que chama trade essa biblioteca ela facilita muito o gerenciamento de ordens certo a gente vai utilizar ela daria para não usar
daria mas eu não vou perder o meu tempo e nem fazer vocês perderem o de vocês agora se você quiser se aprofundar aí você pode correr atrás e ver quais são as funções nativas do metatrader para gerenciamento de ordens então o seguinte que que a gente vai fazer ó a primeira coisa que a gente vai fazer aqui é incluir essa biblioteca e para ganhar tempo e economizar barulho de teclado eu vou copiando e vou colando aqui certo então primeira linha include trade bar trade.mqh Isso aqui é uma biblioteca do próprio Profit a partir do momento
que você coloca ela você tem acesso a diversas funções que vão facilitar o gerenciamento de ordem daqui a pouco eu vou mostrar para vocês como é que você consulta o manual e o manual do do metatrader é muito bom ele é perfeito excelente Não mas ele é muito muito muito bom vou mostrar já para vocês mas via de regra você quer entender o que que é o onit vou mostrar agora você marca né clica duas vezes em cima ou aciona e aperta F1 Olha só que lindo aí aqui ó você pode pesquisar os zilhões de
funções que ele tem código de erro retorno ó tá aqui do lado Ó você pode pesquisar né ver o índice dele ó mas no on init ele já vai eu acho que tem isso em português certo eu acredito tem em português mas eu como falei para vocês eu eu vou no inglês Então essa função é chamada nos indicadores e nos Expert advisors ó EA né então vocês vão vocês vão ver esse conceito daqui para frente vão conviver com isso ah tô com uma dúvida quero saber se você for no no Google lá e botar quero
fazer em inglês né I want to do An Expert advisor using aí você vai ver porrada de Russo doidão tem muito brasileiro também que desenvolveu e tem um Fórum da da da comunidade muito bom e eles falam ea ea ea o que que é um EA é um Expert advisor uma automação ele vai sempre ser chamado sempre que o evento init acontecer então a documentação é É massa né Muito boa então ah o que que é um init um evento de init você clica aí ele vai explicar ó imediatamente depois que um terminar carrega um
programa um Expert advisor ou indicador inicializa o processo enfim manual aqui galera é show é muito bom mesmo vou diminuir ele aqui então incluímos a biblioteca do C trade Beleza agora a gente vai criar algumas e eu vou tirar essa variável aqui porque a gente não vai usar um ganho um ganho fixo Beleza a gente vai usar um ganho variável eu vou colocar aqui três variáveis vou copiar aqui certo e aquela Nossa velha variável que define que horas eu quero que que a estratégia começa e e que horas eu quero que ela Termina Esse input
group aqui vocês vão entender o que que é é só para formatar os inputs ali naquela telazol sequência de caracteres E aí vocês vão ver que depois e vai vai ser um Pouquinho complicado pra gente gerenciar essas horas bem diferente do Profit o Profit é 10.000 vezes mais simples aqui não aqui tem que criar uma função só para poder gerenciar hora de início e hora de fim certo então eu vou criar essas variáveis aqui eu vou criar algumas algumas variáveis de de controle eu nem vou usar esse cara aqui mas eu vou deixar que seria
o ganho e a perda a gente até pode testar com elas mas a minha ideia é usar a como eu falei para vocês o ganho e a perda vão estar relacionado com a com a banda do meio do do do bollinger a quantidade de contratos certo e aqui ó a configuração do indicador de bandas de bollinger ó colocar aqui para vocês verem aí eu vou ter aqui ó três grupos de configuração O primeiro é os paros paros do Day trade né hora de início hora de fim depois eu vou ter aqui algumas configurações básicas e
eu vou ter os parâmetros da banda de binger eu vou ter o período da banda de binger né quantas Barras ele vai utilizar geralmente a gente usa 20 de padrão esse shift é para se você quiser o indicador que ele tem um deslocamento deixar Zerado aqui raramente a gente mexe nesse cara aqui O desvio padrão normalmente o pessoal utiliza dois eu vou manter aqui Qual é o preço de referência da banda de bollinger no caso o preço de fechamento e vocês vão ver que tem um negócio massa aqui lá na na conf duração e Qual
período eu quero que ela funcione e isso aqui é um dos grandes diferenciais do metatrader também em relação a Profit e isso aqui é lindo então vamos supor você quer que a sua estratégia Rode no período de 1 minuto por exemplo ou de 5 minutos Mas você quer que o a sua banda esteja no 15 minutos então dá para você implementar uma estratégia tipo de triple screen quem não conhece Tem que ler Alexander Elder ou seja vamos supor que a sua estratégia vai só operar com tendência e a definição de tendência é uma média móvel
de 200 mas não nos 5 minutos nos 60 minutos por exemplo Ou uma ou 2 horas ou sei lá resolução de minuto que você quiser você pode fazer isso aqui muito simples você bota tua estratégia para rodar num minuto mas utiliza indicadores em outro tempo inclusive misturando Ah eu quero indicador 60 minutos eu quero um de 15 eu quero no de 30 eu quero no do diário cara aqui o céu é o limite talvez nem o céu né então eu vou salvar certo vou compilar at o F7 ó quando eu compilo tem essa janelinha de
erro aqui embaixo ó essa janelinha de erro aqui não deu nada se eu tivesse feito algum absurdo Ó tipo isso aqui ó vou compilar ó ele mostra o erro ó ele não sabe o que que é o input se eu clicar duas vezes ó se eu clicar duas vezes no erro ó ele já me leva pra linha que tem o erro ó agora eu corrigi apertei F7 e vamos ver aqui ó vamos ver aqui no no metatrader o que é que significa eu tenho aqui ó meus três grupos de configuração inclusive ó posso abrir e
fechar olha que massa ó hora de início poderia editar ele aqui né bonitinho e tal mesma coisa Basic settings meus pontos e preste atenção que a aqui desse lado aqui ó ó aqui ó start step stop eu já tenho o meu otimizador certo ou seja lá na frente eu vou mostrar para vocês eu poderia Não eu quero que o meu que o meu ame varie de 100 pontos variando de cinco em cinco né que no índice é de cinco em cinco até 500 E aí bota ele para fazer a otimização dos parâmetros entendeu então isso
é isso é muito bom e os parâmetros da banda de bollinger a estratégia ainda não faz nada a gente tá só configurando a parametrização dela beleza e vamos voltar pro código eu preciso criar mais algumas variáveis é na realidade eu tô criando só os inputs agora agora eu vou criar as variáveis certo as variáveis que a gente vai utilizar para e rodar o o código em si quando eu crio as variáveis fora do init São variáveis globais ou seja elas vão estar disponibilizadas em todo o código o tempo inteiro isso é outra coisa que é
muito mais simples de entender no no no metatrader certo então Ó eu tô criando uma variável chamada trade que é a variável que eu vou utilizar para mandar ordem para cancelar a ordem para manipular minha posição é essa variável e ela é do tipo ctrade que é o objeto ou melhor ctrade é uma classe que tá dentro desse cara aqui do include que a gente falou Deixa eu fazer o seguinte eu vou fechar essa esse navegador aqui ó pra gente ganhar espaço aqui na tela então eu tenho o meu ctrade aí a gente vai criar
a variável rates que vai conter o valor das Barras né ou seja de fechamento de abertura de máxima e mínima se você quiser entender bem direitinho você vai no mkl rates aqui acho que não sei se eu apertar F1 ele vai abrir o o a ajuda Deixa eu fazer aqui ó F1 ó tá aqui ó mkl raides ele mostra a estrutura né O que contém dentro dessa estrutura e como é que utiliza ela mas isso aqui eu vou mostrar para vocês daqui a pouco beleza então ó eu vou criar as variáveis onde eu vou ter
as informações da banda de bollinger Então a primeira variável que eu vou criar aqui é um handle né um handler na verdade aqui ó handler do buffer da banda de bollinger o metatrader Ele trabalha com o que a gente chama de buffer buffer basicamente é o quê você vai dizer para ele Ó eu tenho essa variável aqui de tantas posições você vai enchendo essa variável conforme ele vai colocando dado nela ele vai pagando do final então é uma forma que ele usa para para te entregar a informação da da de qualquer indicador na verdade Beleza
eu vou utilizar uma variável aqui que é para registrar se a ordem já foi enviada ou não certo isso aqui é uma variável de controle para saber se estamos em uma nova barra contém esse aqui Price step eu vou explicar para vocês contém o valor do Tic Price step é para saber se o instrumento né ou o ativo que a gente tá utilizando para saber o TAM do Tic dele então no caso do índice vocês vão ver que ele vai retornar o valor de cinco porque é de cinco em cinco se fosse uma ação de
1 centavo e 1 centavo no dólar de 0,5 0,5 eu utiliz esse cara aqui para poder arredondar os valores para poder mandar ordem no valor correto Diferentemente do Profit no metatrader se você mandar fazer uma compra na banda de bollinger a banda de bollinger ou numa média ela pode T um número que não representa um valor real de índice então tipo o índice vai est lá 100 né votar 132.000 132000 CCO de cinco em cinco ele pode colocar 132.000 V13 não existe o índice não negocia nesse valor e ele vai dar erro ele não vai
resolver para você ele vai dar erro e tua estratégia não vai rodar então eu utilizo esse cara aqui para isso fora isso eu utilizo aqui três variáveis né três arrs no caso que vai cont ter a informação da banda superior da banda inferior e da linha do meio que no caso é a média certo então eu vou precisar desses três caras e eles são do tipo Array ó por isso que tem o colchete Ou seja eu vou conseguir acessar valores atrasados dele ó valores anteriores o zero o mais recente o um o penúltimo o anti
penúltimo e assim por diante beleza esse Magic aqui que inclusive e eu vou colocar ele aqui em cima isso aqui é para você identificar o teu Expert é para ele ter um número único e lá na frente se você tiver rodando cinco Expert advisor ao mesmo tempo no mesmo ativo ou diferentes ativos você consiga referenciar para saber qual é a estratégia que você tá mexendo para que ele não por exemplo vamos supor que você esteja mexendo com índice eu ten uma estratégia que utiliza médias móveis e uma que que usa bandas de binger se você
não tiver um médic e não tomar cuidado um Expert interfere no outro então você vai fechar uma posição no outro e vice--versa então você precisa desse médico para controlar isso mas eu não vou entrar em detalhes beleza é a gente vai agora para o on init no on init a gente precisa fazer algumas coisas que são meio obscuras mas eu vou tentar explicar para vocês e essa aqui é aquela hora que ó você precisa ter fé Você precisa acreditar que é importante fazer isso mas eu não vou dizer muito bem o porquê senão são cinco
dias para explicar Beleza então tenho fé se quiserem entender você quando você copiar e colar você aperta o F1 vai lá eu vou realmente falar muito rapidamente o que que faz mas se você quiser entrar nos detalhes você tem que correr atrás certo porque senão não não vai pra frente então aqui no meu on init eu tô colocando esse Array set S series para quatro variáveis que eu criei certo paraa variável de rates rates Lembrando que é a variável que vai ter a cotação atual da Barra máxima mínima né fechamento ou abertura o vbb High
que é o quê são minhas variáveis da banda de bollinger as três por que que eu preciso fazer isso isso aqui basicamente eu tô dizendo para que ele transforme essa variável aqui em uma variável de série ou seja ele vai fazer com que os valores mais recentes sejam os primeiros e não os últimos certo ou seja o valor atual vai est no índice zero e o primeiro valor da série vai est no índice x lá atrás beleza é só isso que isso aqui faz aqui é a forma como é que eu instanci o buffer do
indicador ou ou handler do indicador esse aqui é o indicador de bandas de bollinger certo é o iband esse ai não é de entrada não é porque é de indicador indicator então ó eu vou colocar aqui para vocês só para vocês verem como como o Profit é legal eu vou vou reescrever aqui ó hbb iG i bends ó tá vendo ó Ele já automaticamente me traz a informação essa função e bands se eu apertar Tab ele vai complementar ele exige esses parâmetros o nome do do ativo né que é o símbolo Então já se acostumem
aqui quando eu tiver falando em símbolo é o ativo do gráfico certo então por exemplo se eu tô no gráfico de índice quando eu utilizar esse cara aqui ó underline Symbol ele pega o valor do gráfico que ele tá ativo Beleza você poderia escrever o ativo na mão também certo é uma string eu poderia digitar Win v24 também mas como a gente vai colocar o expert no gráfico do índice eu quero que ele pegue o ativo do gráfico isso significa o quê que você pode colocar um Expert no índice mas por dentro dele ele tá
operando dólar porque o metatrader tudo é possível Beleza então ó Quais são os parâmetros é o ativo Qual que é o o time frame do ativo né 5 minutos 1 minuto hora um dia etc é o período da média o shift que é aquilo que eu falei para vocês O desvio padrão e qual qual é o preço que ele vai aplicar certo então como eu já coloquei aqui ó tá aqui eu tô passando Ó o ativo o time frame o período o shift O desvio padrão e o tipo de preço né E se vocês forem
ver aqui em cima tá tudo aqui ó por padrão é 20 0 2 preço de fechamento e 5 minutos de time frame então ele vai instanciar esse cara aqui no metatrader tudo que você faz o ideal é que você v verifique por quê porque pode dar uma loucura nele ou ele não ter dado ou não conseguir pegar o dado e ele não trazer informação nenhuma então é isso que eu faço aqui ó se se o retorno dessa chamada de função for menor do que zero significa que deu algum bo então Em vez dele retornar que
a estratégia foi sucesso ele retorna que não não é que a estratégia foi sucesso que o que o carregamento do da automação Foi um sucesso ele retorna que falhou então ele nem inicia ele já trava certo ele já trava e aqui ó é uma variável de controle se eu já se eu já tenho uma ordem colocada que a gente a gente vai utilizar isso aqui para não mandar mais de uma ordem beleza e eu já vou inicializar essa essa variável com valor falso nesse ponto aqui eu ainda não tenho nada não tenho nenhuma execução certo
eu já vou preparar o meu on D meit que vai ser super simples que eu vou fazer nele eu vou simplesmente eu vou dar um release né o release no meu buffer da bandas de bollinger isso aqui é só para otimização de memória Ou seja quando o expert advisor terminar libera a memória da banda de binger porque ele deixa isso na memória rodando é metatrader certo ah seu se não colocar isso aqui vai dar ruim não não vai dar ruim não mas pode ser que em algum momento o seu metatrader canse fique cansado fique lento
até o teu computador e aí você ah putz é porque eu tô com enchendo a memória de tranqueira e não tô esvaziando certo e vamos aqui pro nosso tick eu vou tirar esse cara daqui certo eu vou rodar A Estratégia do jeito que ela tá aqui deixa eu ver compilei ó zero erros e vamos rodar ela aqui ó tá rodando aqui ó mas não tá fazendo nada certo ó o meu Expert mostra os parâmetros que ele rodou que ele utilizou na inicialização Mas como ele não tá fazendo nada eles vai tique a Tic e não
faz nada simplesmente deu certo né funcionou vamos voltar pro código E aí eu vou fazer o seguinte eu já tenho o código pronto É lógico mas eu vou tentar vou tentar construir um passo a passo para vocês eu quero a partir do erro que a gente vai encontrar aqui a gente vai evoluindo vai ficar muito melhor de vocês aprenderem dessa forma Então vamos lá primeira coisa que eu vou fazer aqui é o seguinte eu vou copiar os valores da Barra para ter acesso aos valores e vou também fazer fazer a Instância né copiar os valores
da banda de bollinger para minhas variáveis porque não é mágica no metatrader você tem que fazer tudo desde ali é tipo assim você né começa lá na área faz a defesa corre pro meio de campo toca lá na frente dribla um dribla dois chuta cabeceia e faz o gol e defende ainda o gol Então tem que fazer tudo tudo tudo tudo então a gente vai fazer começar pelo preenchimento das variáveis a gente utiliza isso aqui e mais uma vez eu vou usar o copy rates para pegar o valor das Barras e jogar esse valor dentro
da minha variável rates que eu declarei lá em cima só que eu só quero o valor das três últimas porque eu não vou nem usar as três últimas vou utilizar só a última então para eu não pegar 200 e encher encher a memória eu pego só as três já vão ser o suficiente para mim os parâmetros Qual é o ativo que eu quero o período E aí aqui eu tô colocando o período do gráfico quando eu coloco underline period é o período do gráfico aonde o expert Tá anexado certo eu poderia simplesmente colocar aqui ó
period H2 ou seja ele ia copiar a informação das Barras de duas em duas horas não não me interessa certo mas poderia ser poderia ser que tu estratégia utiliza uma coisa desse tipo Então vamos period esse esse primeiro valor aqui se não me engano é um offset deixa eu ver aqui ó copy rates tem o símbolo período 03 rates E aí galera eh isso pode ser confuso para vocês mas uma mesma função ela pode ser chamada com diferentes parâmetros certo então aqui vamos ver ó string string é o meu é o meu símbolo time frame
no caso é o período Ou aquele zero ali É exatamente esse rates mask que a gente tem que descobrir que eu não lembro o que que é mas sempre utilizo zero mas vamos ver aqui ó ahum copy rat é provavelmente isso aqui ó se eu utilizar um ele só vai copiar a abertura se eu utilizar dois sou a máxima né E se eu utilizar utilizar o zero ele copia tudo exatamente tá vendo ó aum copy rates numeration contem flags para especificar o tipo de data para passar pra Matriz do arrei Então pronto então a partir
do momento que eu fiz isso aqui eu tenho que verificar ele copiou alguma coisa se ele copiou ele vai retornar nesse caso ele retornaria três se ele retornar qualquer coisa né se ele retornar zero ou menor do que zero é porque deu algum erro se ele deu algum erro ele não continua a execução do antique ou seja toda vida que você tiver um return dentro do antique Chick e é uma coisa que eu sinto falta lá no Profit às vezes eu quero cancelar a execução naquele ponto não quero que ele Execute dali pra frente aqui
eu faço isso botando um return return ele sai do evento e vai pro próximo ou seja enquanto ele não conseguir pegar esses valores né do da Barra ele pula pro próximo até ele conseguir aqui que que eu tô fazendo no copy buffer eu tô pegando a informação da banda de bollinger e jogando pras variáveis esse aqui é o handle da banda de bollinger né o parâmetro é como se fosse o o o o o cara que contém a informação é aqui são É o buffer específico ou seja o buffer zero a linha do meio o
buffer 1 é a máxima e o buffer do é a mínima como é que eu adivinho isso vou já mostrar para vocês três também eu só quero os três últimos não quero mais do que isso e esse zero aqui eu não lembro mas ah o zero é o seguinte user o offset do buffer Pode ser que você não queira copiar do último para trás pode ser que você queira copiar do penúltimo para trás mas ó só para vocês entenderem aqui mais uma vez ó F1 copy buffer ó tá vendo ó e aí ele vai explicar
bem direitinho como é que é cada parâmetro agora da onde é que vem tem esse 01 2 ó o 01 2 que é o segundo parâmetro é ó indicador do número do buffer aí a gente tem que ir lá no i bands que é o indicador que eu tô utilizando e aqui ele vai dizer ó o zero é o baseline Ou seja a linha do Meio ó por isso que aqui ó linha do meio é o zero o um é o upper Band e o dois é o lower Band ó tá vendo ó um High
que é máxima e dois low que é a mínima galera sem ler manual certo sem correr atrás você vai virar um méo copiador de código isso é ruim não necessariamente mas se você quer realmente desenvolver suas ideias né e eu tô aqui para né te dar isso também Eh você precisa ler né Então sempre que eu receber o e-mail de vocês eu vou tentar ajudar mas eu fico frustrado né quando a dúvida é uma coisa que poderia ter sido lida no manual certo em algum momento espero eu o canal vai ficar grande o suficiente para
que eu não consiga mais dar conta de tudo então eu vou querer né ajudar aquilo que realmente faz sentido tirar dúvida que realmente faz sentido que não tá manual né o já ouviram falar na expressão rtfm ou rtfm read the fucking manual já ouviram falar disso é tipo isso né então importante né que vocês corram atrás de ler Então vamos lá então o que foi que eu fiz aqui ó eu já montei Ah Deixa eu aproveitar aqui ó aqui é a pausa pro comercial né você que não é inscrito e tá gostando desse vídeo aqui
ó se inscreve aperta aí a paradinha de notificação do canal compartilha com teus amigos deixa comentário né deixa tuas dúvidas aqui eu respondo Praticamente tudo que o pessoal coloca aqui nos comentários colabora com o canal se você quiser se tornar membro ó apoio Zinho show de bola se torna membro aí que tem algumas vantagens dentre Ela este código vai est na pasta que eu compartilho do drive né para os membros código lá bonitinho cheirosinho para vocês Beleza então dá esse apoio aí então o seguinte a gente já tem a informação é mas por enquanto não
estamos fazendo nada vamos ver se já dá pra gente colocar alguma coisa aqui na tela vamos fazer o seguinte já vou colocar aqui certo trade que a minha variável que envia ordem ponto by limit V ó primeiro parâmetro do by limit que é uma compra limite a quantidade e amount certo segunda variável é o preço que eu quero comprar então vou colocar aqui que é no meu vbb low terceiro parâmetro o símbolo que eu quero comprar né o o vou botar aqui sbol quarto parâmetro Stop loss Stop game eu vou colocar aqui o nosso egain
e o nosso eoss certo Ops acho que é o contrário aqui é eoss e o outro é o take Profit e game isso ao contrário esse parâmetro olha que massa isso é lindo é uma ordem Good to cancel ou seja uma ordem até cancelar uma ordem até o final do dia é uma ordem que eu vou colocar o prazo de validade né ou ordem até um dia específico Eu recomendo se você tá fazendo Day trade que você utilize esse cara aqui certo que chega no final do dia a ordem automaticamente cancelado depois disso a gente
tem a a inspiração quando vai inspirar a ordem se você utilizou um tipo de de em vez de utilizar esse ordem diária uma ordem que exige inspiração vou deixar zero aqui que não é o caso e um comentário colocando ordem de compra limite certo isso aqui ajuda a gente a debugar importante né ponto e vírgula para encerrar a instrução Vou salvar aqui salvo vou compilar no compilar acho que F7 né eu sempre esqueço F7 ó já deu erro ó já deu erro Ok porque esse cara não existe existe esse cara zero que é o último
valor disponível né o mais recente Então vamos lá salvar F7 e agora para executar é no control F5 certo cliquei aqui ó cadê minhas ordens de compra Olha o que tá escrevendo aqui na tela olha aqui que ele tá dizendo aqui na tela meu Stop tá inválido certo ele não mandou nenhuma ordem porque o meu Stop loss e o meu take Profit são valores Inválidos por quê Porque ele não aceita em pontos você tem que colocar o valor mesmo do do ativo certo então vamos voltar aqui pro código e fazer essa primeira correção o meu
eoss vai ser igual o meu como é a compra né vai tá abaixo ou seja vai ser esse cara aqui menos esse e o meu ganho vai ser a conta mais o igame vamos ver se resolve agora compilado cont control F5 tá executando ó olha olha essas linhas na tela ó tá vendo essas linhas na tela tá vendo cada linha verde é uma compra cada linha vermelha é um é um take Profit galera é aqui que mora o a bronca do metatrader vocês viram que eu mandei coloquei uma ordem de de compra limite só que
ele tá colocando uma ordem de compra limite para cada Tic e ele não quer saber se eu já colocou uma Você já colocou uma dane-se ele vai colocar outras 200 é aqui é aqui que você entende quando eu falo que o metatrader se você tiver uma automação zoada ele quebra sua conta é aqui Vamos só ver aqui ó cara deu bom ele começou com 10.000 terminou com 17.000 só que você não tem imgem para isso entendeu Você não tem margem para operar isso aqui beleza então vamos lá ó ó o histórico aqui ó quantidade de
operação que ele fez ó e você vê aqui ó loss loss loss loss loss loss vamos achar um TP aqui ó ó take Profit colocou várias ordens que não foram executadas ó take Profit take Profit só que olha só ele comprou 17 mini contratos ó tá vendo ó por quê Porque tinha uma porrada de ordem que ele pegou né E tava tudo pendurado Ou seja você tem que gerenciar tudo no metatrader tem que gerenciar tudo tudo tudo tudo tudo certo então assim ó ele tá colocando uma ordem por tick e não é isso que a
gente quer certo então vamos fazer o seguinte vamos tentar voltar um pouquinho pro mundo do Profit no Profit ele faz as coisas barra barra só pra gente ter esse feeling e a experiência vamos fazer com que ele Mande essa ordem somente a cada barra beleza para fazer isso Eu Tenho que adivinhar quando é que começa uma nova barra o metatrader não tem uma função embutida que diz é o primeiro tick da da de uma barra ele não tem esse informação então eu criei uma função para ajudar a gente a desvendar esse mistério certo eu vou
copiar essa função aqui e no futuro a gente vai ter a biblioteca do canal a biblioteca do canal vai tá lá disponibilizada para vocês né no no para quem é membro para quem não é é só copiar o que eu tô colocando aqui Aqui está e veja que é uma função Zinha que chama is new bar né é uma Barra Nova em tradução literal toda vida que a gente vai chamar essa função todas as vezes em todo o tic E toda vida que for uma Barra Nova ele vai retornar verdadeiro quando for uma barra falsa
ele vai retornar falso vou passar rápido mas aí vocês param olham respiram internalizam depois certo mas aqui a gente faz o quê como é que a ideia como é que a ideia por trás dessa função quando ela é chamada ele grava a hora da Barra nessa variável aqui certo nesse Last Time toda vida que você tiver uma Barra Nova significa que mudou o tempo da Barra porque no L time eu só tenho o qu eu tenho a data do início da Barra ele faz o qu ó ele começa Ó Last Time igual a z0 depois
ele faz aqui ó last bar né time Ou seja a hora da Barra da última barra é o qu é porque aqui Começa a complicar você realmente tem que ver a documentação mas essa linha aqui ele vai simplesmente pegar a hora atual e jogar nesse last bar Time se o Last Time igual a zero significa que a primeira vez que essa função tá sendo chamada então ele faz que o l time é igual ao last bar Time certo e retorna falso porque que é a primeira chamada da função se o meu Last Time For diferente
do meu last bar Time significa que virou a barra se virou a barra ele atualiza o valor da variável e retorna verdadeiro senão ele retorna falso Então é isso certo lembra que a gente criou aqui em cima ó essa variavel zinha aqui ó newb Beleza eu vou utilizar essa variável para armazenar informação se o tick que a gente tá processando é o primeiro Tic dentro da Nova Barra não necessariamente vai ser o primeiro tick da Barra porque eu falei Pode ser que ele tenha perdido algum tick né Mas vamos fazer o que então o seguinte
ó eu vou colocar esse cara aqui logo como sendo uma das primeiras coisas da da da função certo Vou Chamar esse cara aqui de new bar igual a is new bar pronto então vamos lá eu só vou chamar a minha ordem de compra certo if new bar então aqui a gente não tem o então certo a gente não tem o den não tem a gente tem esses colchetes aqui colchetes não isso aqui é é Chaves né a gente tem essas chaves aqui então ele só vai mandar uma ordem de compra se estiver numa Barra Nova
vamos vamos compilar F7 cont control F5 vamos lá pra nossa tela ó ele continua mandando uma porrada de ordem mas acho que vocês sabem porquê mas mesmo assim o resultado já deu diferente ó já baixou um pouquinho por quê Porque mesmo que ele esteja mandando uma barra mandando uma ordem a cada Barra Nova ele não tá limpando a ordem que ele enviou na barra anterior certo vamos fazer o seguinte eu vou executar de novo e vou mostrar para vocês pausadamente Beleza então ó executei ó isso aqui ó é tudo ordem de entrada e o vermelhinho
é ordem de saída certo vejam aqui ó deixa eu ver se eu consigo mostrar para vocês ó ó tudo ordem colocada meu histórico aqui ainda não acho que ele não pegou Ainda nenhuma ordem aparentemente ou se pegou é tão rápido que ele não mostra mas olha só que interessante ó olha só o que que a gente já encontrou aqui ó ele tem ordem que ele não tá colocando aqui ó por causa do preço inválido ó porque não existe índice mini índice no 129 719 não existe simplesmente não existe então tem muita ordem que ele tá
deixando de colocar simplesmente porque esse preço não existe Beleza então ó ó eu vou vou soltar aqui de novo ó só apertar o Play aqui ó ó pegou pegou pegou tá vendo ó pegou e chegou naquele resultado vamos melhorar aqui vamos melhorar vamos vamos tentar fazer o negócio melhor voltar pra minha estratégia aqui vamos primeira coisa vamos corrigir essa questão dos preços Inválidos Beleza então vou fazer o seguinte ó eu vou colocar aqui eu vou criar duas variáveis aqui certo do tipo Double aí vejam que eu tô criando essas variáveis dentro do onti Então ela
só existe nesse contexto toda vida que ele chama elas estão com valores zerados chamar de entry Price e outra variável chamada take Profit certo são do tipo Double que é a mesma coisa que o float que a gente tem no Profit V fazer o seguinte aqui galera eu vou criar uma outra função que vai fazer parte da nossa biblioteca para ajudar a gente fazer esse arredondamento de preço certo para ter sempre o preço adequado pro ativo que a gente tá operando E aí eu vou copiar aqui também para ser mais rápido então a função vai
ser essa aqui ó chamar de Round Price né arredondar o preço h9 k ele vai receber dois parâmetros que é o preço e o step do preço que é de quanto em quanto ele varia aí ele faz essa em cima né ó Price step que pega Exatamente Essa variação que que eu poderia fazer aqui ó só para mostrar para vocês outra coisa interessante do do do metatrader eu vou colocar aqui um comment aqui ó comment Price step dois pontos vírgula Price step ó vou de novo compilar ele dá até um warning aqui ó eu tenho
uma variável chamada take Profit mas eu não tô utilizando ela ou seja potencial desperdício de recurso Mas vamos deixar lá então vamos lá vamos Executar a estratégia cont control F5 vamos aqui ó olha que tem aqui em cim cima escrito Ó tá muito pequenininho mas dá um zoom aí que você vai ver ó lembra que eu coloquei aquele comment ele colocou aqui ó Price step 5.0 ou seja o índice é de cinco em cinco pontos o tick dele é de cinco em cinco pontos Esse é o price step agora veja que a gente não vai
ter mais ó ele ainda tá dando erro ó não deveria dar mais erro aqui ó invalid Price Ah tá já sei o que que é pera aí vou cancelar aqui ah ele já parou aqui porque eu tenho que substituir o cara aqui né Posso colocar ele aqui ó que a gente vai ter o correto agora Fechou vamos de novo lá control F5 ó agora ele não dá mais erro ó parou de dar erro continua fazendo né as ordens e agora ele deve estar mandando muito mais ordem porque tava tinha várias ordens erradas ó olha que
ele bota ó acompanhando da banda de bollinger ó tá vendo ó acompanha só que eu botei só botei Só compra né botei Só compra ó ele acompanha a banda de bolinger e vai ó quantidade de operação ó histórico ó tá vendo até o final do dia 18 Então beleza né rodou até aí só que assim essa nossa estratégia ainda tá meio meio zoada eu não quero ter mais de uma ordem quero ter só uma ordem né conforme a banda for variando Tudo bem Posso variar a minha ordem mas a priori não posso ter tanta coisa
assim mas antes de fazer essa correção vamos começar a fazer a nossa lógica certo a nossa lógica aqui é o seguinte e eu só vou mandar ordem em Barras novas beleza mas Rodolfo eu tô mudando pro metatrader Exatamente porque eu não quero utilizar o conceito de Barra Fechada eu quero mandar ordem toda hora que eu precisar mudar o meu mudar o meu valor então vamos vamos dar um passo atrás certo vamos fazer o seguinte a gente quer comprar na inferior e vender na superior se o meu pbb ou melhor se o meu rates zero ou
seja a minha barra atual preço de fechamento dela só que não é o fechamento da Barra é o último preço disponível da Barra então a cada tick o Close dela é exatamente o preço que ela tá executando agora certo então se o meu hates pon Close Eu poderia usar o s o bid também mas eu gosto de usar o Close certo se ele for menor do que o meu vbb Middle zero ou seja se ele for menor do que a minha Linha Central eu vou preparar a minha compra se ele tiver acima eu vou preparar
a minha venda e outra coisa eu só vou fazer isso se eu já não tiver uma posição se eu já não tiver comprado ou vendido é e tanto faz aí eu vou fazer aqui ó position é esse cara aqui ó position select o meu símbol eu poderia fazer igual igual a true né se ele for verdadeiro ou simplesmente deixar ele aqui que é a mesma coisa né se ele for verdadeiro se esse cara for verdadeiro ou seja se meu preço de fechamento tiver menor do que a linha do meio e ou seja ele tá tá
indo para baixo da banda e eu não tenho posição no caso aqui eu tenho que esse cara seja falso certo é isso aqui é é a mesma coisa que eu tivesse igual igual a fals só no caso sem posição Aí sim ele vai mandar a ordem de compra aí a gente vai else if a mesma coisa agora Só rates 0 P Close maior do que meu vbb High Zero no caso e também não tiver posição ele vai agora mandar a minha ordem de de venda certo então ó é a mesma coisa só que o meu
meu entry Price vai vai ser o vbb High é em vez de buy limit a gente vai usar o Cell limit Beleza o meu loss Agora é para cima e o meu game é para baixo beleza colocando ordem pra gente também não deixar zoado né ordem de venda limite Então vamos compilar F7 passou cont F5 e agora o E por que que ele não tá jogando ordem de venda porque ele tá posicionado ele vendeu aqui como ele tá posicionado ele não joga a ordem de venda como ele começou para baixo a gente tá cheio de
ordem em baixo ainda ou seja o código ainda tá lixão né Mas agora ele já tem ordem de compra e venda e só manda a ordem se não tiver posição Ó mas ainda tá muito ruim certo eu vou parar aqui parar por aqui mostrar para vocês que ele já agora já faz ordens de compra e venda a eu executei pela metade mas vamos dar um trato nesse código ainda vamos fazer o seguinte vamos fazer de forma que ele não mande ordem se ele já mandou ordem lembra que eu criei uma variável zinha aqui chamada vorder
placed então vamos fazer o seguinte eu vou colocar aqui ó dizer que o meu V Order plac igual a verdadeiro a mesma coisa aqui para baixo ou seja sempre que ele colocar uma ordem ele define essa variável como verdadeira e eu não vou mais deixar ele aqui certo e not V Order placed ou seja ele só vai executar o código se eu tiver abaixo só vai Executar a compra né mandar ordem de compra se tiver abaixo da linha do Meio se eu não tiver posicionado ou seja se eu não tiver já com uma ordem e
executada E se eu já não tiver colocado uma ordem antes certo então isso aqui vai nos ajudar a evitar esse monte de ordem beleza só que tem um problema vocês já sabem qual o problema né ele só vai mandar uma ordem porque eu nunca tô resetando essa variável mas vamos ver né para vocês entenderem como é que vai ó Ctrl F5 Cadê ó tá vendo ó mandou uma ordem e nunca mais ele vai mandar uma ordem não preciso deixar executando o código todo né para mostrar para vocês que isso não não faz sentido Então vou
parar aqui ganhou r$ 2 e nunca mais fez nada então vamos voltar aqui pro código e aqui é o seguinte toda vida que a gente e tem tem tem várias situações pra gente resetar isso aqui para poder botar a ordem de novo uma delas toda vida que mudar a barra porque a gente quer que ele varie né o preço na banda de binger ou se ele tivesse uma posição e deixou de ter uma posição então o que que a gente vai fazer aqui ó a gente vai fazer o seguinte todas as vezes botar bem aqui
no começo do código vou tirar esse comentário certo então if Order Total toda vida que a minha quantidade de ordem tiver zerada ou seja não tenho ordem nenhuma eu posso jogar outra ordem na tela então V orders placed igual pa Beleza então ó vamos rodar aqui isso aqui já deve resolver parcialmente o nosso problema tá vendo ó agora ele toda vida que ele fica sem ordem ele coloca a ordem pronto executou tudo no caso deu game né Parece Mágica parece milagroso aí o histórico deles ó loss loss loss loss loss loss vários loss Aí depois
ele tem Cadê o Profit ó Profit ó ele tem loss bem curtos e E ganha os melhores por isso ele deu resultado bom aqui é estranho porque o l deveria ser fixo né não sei porque que ele tá pegando L diferente aqui mas por alguma razão ele tá ó isso aqui parece que tem alguma coisa errada no código aqui ó quando ele executa esse monte de coisa aqui de uma vez Ó isso não parece correto parece que tem alguma coisa errada mas enfim não dá para saber ainda Beleza só debugando pr pra gente ver então
vamos ver aqui se tem alguma coisa ó vbb High vbb low vai vendendo High entry Price menos game entry Price é esse cara menos game mais e loss deixa eu ver esse aqui é o então se ele vendeu aqui o loss dele é para cima e o game para baixo como é que tá configurado esses valores game 200 e loss 150 Ah então assim ó a gente tem aqui né os preços de entrada agora que que a gente precisa melhorar aqui aqui ele ainda não tá fazendo a variação do is new bar ou seja ele
tá mantendo é por isso que ele tá dando ele tá mantendo as entradas sem acompanhar a banda então quando a gente olha aqui ó o resultado Ó você vai ver que às vezes tem entrada dele fora da banda ó ele comprou aqui provavelmente deu Stop aqui não comprou aqui stop loss aqui e e não tava na Banda provavelmente isso aqui era uma ordem antiga Ó você quera uma ordem que vinha lá de trás Então o que a gente tem que fazer aqui também é o seguinte if new bar eu também vou fazer fazer o seguinte
eu vou fazer ah eu vou cancelar todas as ordens E aí para cancelar todas as ordens o Profit também não te dá isso muito fácil Vamos criar mais uma função aqui vou colocar ele aqui no final então eu criei uma função chamada Close All Open orders beleza aonde eu passo o símbolo que é o ativo e a minha variável de abertura fechamento manipulação de ordens Então a gente vai ter aqui ó para todas as ordens que estão em aberto e normalmente vai ser só uma né para cada uma delas eu vou pegar o identificador da
ordem eu vou verificar se aquela a ordem é de fato porque assim eu poderia ter ordem de diversos diversos ativos porque o metatrader ele bota tudo na mesma panela certo então assim eu poderia ter ordem de vários ativos e aí eu tenho que ver se eu tô cancelando a ordem daquele ativo mesmo então assim ó aqui que que eu faço e enquanto eu tiver ordem aberto Isso aqui é uma função minha também eu não deixo ele sair ou seja eu vou fazer isso até 10 vezes porque às vezes isso aqui é um problema problema não
é funcionamento comportamento do metatrader Às vezes você manda cancelar uma ordem esse cancelamento demora para acontecer seja por delay ou por problema na corre e você não pode simplesmente mandar cancelar uma ordem achar que cancelou que pode não ter cancelado então aqui é uma proteção esse código aqui eu peguei algum fórum inclusive que o cara fazia isso né para fazer essa proteção e assim basicamente ele faz isso ele tenta até um segundo ter a resposta do cancelamento da ordem Se não conseguir cancelar ele manda um erro fatal e a estratégia para ele vai printar isso
aqui né E dizer ó deu pau não posso executar Então eu preciso de duas funções esse Close All Open orders e eu preciso de uma função chamada também tem has Open orders que no caso é uma função também criada pela gente que eu vou colar aqui para vocês então eu tenho has Open Order então aqui a gente tem essa função chamada has Open Order que retorna um boleano né verdadeiro ou falso Eu só preciso passar o ativo e ele vai me dizer se tiver alguma ordem aberta para aquele ativo ele retorna verdadeiro ou falso é
muito parecido com aquele cara que eu tô usando aqui em cima ó bem aqui ó orders Total igual a z0 certo só que assim na realidade esse orders Total igual zer é zoado Porque qualquer ordem que tu tiver independente do ativo ele vai considerar então o ideal é que eu utilize cara também aqui ó has Open Order Symbol certo tá faltando parêntese aqui então a gente tem aqui ó o has Open Order que vai retornar verdadeiro ou falso se eu tiver uma ordem para aquele ativo e eu tenho Close All Open orders então assim toda
vida que eu começar uma Barra Nova vou apagar todas as minhas ordens Beleza então ó tô passando o símbolo né que é o ing e o trade que é a variável que a gente utiliza para abrir para manipular ordens Beleza então vou salvar vamos ver se vai dar bom aqui F7 e vamos lá cont control F5 vamos olhar aqui a estratégia por alguma razão ele não tá mandando mais orden deu algum bo aqui vamos ver tentar entender se é uma Barra Nova Close All Open orders beleza V Order placed igual a false se tiver ordem
aberta na verdade é oo contrário né se não tiver ordem aberta tá aqui o problema aqui ó Lembrando que isso aqui ó exclamação é igual a isso aqui certo vou deixar explícito aqui agora vamos rodar de novo cont control F5 aqui ó agora sim ó só que ele ainda tá fazendo alguma coisa estranha tá vendo ó que ele Ó esse monte de compra aqui ó de venda na verdade na mesma Barra tem alguma coisa aqui que não está legal vamos ver aqui no código ele só vai mandar ordem se tiver de venda no caso se
o meu close for maior se eu não tiver posição e se eu já não tiver colocado ordem lá vamos fazer o seguinte galera agora aqui é um pouco mais avançado Mas vai ser importante pra gente entender Beleza eu vou clicar duas vezes aqui na linha 104 ó tá vendo que ele colocou uma bolinha isso aqui chama Break Point toda vida que ele passar por essa linha aqui ele vai só que eu não quero nessa eu quero na venda certo ele vai parar o código e eu vou conseguir entender o que que tá acontecendo Então vamos
lá ó tá vendo ó vem aqui ó ele já parou aqui ó ele fez esse absurdo aqui de ordem eu já sei o que que é aqui sabe eu acredito aqui é o seguinte como ele tá abaixo da banda de bollinger ele enlouquece ele enlouquece ele sai mandando ordem e não deveria né Eu não posso mandar uma ordem se meu preço já tiver abaixo da banda de bollinger deixa eu tentar resolver só isso Ó mas veja ó que ele parou a execução da Estratégia certo só que na venda tá vendo aqui ó eu venho aqui
no meu código e eu consigo ver exatamente o que é que tá acontecendo aqui ó certo ó deixa eu apagar esses valores aqui ó ó meu valor de entrada eu poderia colocar aqui por exemplo meu rates zero ó e aí ele mostra aqui ó que meu rate zero ó cara isso aqui é é outro nível né comparado ao Profit qual é o time Qual é o open Qual é o low Qual é o High Ah eu quero quero ver qual que é o valor da minha da minha variável V Order placed é para est falso
né senão ele nem teria entrado aqui ó falso E aí eu posso fazer step over F10 ó ó mudou para true porque acabou de passar por ela isso aqui é poderosíssimo então vou interromper aqui certo além de interromper que que eu vou fazer aqui eu vou tirar o Break Point e aqui eu vou fazer o seguinte além dessas condições eu só vou mandar ordem se o meu se o meu hates 0 pon Close também for maior do que o meu vbb low BB low zero e no caso aqui se o meu close for tiver abaixo
da banda superior Então pessoal vamos executar aqui o código verdade é cont control F5 tá rodando ó agora ele parece muito mais consistente ó certo eu não vi nenhuma venda achei estranho vamos ver ó ó deveria ter vendido por aqui ó então deu algum bo no código da venda certo algum bo no código da venda aqui ele comprou aqui ele comprou foi stopado comprou de novo foi stopado comprou stop mas ele não está vendendo não sei por quê vamos olhar o código tentar identificar porque que ele não tá vendendo quando eu viro a nova barra
eu fecho todas e Order placed false tá o meu tem que ser menor ah pessoal tá aqui o problema ó aqui não é vbb High certo o problema é aqui aqui era o meu Middle beleza vamos ver aqui ó F7 opa deu errado que esse cara não existe não existe porque eu tô usando o nome errado aqui midle tem 2ds pessoal vou corrigir isso aqui né vamos ver se vai dar bom agora cont F5 Agora sim ó agora ele tá sendo stopado para caramba dá bom é executar né não é ainda Ganhou alguma coisa aqui
beleza só que aqui pessoal como eu falei para vocês eu não quero colocar o stop fixo eu quero colocar o stop sempre no no meio da banda belezinha Então a gente vai usar a nossa variável de take Profit que eu criei certo então aqui ó junto com entry Price a gente vai botar aqui take Profit é igual take Profit vai ser também né o arredondamento do meu vbb Middle certo beleza para os dois tanto faz venda então agora o nosso take Profit mudou e eu vou fazer o seguinte eu vou tirar o stop loss certo
vou tirar o stop loss da da equação aqui ó sem Stop loss vamos executar de novo aqui cont control F5 vamos dar uma olhadinha aqui ó como ele não tem Stop loss ele operou muito menos certo mas ó ele comprou aqui e fechou aqui não deveria né porque vamos ver aqui o que foi que eu fiz de errado tá aqui ó aqui é para ser tem take Profit e aqui também é para ser take Profit vamos lá cont F5 Ah agora sim só que vocês vão vocês vão perceber uma coisa bizarra ainda certo que é
o quê ele comprou aqui e deveria ter vendido aqui e não aqui concordam por melhor que isso tenha sido o meu objetivo era era fazer ele vender aqui mas por que que ele vendeu aqui porque eu tô usando o valor da banda do meio aqui ó dessa barra então tenho que atualizar esse cara aqui todo tick idealmente todo ticket né Poderia atualizar todo o ticket todo tick esse valor de forma que o meu take Profit inclusive pudesse virar um loss certo então assim ó vamos mexer aqui na estratégia para que se não se else if
vamos atualizar só na Nova Barra certo new bar e position select Symbol se eu tiver posicionado certo então se eu tiver posicionado nós vamos fazer o seguinte que o meu take Profit vai variar e o meu trade ponto esse cara aqui novidade ó position modify certo vou modificar a posição caso Simbol não vou mexer no stop loss e vou botar aqui o novo take Profit certo então aqui a gente também agora vai atualizar vocês vão ver que ele vai sair bem na banda do meio ali né no canal do Meio vamos lá contol F5 ó
aqui já dá para ver mais ou menos que deu bom né deu bom e deu ruim na verdade vamos lá ó vamos pegar esse caso aqui ó ele comprou como não tem Stop loss ele só vai dar loss quando a banda né descer quando ele encostar na banda que pode ser no infinito né então ele chegou aqui ó e tomou Stop loss aí daria para fazer umas coisas mais inteligentes do tipo ah não eu quero eu quero usar o quero de fato usar um Apesar que esse L nem é tão grande aqui né Se a
gente for pegar para valores vamos ver aqui ó de pontos ó não 600 pontos é grande pancada né Deve ter devolvido tudo aqui não devolveu tudo porque ainda ficou com lucro mas assim só para vocês sentirem a a a ideia né a gente poderia voltar aqui e ter lá o o o l o loss fixo né então por exemplo vej de zero I loss a loss e na verdade eu teria que colocar aqui o qu teria que colocar o o entry price Ah aqui é compra no caso menos e loss e entre Price Mais eoss
e aí a gente pode dizer que o nosso o nosso eoss vamos configurar ele aqui ó cadê cadê cadê cadê cadê tanta coisa o meu Eos aqui ó 150 vamos botar aqui 300 aí vai fixar ele então eu venho aqui no meu editor e mando bala então ele vai sempre ter um loss de 300 pontos então no caso daquele cara lá vamos ver como é que ele vai sair ó tá vendo ó ele deu loss também só que o loss agora foi Ué por que que ele deu loss de 600 pontos não era ah por
causa desse cara aqui ó tá vendo ó eu tenho que ajustar esse cara aqui também a quando eu modifico a posição eu tenho que manter o meu meu Stop loss E aí aqui como é que eu posso fazer isso eu acho que é position get T position SL que é o stop loss original da posição esse cara aqui vai me vai vai me retornar o stop loss pré-configurado da posição vamos ver se vai dar certo agora cont control F5 ó aparentemente deu certo ó aquele cara lá saiu com 300 pontos mais ou menos aqui eu
não tô pegando no ponto correto Mas ou seja todo o meu Stop loss agora vai ser mais ou menos 300 pontos e no caso a estratégia aqui né deu deu um gamezinho beleza e pessoal o seguinte essa estratégia aqui ainda se vocês olharem para ela falta algumas coisas por exemplo eu não tenho limitação do horário de entrada do jeito que tá aqui ele vai rodar o dia inteiro outra coisa também é importante né como é Day trade a gente quer que a posição encerrada no final do dia para fazer isso eu preciso criar uma função
que limita a operação dentro daquele horário estipulado eu já tenho essa função novamente é mais uma função que não é tão simples de explicar mas eu já vou deixar aqui para vocês depois a gente pode se aprofundar nessas funções mas ele faz Exatamente isso ele pega o meu horário de início de fim ele tem que fazer umas umas conversões aqui ó fazer umas conversões porque ele não trabalha com string Ele trabalha com realmente datas né e datas é um é uma classe no caso do metatrader El não é simplesmente ente um número inteiro como a
gente faz no Profit é muito mais fácil trabalhar no Profit mas assim confiem e entendam que essa função chamada allow it by hour vai dizer se você tá dentro do horário permitido ou não de operação e aí para fazer ele funcionar ó eu venho bem aqui e faço o seguinte ó if not allowed by hour aí eu vou passar os parâmetros deixa eu colocar aqui para vocês certo paraa gente ganhar um pouquinho de tempo aqui eu vou colocar logo a função inteira ó certo que é essa aqui ó então se eu não tô permitido pela
hora aí eu passo h Inicial hora final esse comentário aqui é só mesmo para ele aparecer o closing lá em cima ele vai fazer um trade pon position Close vai encerrar a minha posição vai fechar todas as ordens e vai retornar então enquanto eu tiver fora do meu horário de operação ele não executa mais nada lá para baixo só que mesmo assim eu quero manter se for um barra uma Barra Nova eu quero que ele feche todas as minhas ordens e aberto e aí continua aquela lógica que eu já expliquei para vocês vamos executar assim
e ver se ele realmente vai proteger os horários de entrada e saída Então tá rodando aqui ó ó abriu um novo dia e ele não operou mais depois das 5 horas ó das 5:30 na verdade então vamos ver aqui ó no comecinho ó ele só começou a operar depois das 9:5 provavelmente ele só iria operar depois desse horário mesmo por causa da Banda No final do dia se ele tivesse posição aqui não sei se era o caso aqui ó ele iria não aqui não era o caso porque ele saiu na banda do meio ele iria
encerrar então aparentemente tá consistente Então a gente tem uma estratégia aqui que opera a banda de B beleza no caso opera na banda de bollinger do Minuto do gráfico que você selecionou e no ativo que você selecionou esse cara aqui em teoria para funcionar com outros instrumentos dólar ação você precisaria ajustar esses parâmetros aqui ó né porque você não pode botar simplesmente 200 150 em um né se você tá trabalhando com ação você vai trabalhar ali com centavos Você tá trabalhando com com dólar você vai trabalhar aqui de 05 em 05 né de 0 05
1 1,5 mas em teoria o que tá aqui você pode usar dá para qualquer coisa belezinha Então pessoal vou voltar aqui pra minha pra minha tela esse código certo ele vai tá disponível para todo mundo que é membro do canal na pastinha do Google Drive para você que não é membro do canal ó vou dar a chance aqui de você copiar enquanto eu falo ó certo Deixa eu tirar essa tela aqui ó eu vou passando aqui para você copiar Mas acho que quem viu o vídeo do começo ao fim também consegue dando pause né e
copiando de pouquinho em pouquinho e se der algum bo aí pessoal meta Trader meta Trader é por um lado ele te permite debugar como eu mostrei para vocês pro outro lado ele é mais complicado porque você tem que gerenciar tudo mas enfim pessoal é tá aqui finalmente o metatrader Espero que tenham entendido Espero que tenham gostado daqui pra frente vai ficando mais fácil mais fácil no sentido de que o grosso tá aqui né se você conseguir entender um pouco Da Lógica botar para rodar aí fazer o teste mexer vai você vai ver que que não
é tão complicado quanto parece Ó o antique aqui é o nosso Core né Core do código então vou passar aqui rapidamente e aí galera Ó E aqui as nossas funções auxiliares né que sem esses caras aqui Putz Imagina você ter que escrever isso aqui dentro do código toda a vida né ó allow it by hour para você saber se tá no horário permitido a função para arredondar o preço a função para fechar todas as ordens essa função aqui ela um pouco mais complexa a função para verificar se tem alguma ordem aberta daquele daquele ativo e
a função para dizer se você tá numa Barra Nova ou não belezinha Então pessoal gostou não gostou dá o like Não importa quero o seu like aí mesmo que você não tenha gostado porque já tô gravando aqui uma bocado de hora e foi difícil fazer isso aqui foi doloroso então prestigia aí se inscreve no canal botãozinho aí de notificação importante para você saber eu geralmente Faço umas lives surpresa de última hora é às vezes para melhorar o código às vezes para mostrar como é que o código tá desempenhando durante o dia compartilha com seus amigos
amigas que você acha que tem interesse e galera assim muito obrigado aí né pela pelo prestígio e aguardo vocês aí até o próximo vídeo e quem for membro ó Muito obrigado pelo apoio mais uma vez Valeu fui tchau