Iniciação à programação em MQL4
5 Ficheiro(s) em Anexo
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:cool:), 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): Anexo 58 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... Anexo 62 ...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. Anexo 60 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. Anexo 61 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: Anexo 59 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. |
E continuando o que ensina o VAM...
Além do Alert(); poderíamos tb usar uma função muito recorrida que é o Comment(); O Alert(); abre um popup como mostra a imagem... O Comment(); escreve o resultado no canto superior esquerdo. Portanto sempre visivel. É de salientar que ambas as funções tem a particularidade de converter os diferentes tipos de variáveis ao tipo carácter. Só temos que separar diferentes tipos com a virgula. Não temos pois que nos preocupar com este aspecto, embora logicamente o MT4 tenha as correspondentes funções de conversão. Poderíamos assim colocar: Alert('O spread actual é de ',sprd); Comment('O spread actual é de ',sprd); Há ainda funções para por o texto em qualquer parte do ecrán, com cor, tipo e tamanho de letra entre outras subtilezas. Mas já um é algo mais complicadilho. |
alguem pode ajudar a reprogramar este ea
ele abre posições sem parar. o que eu quero é que ele abra 6 posições e quando abre a 7 seja de igual valor da primeira mas feche a primeira. isto porque se trata de um ea martingale. assim teremos no maximo 6 posições abertas e não rebentamos a conta.
muito obrigado pelo tempo e cuidado dispensado. junto ea que é livre no forum tsd. chama-se fredmon pip10p3+.mq4.não consegui carregar o ficheiro |
Vejamos...
Você pode limitar o numero de posições abertas em simultâneo. Pode colocar uma var global nos externs.. extern int nPos = 7; E depois antes da função de abertura, testar int nP = OrdersTotal(); if( nP < nPos ) { // Só entra aqui se o nº de ordens aberta é inferior a nPos if (Abrir==1) { fOpenS();return(0);} if (Abrir==2) { fOpenB();return(0);} } OrdersTotal(); // Dá o numero de ordens abertas. TODAS de qualquer PAR e Grafico. Se não entende nada disto, aconselho a editar os EAs e procurar esta função OrdersTotal() e a lógica usada no seu uso. Vai rapidamente ver como se usa. |
boa tarde
afonseca, estava pesquisando pela internet como poderia fazer o meu expert advisor e vejo que voce percebe de programação.
Tenho ando a analisar gráficos e tenho uma teoria que gostaria de poder passar para um ea, voce podia ajudar-me? julgo que esta teoria seja mesmo muito boa, diga-me qlq coisa para o meu e-mail, poix n gostaria de expor aqui a teoria obrigado [email]jpedropimenta@hotmail.com[/email] |
Bullinger, suponho que se referia a AFernandes pois não vejo aqui nenhum AFonseca...
Com sinceridade, sim que sei algo de EAs, depois de testar milhares e fazer centenas... MAS ESTOU SEM DISPOSIÇÃO PARA PEGAR EM EAs. Não é uma questão de TEMPO, que tenho, é não acreditar que um EA completamente automático seja lucrativo. Eu uso um EA, mas é apenas um executor e alertador de situações. Ao contrário, pelo menos o VAM, sim que aposta no EAs. E acredito que tenha sucesso, que nos EAs, penso eu, tb funciona o principio do que funciona com um, não funciona forçosamente com outros. Parece tudo muito automático, mas há questões como o risco, os PARES, as Horas e mais coisas de certeza que nao controlo) De qualquer forma, agradeço a disponibilidade em compartir estratégias. |
pode ajudar-me
entao so queria que voce visse essa ea e me disse-se como a posso meter a funcionar, porque eu fiz o dowload e n consigo que ela funcione.
sabe que posso fazer? [url]http://www.forexfactory.com/showthread.php?t=19073[/url] está neste link, é necessário fazer uma alteração mas isso já consegui, só n consigo fazer mete-la a funcionar.. pode ajudar-me por favor??? |
Sim...
Vou ver hoje ou amanha.. tá? Já o baixei AF |
eu n sei se essa ea tem mais alguma analise, mas eu queria meter isso a funcionar só com bollinger a peridodo 10 e desviations 3 e shif 0 com aplicado ao fecho.
veja se é possivel funcionar com essa ea só com a analise das bollinger. obrigado |
O EA trabalha perfeitamente.
Há que levar em conta, que se é testado em um broker de 5.º digito, como o Alpari, IBFX etc... se deve multiplicar o valor em: TakeProfit e StopLossATR por 10 Ou seja em lugar dos 20 e 10 que lá estão, colocar 200 e 100 respectivamente. Alem das Bandas de Bollinger usa tb o DeMarker e o ADX no que se refere à abertura de ordens. No caso de querer alterar os valores para Bands... posso colocar 3 variáveis nos inputs para o Período, desviaçao e shift Diga-me se efectivamente quer isso. Uma coisa que não gostei... é que põe uns SLs exageradissimos... Mas tb opinar só na base dos testes históricos nao tem muita validade. |
bom dia!
antes de mais deixe-me agradecer as suas respostas! eu trabalho com fxpro que acho que tambem tem 5 digitos, por isso vou ter que alterar isso para *10. mas quero meter take profit a 60 pontos (6 pips) e stop loss a 50 pontos (5 pips), mas isso sao ajustamentos que eu consigo fazer! em relação ao bollinger, eu queria meter periodo 10, desviação 3 e shift 0. Falou-me no DeMarker e o ADX no que se refere à abertura de ordens, isso serve para q? Eu queria abrir as ordens qd o gráfico passava a linha da bollinger (periodo 10, desviations 3 e shift 0) , é isso que isto faz? Obrigado Outra coisa pode me fazer as alterações e enviar par ao meu e-mail? [email]jpedropimenta@hotmail.com[/email] Se tiver esta versão actualizada, posso meter no examinador de estratégias?? Só mais uma coisa, diga o que acha desse EA? conhece alguma melhor? Eu tive a estudar e se essa EA abir as ordens qd toca nas bollinger eu n acho q que seja má, mas deixe a sua opiniao!!! Mais uma vez obrigado por tudo! |
Lembrei-me uqe me faltaram falar de mais uns ajustes:
Gostava que o ea: -só entrasse quando o spread fosse no maximo 2 pips (20 Pontos no meu Broker), -que tivesse no ecram sempre que fizesse a entrada os pips que estava a ganhar, -e que só entrasse uma vez de cada vez, quando tivesse uma ordem aberta, que n fosse possivel abrir outra, -e que só duas candles depois podesse entrar, como vou meter a funcionar com 5 min, seram depois de uma entrada teria de aguardar 10 min para entrar novamente; Ficava-lhe muito agradecido de me fizesse estas alterações, e que me explicasse se algum dia as quisesse tirar como fazer. Obrigado |
Queria pedir-lhe mais uma coisa, se fosse possiver meter aqui o ea para fazer-mos o dowload ou me envia para o meu e-mail (jpedropimenta@hotmail.com), porque fui ao link que tinha dado anteriormente e já não deixa fazer o dowload e fui alterar algumas coisas no ea e sem querer gravei por cima e deixou de funcionar.
obrigado |
bom dia!
antes de mais deixe-me agradecer as suas respostas! -mas quero meter take profit a 60 pontos (6 pips) e stop loss a 50 pontos (5 pips), é possivel? -em relação ao bollinger, eu queria meter periodo 10, desviação 3 e shift 0. [b]Falou-me no DeMarker e o ADX no que se refere à abertura de ordens, isso serve para q? Eu queria abrir as ordens qd o gráfico passava a linha da bollinger (periodo 10, desviations 3 e shift 0) , é isso que isto faz? Se tiver esta versão actualizada, posso meter no examinador de estratégias?? Tambem gostava gostava que o ea: -só entrasse quando o spread fosse no maximo 2 pips (20 Pontos no meu Broker), -que tivesse no ecram sempre que fizesse a entrada os pips que estava a ganhar, -e que só entrasse uma vez de cada vez, quando tivesse uma ordem aberta, que n fosse possivel abrir outra, Obrigado por tudo!!! Outra coisa pode me fazer as alterações e enviar par ao meu e-mail? [email]jpedropimenta@hotmail.com[/email] |
onde arranjar scripts feitas
Boas
Eu gostava de arranjar umas coisas para metatrader 4, eu queria arranjar umas scripts e ou uns EAs que dessem para mover os stops loss e os take profit através do rato. Alguém me pode ajudar? é que eu também não percebo muito de programar isto e acho que estas coisas se consegue arranjar feitas. Já encontrei algumas na net mas não consegui instalar aquilo ou entao não tinha aquela finalidade. Cumps |
good day! sorry for my english, I'm using a translator.
would like a information! I want to make a mt4 expert who shops alternating example: * A 10 ma crosses upwards one ma 80 (the buy signal with lot 1) * And when a ma 10 crosses from top to down a 80 m (the for sale sign with lot of 2) * New one ma 10 crosses upwards one ma 80 (the buy signal with set of 3) * When a new ma 10 crosses from top to down a 80 m (the for sale sign with lot of 4) and so on if you can help me I am very grateful! thank you |
Meu par de moedas de negociação é o EUR / USD. E você?
|
Todas horas estão no fuso horário GMT. A hora actual é 10:06. |
Powered by vBulletin Version 3.6.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.