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

 
Maxim Kuznetsov:

sogar der Compiler wird im ersten Fall hervorheben "das Ergebnis von OrderSelect muss geprüft werden" ;-)

Wenn Sie für die erste if (!OrderSelect(...)) continue ändern; dann sind die Optionen identisch.

Im ersten Fall ist der Code visuell linear, im zweiten Fall sieht er wie eine Treppe aus. Ich bevorzuge das erste, es ist einfacher zu lesen und im Allgemeinen deutet das Auftauchen von tiefen logischen Tabs {{{{ }}}} darauf hin, dass es Zeit ist, etwas zu ändern :-)

Danke. Beeinträchtigt das Schreiben in Treppenform die Codegeschwindigkeit? Die gestaffelte Schreibweise ist für mich leichter zu verstehen.

 
novichok2018:

Ich danke Ihnen. Beeinträchtigt die schrittweise Aufzeichnung die Geschwindigkeit der Codeausführung? Es ist für mich einfacher, die Treppenschrift zu verstehen.

Es ist der Algorithmus, der in erster Linie die Ausführungsgeschwindigkeit beeinflusst. Und wie man es im Code darstellt, ist eigentlich egal.

Das ist nicht das, worüber man nachdenkt.

Sie schreiben Code, damit Sie später damit arbeiten können. Schreiben Sie es also, wie Sie wollen, und beschäftigen Sie sich nicht mit Problemen, die Sie in der Realität nicht haben.

Nun, Sie haben keine Geschwindigkeitsprobleme, die Sie mit Tricks und Eigenheiten der Kodierung vermeiden müssen. Ganz einfach: Sie tun es garantiert nicht.

Wenn sie erscheinen (was unwahrscheinlich ist), werden Sie die Leistung optimieren.

 
Maxim Kuznetsov:

Die Ausführungsgeschwindigkeit wird in erster Linie durch den Algorithmus bestimmt. Und wie man es im Code darstellt, ist nicht so wichtig.

Das ist nicht das, woran Sie denken.

Sie schreiben Code, damit Sie später selbst damit arbeiten können. Schreiben Sie es also, wie Sie wollen, und beschäftigen Sie sich nicht mit Problemen, die Sie in der Realität nicht haben.

Nun, Sie haben keine Geschwindigkeitsprobleme, die Sie mit Tricks und Eigenheiten der Codierung vermeiden müssen. Das ist garantiert nicht der Fall.

Wenn (was unwahrscheinlich ist), werden Sie Ihren Code optimieren.

Herzlichen Dank! Sehr verständlich.

 
Ist es möglich in den alten mt4 Programmordnern noch auf XP vindos dort zu arbeiten und zu installieren, wenn ja wie.
 
Bitte helfen Sie mir bei einer Frage: https://www.mql5.com/ru/forum/160683/page833#comment_11585085
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.06
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Alexander Layzerevich:
Bitte helfen Sie mir bei dieser Frage: https://www.mql5.com/ru/forum/160683/page833#comment_11585085

Ich bezweifle, dass es Ihnen helfen wird, aber das war's auch schon:

- Sie haben einen Teil des Codes von MT5 übernommen und versuchen, ihn mit MT4 zu "verschrauben". So werden die Indikatoren in MT4 nicht aufgerufen.

- Sie haben den Funktionskopf nicht korrekt deklariert

- MT4 verfügt nicht über die eingebaute CopyBuffer()-Funktion

Dies wird im Allgemeinen nicht funktionieren, suchen Sie nach anderen Optionen, um weitere Codeteile hinzuzufügen - die Syntax von MQL4 und MQL5 ist zu 95% ähnlich, aber Sie können nicht rücksichtslos Codeteile zwischen Plattformen kopieren

 
Igor Makanu:

Ich bezweifle, dass es Ihnen helfen wird, aber das war's auch schon:

- Sie haben einen Teil des Codes von MT5 übernommen und versuchen, ihn mit MT4 zu "verschrauben". So werden die Indikatoren in MT4 nicht aufgerufen.

- Sie haben den Funktionskopf nicht korrekt deklariert

- MT4 verfügt nicht über die eingebaute CopyBuffer()-Funktion

die Syntax von MQL4 und MQL5 ist zu 95 % ähnlich, aber man kann nicht ohne weiteres Codeabschnitte zwischen den Plattformen kopieren

Entschuldigung, ich habe vergessen, den Code für MT5 anzugeben.

Es wird nur nicht die Funktion Abweichung(int kanal) aufgerufen.

Ich wollte fragen, wie man es richtig macht?

 
Igor Makanu:

Eins-zu-eins-Beispiel aus dem Artikelhttps://www.mql5.com/ru/articles/18 durchführen

Als Option haben Sie ein Projekt für 64-Bit-dll kompiliert, MT4 Terminal ist 32-Bit, müssen Sie das Projekt für 32-Bit-dll konfigurieren und kompilieren

Ich stelle dort auch Fragen, ich habe die vorgeschlagenen Beispiele dort ausprobiert, ich habe sogar Bilder mit Experimenten gepostet. Nun ja, etwas ist da mit diesen Versionen, normalerweise sollte das alles in der Hilfe stehen, wie man welche Nuancen verbindet. Ich wurde einige Links mit Codes gegeben, ich öffnete diese Klassen und schloss sie, in der allgemeinen Verhöhnung von Informationen, nein, was Sie wollen und tun. Nun, entschuldigen Sie mich, ich werde nach 20 Jahren Programmiererfahrung auf dieses Thema zurückkommen. Woher weiß ich, dass die Kompilierung für 64, wie finde ich es heraus?

 
Seric29:

Woher weiß ich, dass die DLL für 64 kompiliert ist?

Schauen Sie sich die Projekteigenschaften in Visual Studio an, es sollte eine Option für die Plattform geben, auf der die DLL kompiliert werden soll - MT4 benötigt 32-Bit-Code

PS: Google findet die VS-Einstellung

 
Igor Makanu:

Ich bezweifle, dass es Ihnen helfen wird, aber das war's auch schon:

- Sie haben einen Teil des Codes von MT5 übernommen und versuchen, ihn mit MT4 zu "verschrauben". So werden die Indikatoren in MT4 nicht aufgerufen.

- Sie haben den Funktionskopf nicht korrekt deklariert

- MT4 verfügt nicht über die eingebaute CopyBuffer()-Funktion

die Syntax von MQL4 und MQL5 ist zu 95 % ähnlich, aber man kann nicht ohne weiteres Codeabschnitte zwischen den Plattformen kopieren

Haben Sie die folgenden Codefragmente?

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests.

Alle MQL4 Anfänger Fragen, Hilfe und Diskussion über Algorithmen und Codes

Alexander Layzerevich, 2019.05.06 17:21

Ich versuche, mit dieser FunktionIndikatordaten im MT5 zuempfangen:

//************************************************************************************************/
double Envelopes(string symb, ENUM_TIMEFRAMES TF_1, int period, int method, int shift, int price,double Deviation(ENUM_TIMEFRAMES TF_2, int kanal), int buff, int index)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), TF_1, period, method, shift, price, Deviation(TF_2, kanal), buff);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,0,index,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
//************************************************************************************************/

Ich erhalte die Fehlermeldung :


Bitte beraten Sie , wie Sie den Code für MT5 korrigieren können

Die Hervorhebung unterscheidet sich nicht von einer Funktionsdeklaration. Es stellt sich heraus, dass eine Funktion in den Eingabeparametern der Funktion deklariert wird.
Grund der Beschwerde: