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

 
Alexander Layzerevich:

Der MT5-Code zum Senden von Daten an den Indikator wurde korrigiert:

Aber der Fehler ist derselbe.

Hören Sie auf, in mql4 geschriebenen Scheißcode zu gucken, und Sie werden es schneller kapieren.

 
Igor Makanu:

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

PS: Google findet die VS-Einstellung

Ich habe versucht, für eine solche Einrichtung Suchmaschine gibt Antworten, die wie das Gegenteil von 32 bis 64 und im Allgemeinen und nicht verstehen, wie man diese Einstellung zu machen suchen. Wenn ich hier ein wenig verstehe, habe ich es standardmäßig 32 ist

Und ich habe ein Menü mit einer Einstellung gefunden.

Ich weiß also nicht, ob der Standardwert hier 32 ist.

 

Können Sie mir bitte sagen, warum der gleiche Code in MT4, aber nicht in MT5 funktioniert? In MT5 ist die Variable strNum immer =1, aber in MT4 funktioniert der Zähler ++ wie er sollte und strNum ist die Anzahl der Zeilen in der Datei.

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

Versucht, für eine solche Einstellung Suchmaschine gibt Antworten, die wie das Gegenteil von 32 bis 64 und im Allgemeinen nicht verstehen, wie man diese Einstellung zu machen. Wenn ich das richtig verstanden habe, ist meine Standardeinstellung von 32

Und ich habe ein Menü mit einer Einstellung gefunden.

Ich weiß also nicht, ob es hier standardmäßig 32 sind.

Auch bei den Bibliotheken gibt es die Sache mit /MT oder /MD, ich verwechsle sie ständig :-) Das ist auch irgendwo in der Wildnis des benutzerfreundlichen Studios

Zeigen Sie mir das gesamte Projekt, einschließlich all dessen, was Sie dort in C++ und Mql getan haben. Ich glaube nicht, dass es sich um ein hartes Urheberrecht handelt :-)
wir sagen dir, was los ist, sonst überforderst du alle mit Telepathie für eine lange Zeit.


 
Maxim Kuznetsov:

Es gibt auch die Sache mit der /MT- oder /MD-Bibliothek, ich verwechsle sie ständig :-) Auch dies liegt in den Weiten der benutzerfreundlichen Studios

Zeigen Sie mir das gesamte Projekt, einschließlich aller Arbeiten, die Sie in C++ und Mql durchgeführt haben. Ich glaube nicht, dass es das schlechteste Urheberrecht ist :-)
Wir werden Ihnen sagen, was mit dem vollständigen Code nicht stimmt, sonst werden Sie jeden mit Telepathie für lange Zeit belasten


Datei mit der Endung .def

Datei mit der Erweiterung .cpp

in mql4, habe ich einfach eine Datei aus dem Ordner der Terminalbibliotheken gezogen

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

Und dann rufe ich dummerweise die Funktion auf, die nur 18 zurückgibt und sonst nichts tut, es ist wie ein Experiment, um zu sehen, ob es funktioniert oder nicht.

 
Seric29:

Datei mit der Erweiterung .def

Datei mit der Erweiterung .cpp

Ich habe gerade eine Datei aus dem Terminal-Ordner Libraries nach mql4 kopiert

Und dann rufe ich einfach die Funktion auf, sie gibt 18 zurück und tut nichts weiter, es ist wie ein Experiment, um zu sehen, ob es funktioniert oder nicht.

Warum fügen Sie einen Bindestrich hinzu? Lassen Sie ihn weg.

alle Bezeichner in allen Dateien sollten streng identisch sein, kein ausgefallenes Alter :-)

 
Alexey Viktorov:

Hören Sie auf, in mql4 geschriebenen Scheißcode zu gucken, und Sie werden es schneller kapieren.

Der ganze, wie Sie es ausdrücken, "Scheißcode" wird gemäß der grundlegenden Sprachhilfe geschrieben.https://www.mql5.com/ru/docs/basis/function/call

