![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
esse código não faz com que cada comércio que minha EA abre expire 12 horas a partir do momento em que ela abre.
O tempo deexpiração do pedido funciona somente com pedidos pendentes. Se OrderSend() for OP_BUY ou OP_SELL, você precisa cronometrar seu pedido dentro do código. Aqui está um exemplo simples.
int OrderTime;
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask+TakeProfit*Point,"timetest",16384,0,Green)
OrderTime=TimeCurrent();
int total = OrdersTotal();
for(int cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if((OrderType() <= OP_SELL) && (OrderSymbol() == Symbol()) )
{
if(OrderType()==OP_BUY && TimeCurrent()-OrderTime>(12*60)*60)
{
OrderClose(OrderTicket(),LotsOptimized(),Bid,3,Violet);
}
}
}Wackena
código não funciona direito
Usei isto para enviar por e-mail o status da minha conta a cada hora para mim. no entanto, depois de compilá-lo e carregá-lo. ele enviou aquele e-mail perfeitamente na hora seguinte ao minuto 59, como é suposto, então ele nunca mais enviou outro. o que estou fazendo de errado? parece perfeito ?
eu não preciso dele no minuto 59, só preciso dele a cada hora!!![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
bool mail;
int start()
{
if (Minute()>=59 && !mail){
SendMail("Account Status","Account Balance is="+DoubleToStr(AccountBalance(),2)+"_Account Equity is="+DoubleToStr(AccountEquity(),2)+
"_Conta Lucro é="+DoubleToStr(AccountProfit(),2)+"_ Margem de conta é="+DoubleToStr(AccountMargin(),2)+
"_Margem Livre de Conta é="+DoubleToStr(AccountFreeMargin(),2))
mail=true;
}
talvez você precise apenas colocar correio = falso em algum momento ou apenas remover este teste na variável correio porque, é claro, o código atual enviará apenas 1 correio.
que teste na variável correio ?... eu não estou em pé, por favor explique...
que tal logo após mail=true i put
se (minuto()<=58 && !mail)
mail= falso;
acha que isso pode funcionar?...
eu acho que está codificado errado
Eu acho que você pode colocar
se (minute()<=58 && mail) // tenha cuidado não !mail mas mail
mail= falso;
e isso deve ser apenas fora do seu primeiro se , portanto não depois do correio = verdadeiro; mas depois de }
Há provavelmente melhores maneiras de codificar isso, mas isso deve funcionar
vai tentar
agradecimentos lhe darão uma chance...avisará em duas horas
ótimo funciona.... ou pelo menos parece que funciona![](https://c.mql5.com/forextsd/smiles/shades_smile.png)
??? precisam de ajuda com esta parte do código
alguém pode me dizer como escrever isso corretamente? estou tentando destacar os negócios de compra e venda abertos individualmente...
ou seja: se lance aberto > 2.
se aberto perguntar > 2.
Eu tenho o resto, não consigo codificar essa parte.
Eu sei que é simples, mas estou arrancando meu cabelo.
Alguém?
qualquer um? uau, talvez esta tenha sido uma pergunta ruim.
if(Abrir[0] > 2){ //abrir licitação
//seu código
}
if(Open[0]+(Ask-Bid) > 2){ //open ask
//seu código
}
dependendo de seu corretor, o teste de pedidos em aberto pode não funcionar