Citar:
Criado Inicialmente por joelmarques733
Boas..
Pois descobri este forum mesmo agora e devo dizer que e uma bela surpresa, finalmente em pottugues..
Pois eu ha ja algum tempo que nao trabalho em mt4..mas estou de volta..
Em relacao aos brokers, qual e o melhor em termos de fiabilidade??
E em termos de spreads??
e em termos de spreads/fiabilidade/credibilidade???
Bem ao que interessa...
Alguem me pode ajudar? preciso de saber em termos de linguagem simples mt4 o seguinte..
Apos enviar uma ordem, preciso de ter o feddback no meu EA de que essa ordem foi executada, mas preciso saber exactamente as caracteristas(numero da ordem, e mais importante o preco)..
Alguem me pode dizer como ter esse feedback e passar esses valorres para variaveis externas??
obrigado...
|
Já que a questão das corretoras já e debatida noutros tópicos dou aqui a minha contribuição no que diz respeito ao MQL4. Apesar de não mexer nele há bastante tempo ainda tenho algumas rotinas por aqui e me lembro, aliás é fácil lembrar por ser praticamente igual à Linguagem C que gosto tanto
Para vermos se devemos comprar ou não e se sim, abrirmos posição (neste caso longa):
//Ver se compramos...
if(devemoscomprar==true){
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point,"nome expert advisor",16384,0,Green);
if(ticket>0){//Se foi dada a ordem...
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Aberta Posição Longa ao preço de: ",OrderOpenPrice());
}else Print("Houve um erro a abrir a posição longa, e o erro foi: ",GetLastError());//Não foi dada a ordem...
return(0);
}
Agora, para vermos dados de ordens por exemplo, e neste caso mudarmos o trailing stop à ordem:
//Vermos se temos por exemplo posições de venda...
for(i=OrdersTotal();i>=0;i--){//Todas as ordens de trás para a frente hehe...
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);//Seleccionar a ordem...
if(OrderSymbol()==Symbol()){//Se a ordem é do câmbio onde estamos...
if(OrderType()==OP_SELL){//Se a ordem é de venda por exemplo...
if(TrailingStop>0){//Se o trailing stop existe (é maior que 0)...
if(OrderOpenPrice()-Ask>=(TrailingStop+PipsSpread)*Point){//Se o preço de abertura menos a procura é superior ao trailing stop definido mais uma diferença de spread em pips definida por nós, para podermos mudar o trailing stop...
if(OrderStopLoss()>(Ask+Point*TrailingStop)){//Se estamos fora do range do stop loss...
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Poi nt*TrailingStop,OrderClosePrice()-TakeProfit*Point-TrailingStop*Point,800,Purple);//Mudar a ordem pelo ticket, alterando o trailing para a procura + o trailing stop... etc...
return(0);
}
}
}
}
}
}
Neste exemplo de alteração de trailing stops podemos ver mais ou menos que tipo de comandos usamos para sacar certas informações. Neste caso a OrderTicket(), a OrderOpenPrice(), etc.
Há minhentas funções, ao escrevermos Order a interface de edição do MQL4 mostra-nos quais para escolhermos.
Vou colocar isto também noutro tópico para haver alguma separação de temas senão torna-se confuso falarmos de vários assuntos no mesmo tópico
Coloquei aqui a continuação deste tópico sobre informações de ordens MQL4:
[url]http://www.canalforex.com/forum/showthread.html?p=158#post158[/url]