Dort heißt es auch: "Eine Funktion kann nicht innerhalb einer anderen Funktion deklariert werden."

Das ist genau das, was dort steht. Deshalb funktioniert es nicht.

Deshalb versuche ich, von Experten zu erfahren, wie man die Funktion(Abweichung(Kanal)) aufruft. Wenn es vom Aufruf einer Funktion abhängt(double Hüllkurven(...))

Update: Das Problem wurde teilweise behoben.
 
Maxim Kuznetsov:

Warum fügen Sie einen __Strich in den Zusatz ein? Schaffen Sie ihn ab.

alle Bezeichner in allen Dateien sollten streng identisch sein, keine Fantasien über das Alter :-)

Nun, alle haben es nach der Anleitung gemacht und ich auch, jetzt werde ich es entfernen und sehen. Alles in allem hat es funktioniert, es kamen 18 zurück. Danke, ich werde weiter experimentieren.

 
Alexander Layzerevich:

Der ganze, wie Sie es ausdrücken, "Scheißcode" wird gemäß der grundlegenden Sprachhilfe geschrieben.https://www.mql5.com/ru/docs/basis/function/call

Dort heißt es auch: "Eine Funktion kann nicht innerhalb einer anderen Funktion deklariert werden."

Das ist genau das, was dort steht. Deshalb funktioniert es nicht.

Deshalb versuche ich, von Experten zu erfahren, wie man die Funktion(Abweichung(Kanal)) aufruft. Wenn es vom Aufruf einer Indikatorfunktion abhängt(double Hüllkurven(...))

Update: Das Problem wurde teilweise behoben.

Sie haben den von der FunktionAbweichung(Kanal) zurückgegebenen Wert bereits aufgerufen und an die FunktionHüllkurven(........) übergeben

und in der FunktionHüllkurven(........) selbst deklarieren Sie den letzten Parameter, der diesen Wert annimmt


Es ist wie folgt

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

Ich grüße alle. Viel Glück im Leben und Erfolg bei der Arbeit.

Ich bitte um Hilfe (unerwartet, nicht wahr? :) )

...................................................

Und genau da bin ich hängen geblieben :). Was anstelle von GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic) zu verwenden ist. The_failure_level(Symbol(),OP_BUY,Magic) sollte verwendet werden, aber wie bekommt man es...


Ich werde Sie bitten, mir zu helfen, bitte seien Sie mein Freund.
Z.U. Wenn Sie Ratschläge geben, bitte ich Sie, bedenken Sie, dass ich noch sehr unerfahren bin, seien Sie nicht zu faul, mir ein wenig mehr Details zu geben, wissen Sie, wie wenn: WALD DORT, vergessen Sie nicht, auf die Richtung hinzuweisen <------ || ------>.

Vielen Dank für Ihre Aufmerksamkeit :).

Guten Morgen, Nachmittag, Abend, Nacht (unterstreichen).

Ich möchte nicht unhöflich sein, aber ich werde Ihnen eine Frage stellen. Ich habe über mein mess.... nachgedacht. Ich benötige den letzten OP_BUY && OP_SELL, sein Magik || ticket || open_price..... Habe ich Recht? Wenn ich die letzte Bestellung finde, kann ich theoretisch die Entfernung von ihr zum aktuellen Ask\bid berechnen. Ich habe ein paar "Averager" hier heruntergeladen, imho sollte es etwas ähnliches, wenn nicht sogar identisches geben, ..... nur um festzustellen, dass ich gefunden habe, wonach ich gesucht habe..... :)

Wenn es niemanden stört :), werde ich weiterhin auf Ihren Rat hoffen, zumindest auf einen Verweis auf die Quelle der Informationen, die ich brauche (wenn es nicht das Buchvon Kovalev ist, ich habe vor 3 Tagen damit angefangen).

Grund der Beschwerde: