Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1132

 
Vladimir:
Em algum lugar da ajuda, os desenvolvedores disseram que nenhuma classificação é garantida.

Há sempre um pedido no bilhete. O bilhete de um pedido posterior nunca será menor que o de um pedido anterior (por ocasião da abertura).

E se procurarmos entre as ordens pendentes, então apenas em ordem - a ordem com número 0 - é a ordem mais antiga, e a ordem com número OrdersTotal()-1 será a ordem mais recente (novamente, por tempo aberto), sem levar em conta o tipo.

No histórico das ordens fechadas, ainda depende da classificação na guia de histórico da janela do terminal.

 

Tive que pesquisar. Não o encontrei na Referência MQL5, mas o encontrei na Referência OrderSelect para MQL4:

"Ao utilizar o parâmetro SELECT_BY_POS, a informação é devolvida na ordem em que foi recebida do servidor comercial. Não é garantida a classificação da lista de pedidos recebidos".

Na verdade, eu verifico sistematicamente se as listas que utilizo têm ordenação por número de bilhete. Não houve casos de sua ausência. Mas também não se pode discutir com a referência, não há argumentos. Ainda bem que é assim...

 
Vladimir:

Tive que pesquisar. Não o encontrei na Referência MQL5, mas o encontrei na Referência OrderSelect para MQL4:

"Ao utilizar o parâmetro SELECT_BY_POS, a informação é devolvida na ordem em que foi recebida do servidor comercial. Não é garantida a classificação da lista de pedidos recebidos".

Na verdade, eu verifico sistematicamente se as listas que utilizo têm ordenação por número de bilhete. Não houve casos de sua ausência. Mas também não se pode discutir com a referência, não há argumentos. Ainda bem que é assim...

O que você quer dizer com "nada"? Ordenar por bilhete - sempre haverá ordem e nenhuma contradição com a documentação, diz sobre ordenação por número de série, não por bilhete, estas são coisas diferentes.
 
os caras me dizem como testar com os novos builds que estão sempre mudando e o que funcionou agora não funciona eu faço o download de citações da luz de dicas e importo citações no terminal para builds1010 tudo de bom e o novo1045 isso tudo não funciona em que problema alguém sabe?
 
Vitalie Postolache:
O que você quer dizer com "sem classificação"? Ordenar por bilhete - sempre haverá ordem e não há contradição com a documentação, diz sobre ordenação por número de bilhete, não por bilhete, estas são coisas diferentes.
E em algum lugar da documentação está escrito sobre a classificação por número de bilhete? Você pode me dizer, eu não sei.
 
Vitaly Muzichenko:

Execute este código, e leia o log

bool flag=true;

void OnTick()
{
//--
if(flag)
  {
  for(int i=0; i<OrdersTotal(); i++)
   {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
     Print(i," = ",OrderOpenTime());
    }
   }
  flag=false;
}

//-
}
Obrigado! Entendi.
 

Outro problema que eu encontrei! Não julgue, estou estudando o idioma há 2-3 semanas, talvez eu seja apenas burro!

A tarefa no Expert Advisor é notificar o trader via e-mail a cada 4 horas, se a margem livre na conta tiver acrescentado um certo valor.

No assunto da mensagem você tem que escrever o nome do corretor e do par negociado, e no corpo da mensagem "Perigo! O saque está acima do limite. Tomar as medidas necessárias".

O compilador está com defeito de funcionamento, não sou bom em inglês e não consigo descobrir qual é o erro!

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS: Talvez em geral haja uma solução mais fácil para este tipo de problema, mas até agora só vejo desta maneira)

 
Uma palavra de conselho para um boneco. Como abrir uma conta real?
 
Anton Sokolov:

Outro problema que eu encontrei! Não julgue, estou estudando o idioma há 2-3 semanas, talvez eu seja apenas burro!

A tarefa no Expert Advisor é notificar o trader via e-mail a cada 4 horas, se a margem livre na conta tiver acrescentado um certo valor.

No assunto da mensagem você tem que escrever o nome do corretor e do par negociado, e no corpo da mensagem "Perigo! O saque está acima do limite. Tomar as medidas necessárias".

O compilador está reclamando, eu não sou bom em inglês e não consigo descobrir qual é o erro!

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS: Talvez em geral exista uma solução mais simples para tal problema, mas até agora só vejo isso desta forma)

Eu não sei do que se trata.

Quais são os erros do compilador

 

prıvet.podjalujte pojalusta pozwala why on demo schete ne mogu otkrıt zdelkı