Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 919

 
novichok2018:

Hallo!

Ich habe im Forum eine Funktion gefunden, die berechnet, wie viele Punkte ein Preis für eine bestimmte Anzahl von Sekunden passiert hat int ItemsPerSecond(const int seconds,MqlTick&tick). Ich habe sie in den Code eingefügt und kompiliert - alles ist OK, aber wenn ich versuche, sie aufzurufen, generiert der Compiler eine falsche Parameteranzahl.

Was mache ich falsch?

Sie haben keine:

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

Was ist passiert?

Schlafen alle, oder sind sie ausgestorben?

Lachen :)

 
Artyom Trishkin:

Sie lesen nicht:

Igor Makanu:Antworten auf absurde Fragen zu schreiben ist faul

Meine Herren "Schlaumeier"!

Du vergisst immer wieder, in welchem Forum du dich befindest. Ich kann daran erinnern: der Zweig heißt"Alle Fragenvon Neulingen...". Und wenn Sie glauben, dass Sie Neulingen helfen können (Sie sind doch nicht hier, um anzugeben, oder?), dann brauchen Sie nicht zimperlich auf Fragen zu antworten, die Ihnen albern und absurd erscheinen und die ein Neuling ohne Ihre Hilfe nur schwer verstehen kann.

Es nützt nichts - selbst wenn ich "Funktionsaufruf" in den Sprachgrundlagen zwanzigmal lese, verstehe ich immer noch nicht, welche Parameter in diesem speziellen Fall eingegeben werden müssen.

Also, vielleicht kann mir jemand aus der Zimperlichkeit heraushelfen und mir einen konkreten Rat geben?

Ich danke Ihnen.

 
novichok2018:

Meine Herren "kluge Leute"!

Du vergisst immer wieder, in welchem Forum du dich befindest. Ich kann Sie daran erinnern: Der Thread heißt" Fragen von Neulingen...". Und wenn Sie glauben, dass Sie Neulingen helfen können (Sie sind doch nicht hier, um anzugeben, oder?), dann brauchen Sie nicht zimperlich auf Fragen zu antworten, die Ihnen albern und absurd erscheinen und die ein Neuling ohne Ihre Hilfe nur schwer verstehen kann.

Es nützt nichts - ich habe "Funktionsaufruf" in der Sprachwissenschaft mindestens zwanzigmal gelesen, und ich verstehe immer noch nicht, welche Parameter in diesem speziellen Fall eingegeben werden sollen.

Also, vielleicht kann jemand die Zimperlichkeit überwinden und mir einen konkreten Rat geben?

Ich danke Ihnen.

Wie könnte ich das vergessen, wenn das mein Zweig ist? :)

"Alles" bedeutet nicht, dass wir über die Stärke der Getränke sprechen können... Beliebige, eher "sinnvolle" Fragen. Und was Sie fragen, sind die Grundlagen einer jeden Programmiersprache, und Sie haben gerade die Leute mit Ihrer Frage verblüfft - soll ich Ihnen die Grundlagen beibringen? Aber das würde den Rahmen dieses Threads und des Forums sprengen.

Ich habe Ihnen einen Link gegeben, um Ihnen zu helfen - und Sie rümpfen die Nase. Dementsprechend wirst du mit dieser Einstellung zu denen, die dir den Weg zur Erkenntnis zeigen, anstatt "einfach alles für dich zu tun", die Leute lange schütteln und sagen: "Warum schweigst du, niemand weiß es oder was?

In der Hilfe geht es um Funktionen und ihre formalen Parameter. Und, sorry, es gibt tonnenweise Beispiele in CodeBase. Öffnen Sie einen beliebigen Code und suchen Sie nach der Definition einer Funktion, die formale Parameter hat, und sehen Sie nach, wie sie aufgerufen wird...

Es ist ganz einfach: Seien Sie nicht faul und warten Sie nicht auf das Manna vom Himmel, sondern regen Sie zumindest Ihre eigenen grauen Zellen an.

Ich habe die Akademie nicht abgeschlossen... Ich verließ die Armee und begann, mich für das Schreiben von Programmen für XZ Spectrum zu interessieren. In BASIC... und ich kam zu dem Punkt, an dem ich Programme in Assembler dafür schrieb, und dann ging es immer weiter.

Und es gab keine Foren, und wir teilten uns das Internet zu dritt (einer heute, der andere morgen und ich übermorgen). Und das Internet war teuer, und auch über ein Modem über Telefonleitungen.
Ich habe Programmierbücher auf einem Radioflohmarkt gekauft. Jetzt bittet mich mein Bruder, der einen Abschluss in Programmierung hat, um Rat, wie und was er tun soll.
Aber ich wollte lernen, ich war mit Leidenschaft bei der Sache. Was ist mit Ihnen? Und Sie brauchen meiner Meinung nach jemanden, der alles für Sie tut.

 
Artyom Trishkin:

