Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1132

 
Vladimir:
Quelque part dans l'aide, les développeurs ont indiqué qu'aucun tri n'est garanti.

Il y a toujours une commande sur le billet. Le ticket d'une commande ultérieure ne sera jamais plus petit que celui d'une commande antérieure (par le temps d'ouverture).

Et si nous effectuons une recherche parmi les ordres en attente, dans l'ordre, l'ordre portant le numéro 0 est l'ordre le plus ancien, et l'ordre portant le numéro OrdersTotal()-1 sera l'ordre le plus récent (encore une fois, par le temps d'ouverture), sans tenir compte du type.

Dans l'historique des ordres clôturés, cela dépend toujours du tri effectué dans l'onglet historique de la fenêtre du terminal.

 

J'ai dû vérifier. Je ne l'ai pas trouvé dans la référence MQL5, mais je l'ai trouvé dans la référence OrderSelect pour MQL4:

" Lorsque vous utilisez le paramètre SELECT_BY_POS, les informations sont renvoyées dans l'ordre dans lequel elles ont été reçues du serveur commercial. Aucun tri de la liste des commandes reçues n'est garanti."

En fait, je vérifie systématiquement si les listes que j'utilise disposent d'un tri par numéro de ticket. Il n'y a pas eu de cas d'absence. Mais vous ne pouvez pas non plus argumenter avec la référence, il n'y a pas d'argument. C'est aussi bien, c'est aussi bien...

 
Vladimir:

J'ai dû vérifier. Je ne l'ai pas trouvé dans la référence MQL5, mais je l'ai trouvé dans la référence OrderSelect pour MQL4:

" Lorsque vous utilisez le paramètre SELECT_BY_POS, les informations sont renvoyées dans l'ordre dans lequel elles ont été reçues du serveur commercial. Aucun tri de la liste des commandes reçues n'est garanti."

En fait, je vérifie systématiquement si les listes que j'utilise disposent d'un tri par numéro de ticket. Il n'y a pas eu de cas d'absence. Mais vous ne pouvez pas non plus argumenter avec la référence, il n'y a pas d'argument. C'est aussi bien, c'est aussi bien...

Que voulez-vous dire par "rien" ? Trier par ticket - il y aura toujours de l'ordre et aucune contradiction avec la documentation, elle parle de trier par numéro de série, pas par ticket, ce sont des choses différentes.
 
les gars dites-moi comment tester avec les nouveaux builds ils changent tout le temps et ce qui fonctionnait maintenant ne fonctionne pas je télécharge des citations depuis le tipstory light et j'importe des citations dans le terminal pour les builds1010 tout va bien et le nouveau1045 toute cette chose ne fonctionne pas dans quel problème quelqu'un sait ?
 
Vitalie Postolache:
Que voulez-vous dire par "pas de tri" ? Trier par ticket - il y aura toujours un ordre et il n'y a pas de contradiction avec la documentation, elle parle de trier par numéro de ticket, pas par ticket, ce sont des choses différentes.
Et quelque part dans la documentation est écrit sur le tri par numéro de ticket ? Pouvez-vous me le dire, je ne sais pas.
 
Vitaly Muzichenko:

Exécutez ce code, et lisez le journal

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;
}

//-
}
Merci ! Je l'ai eu.
 

Un autre problème que j'ai rencontré ! Ne jugez pas, j'étudie la langue depuis 2 ou 3 semaines, peut-être que je suis juste stupide !

La tâche du conseiller expert est d'informer le trader par e-mail toutes les 4 heures, si la marge libre sur le compte a ajouté une certaine valeur.

Dans le sujet du message, vous devez écrire le nom du courtier et la paire négociée, et dans le corps du message "Danger ! Le tirage au sort dépasse la limite. Prenez les mesures nécessaires".

Le compilateur fonctionne mal, je ne suis pas bon en anglais et je n'arrive pas à comprendre quelle est l'erreur !

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 : Peut-être qu'en général il y a une solution plus facile pour ce genre de problème, mais jusqu'à présent je ne vois que cette façon de faire)

 
Un conseil à un mannequin. Comment ouvrir un compte réel?
 
Anton Sokolov:

Un autre problème que j'ai rencontré ! Ne jugez pas, j'étudie la langue depuis 2 ou 3 semaines, peut-être que je suis juste stupide !

La tâche du conseiller expert est d'informer le trader par e-mail toutes les 4 heures, si la marge libre sur le compte a ajouté une certaine valeur.

Dans le sujet du message, vous devez écrire le nom du courtier et la paire négociée, et dans le corps du message "Danger ! Le tirage au sort dépasse la limite. Prenez les mesures nécessaires".

Le compilateur se plaint, je ne suis pas bon en anglais et je n'arrive pas à comprendre quelle est l'erreur !

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 : Peut-être qu'en général il y a une solution plus simple pour un tel problème, mais jusqu'à présent je ne vois que cette façon de faire)

Je ne sais pas de quoi il s'agit.

Quelles sont les erreurs du compilateur

 

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


Raison: