Einzelnen Beitrag anzeigen
  #15 (permalink)  
Alt 12.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ca$hDigger Beitrag anzeigen
Probiere es doch mal mit einem Skript (siehe mein Beispiel 2 "SKRIPT:") statt mit einem EA. Ein Skript sollte auch offline funktionieren (zumindest ging das vor Jahren bei mir in MT4)
Okay, ich habe das jetzt probiert (die Endlos-Schleife für ein Script). Der Code funktioniert dann und die Ausgabe sieht so aus, wie erwartet. Danke auch für diesen "neckischen" kleinen Counter (++z), dadurch wird die Ausgabe schön "durchnummeriert" und besser nachvollziehbar. Diesen Counter werde ich mir merken, könnte mir vorstellen, dass ich beim Debuggen noch öfters Verwendung dafür haben werden.

Um Verwechslungen vorzubeugen, hier noch mal der Code-Schnipsel:
Code:
int z=0;
void OnStart()
  {
      while(1)
         {
            Sleep(1000); // Trigger jede Sekunde
            Print("TEST: ",  ++z);
         }     
  }

In einem früheren Beitrag schriebst Du:

Zitat:
Eine Endlos-Whileschleife funktioniert zwar, ist aber natürlich nicht besonders toller Programmierstil da beim Deinitialisieren eine "abnormal termination" auftreten kann.
Die sauberte Lösung wäre daher einen EventTimer zum künstlichen Triggern zu nutzen (dies geht nicht bei Skripten, nur EA und Indis)
Um ehrlich zu sein, ich kann mir unter einer abnormal termination derzeit nicht besonders viel vorstellen.

Was für Nachteile kann denn eine abnormal termination haben?

Die Endlos-Schleife brauche ich ja nur fürs Debuggen. Wenn die Endlosschleife nicht im EA funktioniert, sondern nur im Script, würde ich halt den Code-Teil den ich gerade Debuggen will vom EA in ein Script kopieren und dort dann mit der Endlos-Schleife testen.

Ist eine abnormal termination in dem Fall überhaupt von Nachteil?

---

Es gibt eine Sache, die ich noch gern aufklären würde:

Du schriebst ja, die sauberste Lösung wäre ein EventSetTimer und Du hattest auch einen Beispiel-Code gepostet. Wie ich in einem meiner früheren Beiträge geschrieben habe, habe ich diesen Beispiel-Code für einen EventSetTimer() im EA getestet, er führte dort aber nicht zu einer Ausgabe.

Meine Vermutung war, dass der EventSetTimer nicht zu einer Ausgabe führt, weil ich nicht in einem Konto eingeloggt bin? Diese Vermutung konnte ich bislang noch nicht bestätigen, wäre schön, hier noch mal Feedback zu kriegen.

Wenn das so ist (EventSetTimer funktioniert nur mit eingeloggtem Konto) frage ich mich allerdings, wozu ich den EventSetTimer überhaupt brauche. Wenn ich mich in eine Konto einlogge, bekomme ich ja ohnehin vom Broker "organische", also natürlich auftretende, Ticks, wozu sollte ich dann noch zusätzlich einen künstlichen Trigger (eben EventSetTimer) benötigen?


Sorry, dass ich so viele Code-Schnipsel poste und manchmal auch einen der schon früher gepostet wurde. Ich mache das, dass immer klar ist welchen Code ich gerade meine. Das nachvollziehbar ist, was ich gerade machen, und um zu vermeiden, dass der eine von Äpfeln redet und der andere von Birnen.

Ich bitte auch zu entschuldigen, dass ich Dir zeitverzögert antworte. Habe das schon vor zwei Tagen ausprobiert, kam dann aber nicht mehr zum posten bzw. habe angefangen den Post zu schreiben und konnte ihn gerade eben erst beenden.

Besten Dank und Grüße,
LQK