Ich habe keinen akademischen Abschluss gemacht... Ich verließ die Armee und begann, mich für das Schreiben von Programmen für XZ Spectrum zu interessieren. In BASIC... und ich kam zu dem Punkt, an dem ich Programme in Assembler dafür schrieb, und dann ging es einfach immer weiter.

Es gab keine Foren und wir teilten uns das Internet zu dritt (einer heute, der andere morgen und ich übermorgen). Und das Internet war teuer, und auch über ein Modem über Telefonleitungen.
Ich habe Programmierbücher auf einem Radioflohmarkt gekauft. Jetzt bittet mich mein Bruder, der einen Abschluss in Programmierung hat, um Rat, wie und was er tun soll.
Aber ich wollte lernen, ich war mit Leidenschaft bei der Sache. Was ist mit Ihnen? Und Sie brauchen meiner Meinung nach jemanden, der alles für Sie tut.

Ich gratuliere Ihnen zu Ihrer Beharrlichkeit und Entschlossenheit. Alles, was Sie gesagt haben, verdient sicherlich Respekt, aber das Gleiche von allen anderen zu verlangen, ist sinnlos. Außerdem versucht nicht jeder, der seinen eigenen Roboter schreiben will, eine Programmiersprache zu lernen. Wie ich bereits sagte, habe ich kein solches Ziel. Wenn man eine Frage hat, wie man dies oder jenes macht, sucht man in Nachschlagewerken, Lehrbüchern oder Foren nach einer Lösung, ohne sich zu sehr in das Thema zu vertiefen. Vielleicht entstehen deshalb Situationen wie diese, wenn scheinbar elementare Dinge plötzlich nicht mehr klar sind. Natürlich werde ich durch "Wackeln der grauen Zellen" trotzdem eine Lösung finden. Ja, vielleicht habe ich mich durch "Tonnen von Beispielen inCodeBase" gewühlt und viel Zeit verschwendet. Aber es wird unklar, warum Sie diesen Thread erstellt haben und warum Sie ihn so genannt haben, wenn Sie Neulingen keine Hilfe anbieten, sondern sie dazu bringen, sich in das Studium der Sprache zu vertiefen. Du hättest es so nennen sollen - "MKL4 und MKL5 zusammen lernen". Ich glaube, niemand will sich helfen lassen, es reicht, wenn man erklärt, was was ist, oder einen konkreten Hinweis gibt, nicht einen Link zu einem Lehrbuch. Wenn eine Person jemanden braucht, der etwas für sie tut, sollte sie ausdrücklich sagen: "Bitte schreiben Sie mir etwas" und so weiter.

Nun, er hätte es umsonst tun sollen. Viel Glück für Ihre weitere Entwicklung.

 
novichok2018:

Ich gratuliere Ihnen zu Ihrer Hartnäckigkeit und Entschlossenheit. Alles, was Sie gesagt haben, verdient sicherlich Respekt, aber ich denke, es macht keinen Sinn, von allen dasselbe zu verlangen. Außerdem versucht nicht jeder, der seinen eigenen Roboter schreiben will, eine Programmiersprache zu lernen. Wie ich bereits sagte, habe ich kein solches Ziel. Wenn man eine Frage hat, wie man dies oder jenes macht, sucht man in Nachschlagewerken, Lehrbüchern oder Foren nach einer Lösung, ohne sich zu sehr in das Thema zu vertiefen. Vielleicht entstehen deshalb Situationen wie diese, wenn scheinbar elementare Dinge plötzlich nicht verstanden werden. Natürlich werde ich durch "Wackeln der grauen Zellen" trotzdem eine Lösung finden. Ja, ich habe mich vielleicht durch "tonnenweise Beispiele inCodeBase" gewühlt und viel Zeit verschwendet. Aber es wird unklar, warum Sie diesen Thread erstellt haben und warum Sie ihn so genannt haben, wenn Sie Neulingen nicht helfen wollen, sondern sie dazu bringen, sich mit der Sprache zu beschäftigen. Sie hätten es so nennen sollen - "MKL4 und MKL5 zusammen lernen". Ich glaube, niemand will sich helfen lassen, es reicht, wenn man erklärt, was was ist, oder einen konkreten Hinweis gibt, nicht einen Link zu einem Lehrbuch. Wenn eine Person jemanden braucht, der etwas für sie tut, sagt sie ausdrücklich: Schreiben Sie mir bitte so und so.

Nun, er hätte es umsonst tun sollen. Viel Glück für Ihre weitere Entwicklung.

In Ihren Worten schwingt viel Groll mit. Aber Sie haben noch nicht einmal Ihre Funktion gezeigt.
 
Artyom Trishkin:
In den Worten steckt eine Menge Groll. Aber Sie haben noch nicht einmal Ihre Funktion gezeigt.

