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

 
Seric29:

Das Problem ist, dass ich Vorlagen für alle Funktionen, die Arrays zu nehmen, und Export und Import von Template-Funktionen nicht möglich ist, wird es haben, Funktionen für jeden Typ zu duplizieren, die gleiche Situation mit Dimensionalität mql will nicht, sie einfach so zu geben und wieder haben, um sie durch Dimensionalität zu duplizieren stellt sich heraus, eine Art von Überlastung aber zusätzliche Argumente hinzufügen ist nicht notwendig, dennoch ist dies auch unnötigen Code, wie für die Erhöhung der Funktion Argumente mql auch nicht geben, einfach so, dass Daten haben, Funktionen e zu duplizieren Ich habe darüber nachgedacht, meine eigene Sprache zu schreiben, aber dann habe ich wieder 15% meines Roboters geschrieben und mehr als ein Jahr damit verbracht, alles zu kalibrieren und so universell wie möglich zu machen und eine schnelle Leistung zu bieten, und 3 Jahre für Berechnungen. Ich habe einfach nicht genug Leben, um meine eigene Sprache zu schreiben. Das geht so.

Eine eigene Sprache zu haben, ist großartig!

Aber vielleicht sollten Sie zuerst MQL lernen.

Und dann werden Sie sehen, dass seine Funktionen auch jetzt nicht klein sind.

Aber wenn Sie C++ lernen, werden Sie überhaupt keine Probleme mit dem Programmieren haben.

Ja, ich habe mir Ihren Code in C++ angesehen und sehe, dass Sie sehr wenig wissen.

 
Koldun Zloy:

Ja, Ihr Code in C++, ich habe ihn mir angesehen und sehe, dass Sie sehr wenig wissen.

Es ist besser, das Programmieren im Alter von 4 Jahren zu lernen, und ich bin bereits 26, die Wahrscheinlichkeit, ein großer Programmierer zu werden, ist sehr gering, denken Sie an Leute wie Elon Musk und andere, die im Alter von 9 Jahren programmieren konnten, ich würde zumindest die Hauptaufgabe erfüllen.

 

Es gibt eine Funktion

ArrayCopy

Es ist jedoch nicht möglich, eine bestimmte Spalte zu kopieren. Dann gibt es eine Funktion

ArrayInitialize

und wieder der gleiche Unsinn, dann gibt es die Funktion

ArrayFill

aber auch hier können Sie keine Spalte angeben. Was nützen diese Funktionen, wenn man sie selbst schreiben muss.

 
Seric29:

Es ist besser, wenn man schon mit 4 Jahren programmieren lernt, und ich bin schon 26.

Oh, du rauchst etwas Starkes! )))))

man kann einem 4-Jährigen nicht das Programmieren beibringen, weil er nicht nur mit Spielzeug spielen, sondern es auch auf den Boden werfen will, das Kind kann noch nicht lesen, es kann nur bis zehn zählen (Wunderkinder können bis 100 zählen! ))) )

Sie können mit 26 Jahren nichts mehr lernen? In den drei Monaten, in denen Sie Ihr Problem geschrieben haben, hätten Sie es gelöst, wenn Sie angefangen hätten zu lesen und zu lesen, das MQL-Forum ist eines der wenigen Foren, in denen Sie in 1-2 Stunden eine Antwort auf Ihre Frage bekommen können, das ist wirklich cool! Nun, das ist Ihre Art zu leben. Ich habe eine Lösung für Ihr Problem gefunden, die ich Ihnen nicht besser empfehlen kann:

https://www.mql5.com/ru/forum/3457/page4494#comment_12804114

 
Seric29:

Es ist besser, ab dem Alter von 4 Jahren programmieren zu lernen, und ich bin schon 26, die Wahrscheinlichkeit, ein cooler Programmierer zu werden, ist sehr gering. Erinnern Sie sich an Leute wie Elon Musk und andere, die im Alter von 9 Jahren programmieren konnten, ich würde zumindest die grundlegende Aufgabe erledigen.

Ich habe nicht im Alter von 4 oder gar 9 Jahren damit angefangen.

Die Wahrscheinlichkeit, mit 26 Jahren ein cooler Programmierer zu werden, ist sehr hoch.

 

Leute, ich habe eine Frage, aber lacht nicht, warum dieser Code nicht funktioniert

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#define  Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
    Mas2[2][2]={{3,8},{4,17}},
    Mas22[2][2]={{31,128},{94,107}},
    Mas3[2][2][2];

