Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 929

 
Gibt es eine Möglichkeit, im Code zu überprüfen, in welchem Modus der Test läuft -
alle Ticks, offene Preise oder Testpunkte?
 
Warum kann ich keine Freunde hinzufügen?
 
Hallo. Ich versuche, Shared Hosting zu lernen, indem ich den Anweisungen folge, aber der EA lässt sich nicht öffnen.
 

Können Sie mir sagen, welche der Säulen der Klassischen TA der Autor dieses Bildes ist?

Dieses Bild findet sich in Elders"Fundamentals of Trading". Ich interessiere mich nämlich für dasselbe Bild, aber mit KONVERGENZEN, falls es das überhaupt gibt.


 

Hilfe, bitte. Ein einfaches Skript und es funktioniert nicht. Ich kann mir nicht erklären, warum.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Die Schleife muss 6 Mal durchlaufen werden. Bei jeder Iteration sollte dem Array awd1 ein Wert zugewiesen werden. Nachdem die Schleife beendet ist, sollte ein Fenster mit dem Eintrag "first=" erscheinen. Aber es wird nicht angezeigt. Was ist los?

 
silachara:

Hilfe, bitte. Ein einfaches Skript und es funktioniert nicht. Ich kann mir nicht erklären, warum.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

Die Schleife muss 6 Mal durchlaufen werden. Bei jeder Iteration sollte dem Array awd1 ein Wert zugewiesen werden. Wenn die Schleife beendet ist, sollte ein Feld mit dem Eintrag "first=" auftauchen. Aber sie taucht nicht auf. Was ist los?

Dies wird auch helfen, die folgenden Meldungen im Terminal loszuwerden: array out of range in ...:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+


P./S.: Hier ist eine Variante mit einem Scheck:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, count=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
      count++;
      Print("count = ",count,", awd1[",i,"] = ",awd1[i],", j = ",j);
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+
 
silachara:
Die obigen Codes wurden leicht korrigiert, so dass nicht der gleiche Wert awd1[i] herauskommt.
 
DiPach:
Ich habe die obigen Codes leicht korrigiert, um den gleichen Wert awd1[i] zu vermeiden.

Ich danke Ihnen!

Das Array musste also deklariert werden, indem die Anzahl der Zellen darin angegeben wurde? Trat diese Anforderung auf, nachdem MT4 auf Build 600 umgestellt wurde? Oder war es früher schon so?

Und ich habe noch ein weiteres Problem: Ich kann die Datei nicht finden, in die die Informationen von Print() geschrieben werden. Bitte weisen Sie mir den Weg. Ich habe alle Verzeichnisse von MT4 durchsucht, aber es nicht gefunden.

 
silachara:

Ich danke Ihnen!

Das Array musste also deklariert werden, indem die Anzahl der Zellen darin angegeben wurde? Trat diese Anforderung auf, nachdem MT4 auf Build 600 umgestellt wurde? Oder war es früher schon so?

Die Funktion zum Festlegen der Größe eines dynamischen Arrays ArrayResize gab es auch schon vor dem 600th build.

Und so... mit der aktualisierten MQL4-Sprache ist der Compiler strenger geworden. Bei Bedarf können Sie sich die interessanten Informationen "aus erster Hand" ansehen, anstatt sie mit möglicherweise absichtlicher Verzerrung, einschließlich unvollständiger Darstellung, hier nachzuerzählen. Sie können es in der "Tabelle der Unterschiede zwischen den Compilern" der früheren und aktualisierten MQL4-Sprachen sehen (die Tabelle befindet sich am Ende der ersten Seite dieses Threads) oder eine Suche verwenden. Wenn ich mich recht erinnere, gab es viel Material über den Übergang zur aktualisierten Sprache MQL4.

 

silachara:

Und noch ein Problem: Ich kann die Datei nicht finden, in die die Informationen von Print() geschrieben werden. Bitte, sagen Sie mir den Weg. Ich habe alle Verzeichnisse von MT4 durchsucht, aber es nicht gefunden.

Ein schneller Weg: Gehen Sie auf die Registerkarte"Experten" des Terminals -> klicken Sie mit der rechten Maustaste auf diese Registerkarte -> klicken Sie im erscheinenden Menü auf"Öffnen".

Dadurch wird ein Ordner mit Protokolldateien geöffnet, die Einträge aus dieser Registerkarte enthalten, einschließlich der über Print() ausgegebenen Einträge. Unten sehen Sie ein Bild (mir ist eingefallen, dass ich diese Informationen in Form einer Visualisierung habe):


P./S. Auf die gleiche Weise können Sie auf Ihrem Computer schnell einen Ordner mit den Protokolldateien der Aufzeichnungen auf der Registerkarte"Protokoll" des Terminals öffnen (sie befinden sich in einem anderen Ordner).