Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 562

 
Aleksandr Lishchenko:

Je suis en train d'apprendre !

Ne soyez pas trop sévère ! ;)

Apprenez vous à télécharger des codes du réseau, à les attacher à votre compte et à gagner de l'argent sur l'affiliation ? Vous n'avez pas besoin de l'apprendre, c'est assez facile à faire.

 
Vitaly Muzichenko:

Apprenez vous à télécharger des codes sur le web, à les lier à votre compte et à gagner de l'argent grâce à votre affiliation ? Vous n'avez pas besoin d'apprendre à le faire, c'est assez facile.

Je veux lier l'Expert Advisor de mon auteur (commissionné) à mon compte et le placer sur un serveur douteux, qu'est-ce qu'il ne faut pas comprendre =)

Je vous demande votre aide, dites-moi ce que je dois afficher.
 
Aleksandr Lishchenko:

Je veux lier l'EA de mon auteur (commissionné) à un compte et l'héberger sur un serveur douteux, qu'est-ce qu'on ne peut pas comprendre =)

C'est pourquoi je vous demande de m'aider, en m'indiquant ce que vous devez afficher.

Vous avez la réponse.

Mais vous pouvez aussi insérer à la fin deOnInit

int OnInit()
  {
//---
  // Здесь уже есть код
//---
 // Проверка счёта
  if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
//---
 return(INIT_SUCCEEDED);
  }
 
Vitaly Muzichenko:

On vous a dit

Mais vous pouvez aussi insérer à la fin deOnInit

Êtes-vous sûr que la personne ne copiera pas à nouveau sans réfléchir ?

if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
 
Ihor Herasko:

Ce n'est pas tout à fait ça. La première chose à faire est de calculer la valeur correcte la plus proche (sur la base de la valeur définie), puis de vérifier la différence entre les valeurs. S'il est égal à zéro (ou pas plus que DBL_EPSILON), alors tout est OK :

La fonction VolumeCast peut être prise ici.

Merci beaucoup.

 
Ihor Herasko:

Ce n'est pas tout à fait ça. La première chose à faire est de calculer la valeur correcte la plus proche (sur la base de la valeur définie), puis de vérifier la différence entre les valeurs. S'il est égal à zéro (ou pas plus que DBL_EPSILON), alors tout est OK :

La fonction VolumeCast peut être prise ici.

Merci. J'affinerais juste un peu plusVolumeCast, car si nous définissons des valeurs tout à fait habituelles, par exemple, le volume du lot égal à 0,01 et le lot minimum égal à 0,01, alors que le volume spécifié par l'utilisateur est correct, par exemple, 0,03, alorsVolumeCast augmentera le volume à 0,04. Je le ferais:

double VolumeCast(double volume, double volumeMin, double volumeMax, double volumeStep)
{
   if (volumeStep == 0.0)
      return volumeMin;
   if(volumeStep!=volumeMin)
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep + volumeMin, volumeMax));
   else
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep, volumeMax));
}
 
Aleksandr Teleguz:

Merci. Seulement, j'aimerais affiner un peu plusVolumeCast, car si nous définissons des valeurs tout à fait habituelles, par exemple le volume du lot égal à 0,01 et le lot minimum égal à 0,01 et que la valeur du volume définie par l'utilisateur est correcte, par exemple 0,03, alorsVolumeCast augmentera le volume à 0,04. Je le ferais:

Oui, c'est ça.

 
Pouvez-vous me dire s'il est possible d'écrire un code qui fonctionne à la fois sur MT5 et MT4 ?
 
Roman Sharanov:
Pouvez-vous me dire s'il est possible d'écrire un code qui fonctionne sur MT5 et MT4 ?

Par exemple

#ifdef __MQL5__
        int totalPsitions = PositionsTotal();
#else
        int totalPsitions = OrdersTotal();
#endif
 
Konstantin Nikitin:

Par exemple, comme ceci

et obtenir des données à partir des indicateurs, du graphique ?