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

 
novichok2018:

Bonjour !

J'ai trouvé sur le forum une fonctionqui calcule combien de points un prix a passé pendant un certain nombre de secondes int ItemsPerSecond(const int seconds,MqlTick&tick). Je l'ai mis dans le code et compilé - tout est OK, mais quand j'essaie de l'appeler, le compilateur génère un mauvais compte de paramètres.

Qu'est-ce que je fais de mal ?

Tu ne le fais pas :

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
novichok2018:

Que s'est-il passé ?

Est-ce que tout le monde dort, ou est-ce qu'ils ont disparu?

Rire :)

 
Artyom Trishkin:

Tu ne lis pas :

Igor Makanu:écrire des réponses à des questions absurdes, c'est être paresseux

Messieurs les "petits malins" !

Vous oubliez toujours dans quel fil de discussion du forum vous vous trouvez. Je peux rappeler que la branche s'appelle"Toutes les questionsdes nouveaux venus...". Et si vous pensez pouvoir aider les nouveaux venus (vous n'êtes pas ici pour vous faire valoir, n'est-ce pas ?), il n'est pas nécessaire de répondre de manière dédaigneuse à des questions qui vous semblent stupides et absurdes, et qui sont difficiles à comprendre pour un nouveau venu sans votre aide.

Cela ne sert à rien - même si j'ai lu vingt fois "function call" dans Language Fundamentals, je ne comprends toujours pas quels paramètres doivent être saisis dans ce cas particulier.

Alors, peut-être que quelqu'un va s'élever au-dessus de la peur et me donner des conseils spécifiques ?

Merci.

 
novichok2018:

Messieurs les "malins" !

Vous oubliez toujours dans quel fil de discussion du forum vous vous trouvez. Je vous rappelle que le fil de discussion s'appelle"Toutes les questions des débutants...". Et si vous pensez pouvoir aider les débutants (vous n'êtes pas ici pour vous faire valoir, n'est-ce pas ?), il n'est pas nécessaire de répondre de manière dédaigneuse à des questions qui vous semblent idiotes et absurdes, et qui sont difficiles à comprendre pour un débutant sans votre aide.

Cela ne sert à rien - même si j'ai lu vingt fois "function call" dans Language Fundamentals, je ne comprends toujours pas quels paramètres doivent être saisis dans ce cas particulier.

Alors, peut-être que quelqu'un va s'élever au-dessus de la peur et me donner des conseils spécifiques ?

Merci.

Comment pourrais-je oublier si c'est ma branche ? :)

"Tout" ne signifie pas que nous pouvons parler de la force des boissons... Toutes les questions, plutôt "significatives". Et ce que vous demandez, ce sont les bases de n'importe quel langage de programmation, et vous venez de laisser les gens perplexes avec votre question - devrais-je commencer à vous enseigner les bases ? Mais cela dépasse le cadre de ce fil et du forum lui-même.

Je t'ai donné un lien pour t'aider - tu détournes le nez. En conséquence, avec cette attitude envers ceux qui vous montrent le chemin menant à la connaissance, plutôt que de "tout faire pour vous", vous secouerez longtemps les gens en disant "pourquoi êtes-vous silencieux, personne ne sait ou quoi ?

L'aide porte sur les fonctions et leurs paramètres formels. Et, désolé, il y a des tonnes d'exemples dans CodeBase. Ouvrez n'importe quel code et cherchez la définition de n'importe quelle fonction qui a des paramètres formels et voyez comment elle est appelée...

Eh bien, c'est facile - ne soyez pas paresseux et n'attendez pas la manne du ciel, et remuez au moins votre propre matière grise.

Je n'ai pas été diplômé de l'académie... J'ai quitté l'armée et je me suis intéressé à l'écriture de programmes pour XZ Spectrum. En BASIC... et je suis arrivé au point où j'écrivais des programmes pour lui en assembleur, et puis ça a continué encore et encore.

