Com a popularização dos sistemas de trading automático, particularmente através da plataforma MetaTrader, são cada vez mais os que se interrogam como é que podem programar as suas estratégias ou apenas recolhas de informação mais simples de forma a automatizá-las.
Aquilo que recomendo vivamente é que se vá à fonte (the source
), ou seja, ao livro do MQL4 que está disponível online em [URL="http://book.mql4.com/"]http://book.mql4.com/[/URL]
De qualquer forma pretendo com este post mostrar os passos básicos de como é que se constrói e usa um programa no MetaTrader para que seja mais fácil para todos compreender o que é que se deve fazer com linhas de programação que tenham sido ou venham a ser partilhadas no futuro e até quem sabe um dia construir EAs inteiros em conjunto.
O MetaTrader já tem um compilador da linguagem MQL4 incorporado por isso para passarem para a parte de programação basta clicarem no botão MetaEditor (Ponto de exclamação dentro do losango):
Se é a primeira vez que abrem o MetaEditor devem estar a ver o código de um dos dois EAs disponibilizados pela MetaQuotes: a Moving Average e a MACD. Clicam em New que é logo o primeiro botão à esquerda...
...e seleccionam que tipo de programa é que querem fazer. Neste caso será um script. Indicam o nome do script e o vosso nome e clicam em concluir.
Para este exemplo peguei na linha disponibilizada pelo afernandes noutro tópico para ver o spread de um par: double sprd =MarketInfo(Symbol(),MODE_SPREAD);
Depois de clicarmos em Concluir surge logo o corpo do script com o nome que escolhemos e o nosso e neste caso apenas uma função Start já que um script pressupõe que o programa só será executado uma vez. No caso de um EA também teria as funções Init e Deinit para a primeira e última vezes em que o EA corresse já que a função Start irá ser activada por defeito cada vez que o mercado se mova (cada tick).
Para fazer então funcionar a linha de programação mencionada basta colocá-la no interior (entre os {}) da função Start e antes do comando return. Coloquei também a linha Alert(sprd); para que o valor identificado na linha anterior seja divulgado no ecrã quando o script for executado.
Quando estamos satisfeitos com o programa clicamos em Compile e se surgir a mensagem 0 error(s), 0 warning(s) está tudo bem pelo menos do ponto de vista da compilação.
Para utilizar o novo script voltamos à plataforma e abrimos o Navigator (botão com uma pasta e uma estrela) e abrimos o grupo scripts que deverá ser o último e parece um pergaminho.
Lá no meio localizamos o nosso script e para o activar clicamo-lo e arrastamo-lo para o gráfico onde o queremos executar. Neste caso em concreto o resultado será um pop-up com a indicação de qual é o spread do par:
Este valor está em pipettes e não em pips porque este broker em concreto decidiu acrescentar mais uma casa decimal às cotações, logo o spread neste caso é 4 pips para o USDCAD.
Temos assim um programa bastante simples mas que nos permite obter de imediato uma informação importante. Se mantivermos a mesma estrutura substituindo apenas o termo MODE_SPREAD na primeira linha podemos obter uma série de outras informações. Experimentem por exemplo com MODE_ASK, MODE_BID, MODE_POINT, MODE_STOPLEVEL, MODE_LOTSIZE, MODE_MINLOT, MODE_MAXLOT, etc.