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

 
Das Problem scheint zu sein, dass der Expert Advisor beim Wechsel des Zeitrahmens vorinitialisiert wird, was zu einer Menge leerer Variablen führt. Und wenn sie leer sind, bedeutet das, dass es angeblich keine Geschäfte gibt und wir neue eröffnen müssen.
 
intrade:
Das Problem scheint zu sein, dass der Expert Advisor beim Wechsel des Zeitrahmens vorinitialisiert wird, was zu einer Menge leerer Variablen führt. Und wenn sie leer sind, bedeutet das, dass es angeblich keine Geschäfte gibt und wir neue eröffnen müssen.

Legen Sie also keine leeren Variablen an. Und prüfen Sie, was bereits durch das Symbol, durch den Magier und - falls erforderlich - durch den Zeitrahmen geöffnet wurde. Aber es gibt hier keine Telepathen, ohne den Code gibt es nichts zu sagen.
 
intrade:
Das Problem scheint darin zu bestehen, dass der Expert Advisor beim Ändern des Zeitrahmens vorinitialisiert wird, was zu einer Menge leerer Variablen führt. Und wenn sie leer sind, bedeutet das, dass es angeblich keine Geschäfte gibt und wir neue eröffnen müssen.

Die Frage ist, warum zum Teufel wir brauchen, um den Zeitrahmen zu ändern, wenn der Expert Advisor ausgeführt wird? Sie müssen ein Tabu setzen - setzen Sie den EA, vergessen Sie den Chart, wenn Sie etwas sehen müssen, öffnen Sie einen neuen Chart und tun Sie damit, was Sie wollen.
 
intrade:
Das Problem scheint zu sein, dass der Expert Advisor beim Wechsel des Zeitrahmens vorinitialisiert wird, was zu einer Menge leerer Variablen führt. Und wenn sie leer sind, bedeutet das, dass es angeblich keine Geschäfte gibt und wir neue eröffnen müssen.


Verwenden Sie zum Beispiel Timer:

iClose

Gibt den Schlusskurs des (durch den Parameter shift angegebenen) Balkens des entsprechenden Diagramms zurück.

doubleiClose(
stringsymbol,// Symbol
intZeitrahmen,// Zeitraum
intshift// shift
);

Und ändern Sie den Zeitrahmen, so oft Sie wollen! Schauen Sie in der Doku nach, dort finden Sie alles!

 
Verlangsamen Drucke die EA-Optimierung oder werden sie nicht verarbeitet?
 
ClanVi:
Verlangsamen Drucke die EA-Optimierung oder werden sie nicht verarbeitet?

Ja, jede Codezeile benötigt CPU-Zeit, und Code, der Nachrichten erstellt oder mit grafischen Objekten arbeitet, verlangsamt die Programmausführung erheblich...
 
ClanVi:
Verlangsamen Drucke die EA-Optimierung oder werden sie nicht behandelt?


Dies ist sehr leicht zu vermeiden! Wenn der Code im Tester getestet wurde, setzen Sie ihn vor Print oder Comment

  if(!IsOptimization() || !IsTesting()) 

Und es lässt sich nicht nähen!

 
VOLDEMAR:

Ja, jede Codezeile benötigt CPU-Zeit und Code, der Nachrichten erstellt oder mit grafischen Objekten arbeitet, verlangsamt die Programmausführung erheblich...
Grafische Objekte werden im Optimierer und Tester ignoriert, wenn sie nicht im visuellen Modus sind, aber Ausdrucke sind für mich interessant...
 
Guten Tag zusammen. Gentlemen beraten, was mit dem Fehler "Error 6" keine Verbindung mit dem Server zu tun, aber die Zecken gehen und alles ist, wie es sollte.... Eulen auf den Test ... heute habe ich aufgestanden und hier sind Sie..... gibt es 4 Eulen 5M 15M 30M 1H solcher Fehler hat in den Protokollen auf M5 M15 M30 alle zu verschiedenen Zeiten und Preise geworfen.... Wer hat Erfahrung mit dieser Art von Dingen bitte helfen. Danke.
 

Der Debugger funktioniert nicht - was ist los?

Herzliche Grüße an alle Forumsmitglieder!

Niemand hat meine auf Seite 644 gestellte Frage beantwortet. Ich muss die Frage falsch gestellt haben, also frage ich sie noch einmal. Also,

Metatrader Bild 646, Editor Bild 934. Hier ist ein einfacher Indikator:

class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг.
void start()                     
  {
   int i=10,                           
       k3;
   string k2;
  
     while(i>=1)                      
     {
      k2=Symbol();
    
      if (k2=="EURUSD") k3=3;
      if (k2=="USDCHF") k3=4;
      if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5;
       Alert("k2=",k2,"\n","k3=",k3);
       
          i--;                         
      }
  return;
  }

Ich habe es auf dem EURUSD, M1-Diagramm, und das ist, was ich erhalten:


Das heißt, dass alles so ist, wie es sein sollte.

Und jetzt mache ich einen Haltepunkt vor Alert und führe den Debugger aus:


USDCHF,H1 Chart erscheint. Woher kommt das Geld? NurEURUSD ,M1 war geöffnet.

Ich drücke auf OK, und das ist, was ich sehe:


D.h. der Indikator bezieht die Daten genau aus diesem USDCHF,H1. Was ist hier das Problem?

Die zweite Frage: Der Editor legt das geschriebene Skript nicht im Ordner Scripts ab, sondern im Ordner MQL4 und legt die kompilierte Datei auch dort ab. Ich muss den Quellcode manuell in den Ordner " Scripts" ziehen und dort ablegen, dann kompilieren, und erst dann wird das Skript im Navigator angezeigt. Indikatoren haben dieses Problem nicht, sie gehen direkt in ihren Ordner. Mache ich etwas falsch oder macht der Editor einen Fehler?

Viel Glück für denjenigen, der mir antwortet.