Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 05.06.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard New Tick-Event künstlich erzeugen zwecks Debugging?

Hallo,

ich habe meinen ersten kleinen EA fertiggestellt. Seine Funktion:

Öffne jeden Tag beim ersten Tick der nach 9 Uhr eintritt einen Trade. Wenn an diesem Tag bereits ein Trade geöffnet wurde, kann an diesem Tag kein weiterer Trade geöffnet werden. Ein Trade darf Overnight offen bleiben, d.h. es kann dennoch der Fall eintreten, dass mehrere Trades gleichzeitig geöffnet sind.

Wollte jetzt in MT einen kleinen Backtest machen. Der Backtest endet aber nach längerer Rechenzeit nicht, auch wenn ich nur ganz kurze Zeitfenster (z.B. drei Tage) als Grundlage für den Backtest nehme.

Ich muss also debuggen. Beim kompilieren gab es keine offensichtlichen Fehlermeldungen. Wollte daher mit Hilfe von Print() schrittweise die einzellnen Abschnitte des Quellcodes testen, ob die Ihre Arbeit ordnungsgemäß machen.

Wollte jetzt erstmal testen, ob der EA um 9 Uhr ordnungsgemäß eine action durchführt, wenn noch kein Trade offen ist (eben mit der Print-Funktion). Die Uhrzeit kann ich testen, indem ich halt die Systemzeit auf 8:59 umstelle (die Abfrage der Uhrzeit erfolgt bei meine EA mit TimeHour(LocalTime()) oder halt indem ich die aktuelle Stunde zum testen als Wert in den Code eintrage.

Dummerweise gibt es neben der Uhrzeit noch eine zweite Bedingung, die zum Öffnen eines Trades erforderlich ist: Es muss ein Tick auftreten (weil sonst ja die Funktion OnTick() nicht abläuft.

Aus verschiedenen Gründen habe ich derzeit kein Konto, dass ich verwenden kann. bzw. verwenden will, um den EA mit Ticks zu füttern. Überdies wäre es mitunter vielleicht auch lästig, auf den nächsten Tick warten zu müssen.

---

Ich habe mich daher gefragt, ob ich irgendwie einen Tick "künstlich" erzeugen und den EA damit füttern kann? Dem EA (oder Teilen des EA) gewissermaßen vorgaukeln, dass ein neuer Tick aufgetreten wäre. Also ein Ereignis New Tick auf Knopfdruck oder mit ein bisw zwei Codezeilen erzeugen und den EA oder Teile des EA damit füttern.

Gibt es da eine Möglichkeit? Oder wie ist einem solchen Fall, wenn man Ticks für das Debugging braucht, die "kanonische" Vorgehensweise?


Ich freue mich über jeden konstruktiven Hinweis!

Besten Dank und Grüße,
LQK