Einzelnen Beitrag anzeigen
  #18 (permalink)  
Alt 12.06.20
Ca$hDigger Ca$hDigger ist offline
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von LQK Beitrag anzeigen
Der Code funktioniert dann und die Ausgabe sieht so aus, wie erwartet.
Ok prima dann gibts schon mal eine funktionierende Variante für offline.

Zitat:
Zitat von LQK Beitrag anzeigen

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?
Nein in diesem Fall nicht, fürs debuggen ist das kein Problem. Es ist eben so, dass die Schleife nie verlassen wird und die "abnormal termination" gibt es auch erst wenn du das Skript vom Chart entfernst. Wenn das Skript entfernt wird versucht das Terminal das Programm zu beenden aber jenes steckt in der Endlosschleife daher wird es vom Terminal dann einfach gezwungen beendet, dabei entsteht dann diese Meldung. Ist also nicht weiter schlimm fürs debuggen.


Zitat:
Zitat von LQK Beitrag anzeigen
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 bei dir mit dem Code keine Ausgabe kommt, dann ist es im Grunde der Beweis, dass OnInit() (und damit der EventTimer) nicht aufgerufen wird wenn du nicht eingeloggt bist. Würde OnInit() aufgerufen werden, würde der EventTimer funktionieren, da das aber nicht so ist wird OnInit() erst gar nicht aufgerufen.
Als Fazit kann man also festhalten, da OnInit() in einem nicht eingeloggten Konto nicht gestartet wird, kann man grundsätzlich EAs ohne eingeloggtes Konto NICHT zum künstlichen triggern nutzen. Die einzige funktionierende Lösung ohne eingeloggtes Konto ist also das Skript mit der Endlosschleife.

Zitat:
Zitat von LQK Beitrag anzeigen
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?
Mit einem EventTimer bekommt man einen Trigger in definierten Abständen, mit Ticks wiederum nur wenn ein neuer Kurs kommt. Ein Anwendungsfall könnte sein zB Variablen alle Stunde in einer File zu sichern als Backup, es gibt viele Möglichkeiten wo sowas nützlich sein kann, eben immer wenn man in einem bestimmten Zeitintervall etwas durchführen möchte.