int OnInit()
  {int Perem=ArrayDimension(Mas); 
   Mkarr(Mas2,0,0,0);
   return(INIT_SUCCEEDED);
  }

Sagt falschen Zugriff auf das Array, wie weiß es, wenn alle Varianten des Falles nicht überprüft werden und versucht, wenn nichts zu überprüfen und wirft einen Fehler? Ist es möglich, den Code bei der Kompilierung Zeit zu überspringen oder es hilft nicht?

 
Seric29:

Leute, ich habe eine Frage, aber lacht nicht, warum dieser Code nicht funktioniert

Sagt falschen Zugriff auf das Array, wie weiß es, wenn alle Varianten des Falles nicht überprüft werden und versucht, wenn nichts überprüft wird zu und wirft einen Fehler? Ist es möglich, den Code bei der Kompilierung Zeit zu überspringen oder es hilft nicht?

Das ist nicht lustig, sondern zum Heulen.

Warum verwenden Sie Makros, wenn Sie nicht wissen, wie man sie benutzt? Dekompilieren Sie das Makro (kopieren Sie einfach den Scheiß!) und Sie sollten sehen, wo der Fehler liegt

SIN: ..... "Die Mäuse weinten und weinten, aber sie kauten weiter auf dem Kaktus herum" ((((

 
Igor Makanu:

Das ist nicht lustig, das bringt mich zum Weinen.

Warum verwenden Sie Makros, wenn Sie nicht wissen, wie man sie benutzt? Entpacken Sie das Makro (kopieren Sie einfach den Scheiß!) und Sie sollten sehen, wo der Fehler liegt

SZY: ..... "Die Mäuse weinten und weinten, aber sie nagten weiter an dem Kaktus" ((((

Ich verstehe es nicht wirklich, ein Makro kann ein beliebiges Element annehmen und bei der Verarbeitung im Compiler erhalte ich einen Schutz, dass ein und dasselbe Element nicht sowohl dies als auch das sein kann. Ist es möglich, eine solche Idee zu verwirklichen?

 
Seric29:

Ich weiß nicht viel darüber, das Makro nimmt ein beliebiges Element und wenn es im Compiler verarbeitet wird, gibt es einen Schutz, dass ein und dasselbe Element nicht gleichzeitig die und die sein kann, ich habe solche Gedanken. Kann eine solche Idee umgesetzt werden?

ein weiteres Mal... Nehmen Sie Ihre Makrosubstitution in ME (oder zumindest in Notepad!) und "stecken" Sie sie ein, anstatt sie zu benutzen, ersetzen Sie alle Parameter in Klammern durch Ihre Zahlen

Ich weiß gar nicht, wie ich es besser erklären soll... Lesen Sie Wiki, wenn Sie nicht genügend Informationen über MQL haben

Makro-Befehl

C-Präprozessor

 
Igor Makanu:

ein weiteres Mal... Nehmen Sie Ihre Makro-Substitution in ME (auch in Notepad!) und "stecken" Sie sie ein, anstatt sie zu benutzen, ersetzen Sie alle Parameter in Klammern durch Ihre Zahlen

für Sie ersetzt, hier ist der Code ohne Makros

//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//#define Mkarr(q,w,e,r) switch(ArrayDimension(q)){case 3:q[w][e][r]=15;break;case 2:q[w][e]=15;break;}
int Mas[7],//#else
Mas2[2][2]={{3,8},{4,17}},
Mas22[2][2]={{31,128},{94,107}},
Mas3[2][2][2];
int OnInit()
  {
   int Perem=ArrayDimension(Mas);
//   Mkarr(Mas2,0,0,0);
   switch(ArrayDimension(Mas2))
     {
      case 3:Mas2[0][0][0]=15;
      break;
      case 2:Mas2[0][0]=15;
      break;
     }
   return(INIT_SUCCEEDED);
  }

Ich weiß nicht, warum Sie verbringen so viel Zeit auf die Arbeit mit mehrdimensionalen Arrays, wenn Sie nicht verstehen können, C++ / MQL-Syntax und Grundlagen, Sie haben Arrays mit einer Dimension definiert und Sie versuchen, sie mit einem anderen zu verwenden, natürlich kann ich falsch sein, aber dieser Trick sollte nicht einmal in Python, imho funktionieren