Et il n'y avait pas de forums, et nous partagions l'internet entre nous trois (l'un aujourd'hui, l'autre demain, moi après-demain). Et l'Internet était cher, et aussi via un modem sur des fils téléphoniques.
J'ai acheté des livres de programmation dans un marché aux puces de la radio. Maintenant, mon frère, qui a obtenu un diplôme en programmation, me demande des conseils sur la manière de procéder et sur ce qu'il faut faire.
Mais je voulais apprendre, j'étais passionné par ce sujet. Et vous ? Et toi, à mon avis, tu as besoin de quelqu'un qui fasse tout à ta place.

 
Artyom Trishkin:

Je ne suis pas diplômé de l'université... J'ai quitté l'armée et je me suis intéressé à l'écriture de programmes pour XZ Spectrum. En BASIC... et je suis arrivé au point où j'écrivais des programmes pour lui en assembleur, et puis ça a continué encore et encore.

Il n'y avait pas de forums et nous partagions l'Internet entre nous trois (l'un aujourd'hui, l'autre demain, et moi après-demain). Et l'Internet était cher, et aussi via un modem sur des fils téléphoniques.
J'ai acheté des livres de programmation dans un marché aux puces de la radio. Maintenant, mon frère, qui a obtenu un diplôme en programmation, me demande des conseils sur la manière de procéder et sur ce qu'il faut faire.
Mais je voulais apprendre, j'étais passionné par ce sujet. Et vous ? Et toi, à mon avis, tu as besoin de quelqu'un qui fasse tout à ta place.

Félicitations pour votre persévérance et votre détermination. Ce que vous avez dit est certainement digne de respect, mais exiger la même chose de tous les autres est insensé. En outre, tous ceux qui veulent écrire leur propre robot ne cherchent pas à apprendre un langage de programmation. Comme je l'ai dit plus haut, je n'ai pas un tel objectif. Si vous avez une question sur la façon de faire ceci ou cela, vous cherchez une solution dans les livres de référence, les manuels, les forums, sans trop approfondir le sujet. C'est peut-être pour cela que des situations comme celle-ci se présentent, lorsque des choses apparemment élémentaires ne sont soudainement plus claires. Bien sûr, en "remuant la matière grise", je trouverai toujours une solution. Oui, peut-être après avoir parcouru des "tonnes d'exemples dansCodeBase" et perdu beaucoup de temps. Mais la raison pour laquelle vous avez créé ce fil de discussion et pourquoi vous l'avez appelé ainsi n'est plus claire si, au lieu d'aider les débutants, vous les incitez à étudier la langue en profondeur. Vous auriez dû l'appeler ainsi - "apprendre MKL4 et MKL5 ensemble". Je pense que personne ne veut être aidé, il suffit d'expliquer ce qui est quoi ou de donner une indication concrète, pas un lien vers un manuel. Si une personne a besoin que quelqu'un fasse quelque chose pour elle, elle doit dire spécifiquement : écrivez-moi quelque chose, etc.

Eh bien, il aurait dû le faire pour rien. Bonne chance dans votre développement futur.

 
novichok2018:

Félicitations pour votre ténacité et votre détermination. Tout ce que vous avez dit est certainement digne de respect, mais je pense que cela n'a aucun sens d'exiger la même chose de tout le monde. En outre, tous ceux qui veulent écrire leur propre robot n'ont pas tendance à apprendre le langage de programmation. Comme je l'ai dit plus haut, je n'ai pas un tel objectif. Si vous avez une question sur la façon de faire ceci ou cela, vous cherchez une solution dans les livres de référence, les manuels, les forums, sans trop approfondir le sujet. C'est peut-être pour cela que des situations comme celle-ci se présentent, lorsque des choses apparemment élémentaires ne sont soudainement plus claires. Bien sûr, en "remuant la matière grise", je trouverai toujours une solution. Oui, peut-être après avoir parcouru des "tonnes d'exemples dansCodeBase" et perdu beaucoup de temps. Mais la raison pour laquelle vous avez créé ce fil de discussion et pourquoi vous l'avez appelé ainsi n'est plus claire si, au lieu d'aider les débutants, vous les incitez à étudier la langue en profondeur. Vous auriez dû l'appeler ainsi - "apprendre MKL4 et MKL5 ensemble". Je pense que personne ne veut être aidé, il suffit d'expliquer ce qui est quoi ou de donner une indication concrète, pas un lien vers un manuel. Si une personne a besoin que quelqu'un fasse quelque chose pour elle, elle doit dire spécifiquement : écrivez-moi quelque chose, etc.

Il aurait dû le faire pour rien. Bonne chance dans votre développement futur.

Il y a beaucoup de ressentiment dans vos paroles. Mais vous n'avez même pas montré votre fonction.
 
Artyom Trishkin:
Il y a beaucoup de ressentiment dans ces mots. Mais vous n'avez même pas montré votre fonction.

Ce n'est pas du ressentiment, c'est de la frustration. Il y a longtemps que je ne suis plus un enfant pour être offensé. Et personne n'a demandé cette fonction, vous avez fait du sarcasme.

Eh bien, voici la fonction :

int ItemsPerSecond(const int seconds,MqlTick &tick)
{
//---
   static MqlTick rates[];
   datetime time_start;
   int count=0,size;
   bool insert=false;
   double price_start=0;
   long msc=0;
//---
   time_start=TimeCurrent()-seconds;
   
   for(int i=0;i<ArraySize(rates);i++)
   {
      if(rates[i].time>0 && rates[i].time<time_start)
      {
         ZeroMemory(rates[i]);
      }
      else if(!insert && rates[i].time==0)
      {
         rates[i]=tick;
         insert=true;
      }
      if(rates[i].time_msc>0 && (rates[i].time_msc<msc || msc==0))
      {
         price_start=rates[i].bid;
         msc=rates[i].time_msc;
      }
      
   }
   if(!insert)
   {
      size=ArraySize(rates);
      ArrayResize(rates,size+1,300);
      rates[size]=tick;
   }
   if(price_start>0)count=(int)((tick.bid-price_start)/Point);
   
   Comment("size: "+IntegerToString(ArraySize(rates))+"\r\n"+"count: "+IntegerToString(count));
//---
   return(count);   
} 

et voici comment j'essaie de l'appeler :

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

3 correspond à trois secondes (je pense).

 
novichok2018:

J'ai trouvé une fonction sur le forum,qui compte combien de points le prix a passé pendant un certain nombre de secondes int ItemsPerSecond(const int seconds,MqlTick&tick), je l'ai mise dans le code, compilé - tout va bien, mais quand j'essaie de l'appeler, le compilateur me donne un nombre de paramètres erroné.

Qu'est-ce que je fais de mal ?


novichok2018:

Voici comment j'essaie de l'appeler :

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

lisez l'aidesur https://www.mql5.com/ru/docs/basis/function ethttps://www.mql5.com/ru/docs/basis/variables/formal

Combien de paramètres avez-vous dans la fonction que vous appelez ?

int ItemsPerSecond(const int seconds,MqlTick &tick)



novichok2018:

En outre, tous ceux qui veulent écrire leur propre robot n'ont pas tendance à apprendre le langage de programmation. Comme je l'ai dit plus haut, je n'ai pas un tel objectif. Si vous avez une question sur la façon de faire ceci ou cela, vous cherchez une solution dans les livres de référence, les manuels, les forums, sans trop approfondir le sujet. C'est peut-être pour cela que des situations comme celle-ci se présentent, lorsque des choses apparemment élémentaires ne sont soudainement plus claires. Bien sûr, en "remuant la matière grise", je trouverai toujours une solution.

Malheureusement vous n'avez pas maîtrisé les trucs MQL, il ne s'agit même pas d'écrire des programmes par vous-même, malheureusement vous n'avez pas appris quoi que ce soit.... sur vos doigts... Vous avez appris l'alphabet anglais "Hé, B, C, D...". et maintenant vous essayez d'écrire sur le forum en anglais, "Horosho", on vous dit que ce n'est pas de la connaissance de l'anglais, c'est à propos de rien du tout.... et vous recommencez à être offensé, voici un forum, voici un sujet avec du soutien pour les débutants, et j'ai tout lu ! !! et encore une fois en cercle, hé vous êtes intelligent ! et pourquoi ce fil ! je ne suis pas du genre à être offensé ! !!

 
Igor Makanu:


lire l'aidehttps://www.mql5.com/ru/docs/basis/function et https://www.mql5.com/ru/docs/basis/variables/formal

Combien de paramètres avez-vous dans la fonction que vous appelez ?



Malheureusement, vous n'avez même pas maîtrisé les trucs MQL, il ne s'agit même pas d'écrire des programmes par vous-même, malheureusement vous n'avez pas appris quoi que ce soit.... sur vos doigts... Vous avez appris l'alphabet anglais "Hé, B, C, D..." et maintenant vous essayez d'écrire sur le forum en anglais, "Horosho", on vous dit que ce n'est pas de la connaissance de l'anglais, c'est à propos de rien du tout.... et vous êtes encore offensé, voici un forum, voici un sujet avec un soutien pour les nouveaux arrivants, et j'ai tout lu ! !! et encore en cercle, hé les malins ! et pourquoi ce fil ! je ne suis pas du genre à m'offenser ! !!

Beaucoup de lettres et rien que du narcissisme et de l'humiliation de l'interlocuteur. Et sous quelle forme dois-je insérer le second paramètre ? J'ai demandé le deuxième paramètre comme un nombre avec le même résultat. Pourquoi tant de "mots" ? Montrer la solution sur mon exemple, pré-compilé et testé. Ou votre amour-propre boursouflé ne le permet pas ?

 
novichok2018:

Ou est-ce que votre amour-propre boursouflé vous empêche de le faire ?

OK, j'exerce mon droit de ne pas communiquer avec vous (heureusement vous ne pouvez pas m'y forcer), vous exercez le droit d'écrire sur le forum, mais pas celui de lire le matériel qui vous est proposé pour étude ?

void OnTick()
  { 
  MqlTick t;
// судя по исходнику в t нужно скопировать тики и вызывать так:
ItemsPerSecond(3,t); 
  }

novichok2018:

J'ai demandé le deuxième paramètre par numéro avec le même résultat. Pourquoi tant de mots ? Montrez-moi la solution sur mon exemple, pré-compilé et testé.

Voici un appel correct de la fonction ItemsPerSecond() dans votre exemple, je n'ai pas compilé, testé, et je ne vais pas exécuter le terminal - j'ai répondu à votre question

Raison: