Discussão do artigo "Guia passo a passo para iniciantes para escrever um Expert Advisor no MQL5" - página 10

[Excluído]  
pisenysh:

Ao compilar, ele apresenta um erro

o valor de retorno de 'OrderSend' deve ser verificado my_first_ea.mq5 211 10

O que pode estar errado?

Isso é um erro com certeza?
 
pisenysh:

Ao compilar, ele apresenta um erro

o valor de retorno de 'OrderSend' deve ser verificado my_first_ea.mq5 211 10

O que pode estar errado?

O compilador diz que é necessário processar o resultado da execução da função de negociação.
 

Olá, posso lhe fazer uma pergunta? O Expert Advisor negocia com precisão de até segundos? Ou seja, se eu precisar abrir e fechar negociações não apenas em uma determinada hora e minuto, mas também em um determinado segundo?

 
Grenjohn:

Olá, posso lhe fazer uma pergunta? O Expert Advisor negocia com precisão de até segundos? Ou seja, se eu precisar abrir e fechar negociações não apenas em uma determinada hora e minuto, mas também em um determinado segundo?

Um minuto consiste em cem segundos - qual deles você quer?
 
server:
Um minuto consiste em cem segundos - qual deles você quer?
Está nos anais ;)
 

Não estou entendendo!? Um minuto consiste em 60 segundos. Programo o Expert Advisor para abrir uma posição, por exemplo, às 12:30 e preciso que ele seja acionado em 45 segundos. Quando defino 12:30, tudo funciona, a transação é aberta, mas quando tento adicionar segundos, não funciona!!!?

 

Aqui está o código propriamente dito:

extern int tp = 1000;

extern int sl = 1000;
extern double Lots = 0,01;
int ticket;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket ,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
 
Grenjohn:

Aqui está o código propriamente dito:

extern int tp = 1000;

extern int sl = 1000;
extern double Lots = 0,01;
int ticket;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
Gy. Defina a verificação Seconds() >= 30, porque um segundo pode passar rapidamente e nenhum tique chegará durante ele. PS: É desejável estilizar o código com o estilo de código (botão SRC).
 
Sim, agora está funcionando, muito obrigado! O problema real era a velocidade do segundo, o tique não tinha tempo para passar por ele.
 

Por favor, me diga mais! É possível abrir e fechar posições em Expert Advisors, claramente por tempo em segundos, independentemente de ticks, como um cronômetro normal. Ou seja, se o relógio marcar 12:52:25, a posição será aberta e não aguardará um novo tique, assim como no fechamento?