Das ist kein Groll, das ist Frustration. Es ist lange her, dass ich als Kind beleidigt war. Und niemand hat nach dieser Funktion gefragt, Sie waren nur sarkastisch.

Nun, hier ist die Funktion:

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

und so versuche ich es zu nennen:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

3 ist drei Sekunden (glaube ich).

 
novichok2018:

Ich habe im Forum eine Funktion gefunden, die zählt, wie viele Punkte der Preis für eine bestimmte Anzahl von Sekunden überschritten hat int ItemsPerSecond(const int seconds,MqlTick&tick), habe sie in den Code eingefügt, kompiliert - alles ist in Ordnung, aber wenn ich versuche, sie aufzurufen, gibt mir der Compiler eine falsche Parameteranzahl.

Was mache ich falsch?


novichok2018:

Ich versuche es folgendermaßen zu formulieren:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

Lesen Sie die Hilfeunter https://www.mql5.com/ru/docs/basis/function undhttps://www.mql5.com/ru/docs/basis/variables/formal

Wie viele Parameter hat die von Ihnen aufgerufene Funktion?

int ItemsPerSecond(const int seconds,MqlTick &tick)



novichok2018:

Außerdem neigt nicht jeder, der seinen eigenen Roboter schreiben will, dazu, die Programmiersprache zu lernen. Wie ich bereits sagte, habe ich kein solches Ziel. Wenn man eine Frage hat, wie man dies oder jenes macht, sucht man in Nachschlagewerken, Lehrbüchern oder Foren nach einer Lösung, ohne sich zu sehr in das Thema zu vertiefen. Vielleicht entstehen deshalb Situationen wie diese, wenn scheinbar elementare Dinge plötzlich nicht mehr klar sind. Natürlich werde ich durch "Wackeln der grauen Zellen" trotzdem eine Lösung finden.

Leider haben Sie den MQL-Kram nicht gemeistert, es geht nicht darum, selbst Programme zu schreiben, Sie haben nichts gelernt.... auf Ihren Fingern... Sie haben das englische Alphabet gelernt "Hey, B, C, D...". und nun versuchen Sie, im Forum auf Englisch zu schreiben, "Horosho", man sagt Ihnen, dass dies keine Englischkenntnisse sind, es geht um gar nichts.... und du bist wieder beleidigt, hier ist ein Forum, hier ist ein Thema mit Unterstützung für Neulinge, und ich habe alles gelesen!!! und wieder im Kreis, hey ihr Schlaumeier, warum dieser Thread, ich bin nicht beleidigt!!!

 
Igor Makanu:


Hilfe lesenhttps://www.mql5.com/ru/docs/basis/function und https://www.mql5.com/ru/docs/basis/variables/formal

Wie viele Parameter hat die von Ihnen aufgerufene Funktion?



Leider haben Sie nicht einmal das MQL-Zeug gemeistert, es geht nicht einmal darum, selbst Programme zu schreiben, leider haben Sie nichts gelernt.... auf Ihren Fingern... Sie haben das englische Alphabet gelernt "Hey, B, C, D..." und nun versuchen Sie, im Forum auf Englisch zu schreiben, "Horosho", man sagt Ihnen, dass dies keine Englischkenntnisse sind, es geht um gar nichts.... und du bist wieder beleidigt, hier ist ein Forum, hier ist ein Thema mit Unterstützung für Neulinge, und ich habe alles gelesen!!! und wieder im Kreis, hey ihr Schlaumeier! und warum dieser Thread, ich bin nicht beleidigt!!!

Eine Menge Briefe und nichts als Narzissmus und Demütigung des Gesprächspartners. Und in welcher Form soll der zweite Parameter eingefügt werden? Ich habe den zweiten Parameter als Zahl eingegeben, mit demselben Ergebnis. Warum so viele "Wörter"? Zeigen Sie die Lösung an meinem Beispiel, vorkompiliert und getestet. Oder erlaubt es Ihre aufgeblasene Selbstachtung nicht?

 
novichok2018:

Oder hindert Sie Ihre aufgeblähte Selbstachtung daran, dies zu tun?

OK, ich übe mein Recht aus, nicht mit Ihnen zu kommunizieren (zum Glück können Sie mich nicht dazu zwingen), Sie üben das Recht aus, im Forum zu schreiben, aber nicht, das Ihnen zum Studium angebotene Material zu lesen?

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

novichok2018:

Den zweiten Parameter habe ich mit der Nummer abgefragt - mit dem gleichen Ergebnis. Warum so viele Wörter? Zeigen Sie mir die Lösung für mein Beispiel, vorkompiliert und getestet.

Hier ist ein korrekter Aufruf der Funktion ItemsPerSecond() in Ihrem Beispiel, ich habe nicht kompiliert, getestet, und ich werde nicht das Terminal ausführen - ich habe Ihre Frage beantwortet