Wenn sich Metaquotes an seine eigenen Regeln halten würde wäre schon viel gewonnen.

Einloggen oder registrieren, um einen Kommentar zu schreiben
Otto Pauser
2168
Otto Pauser  

Ich wollte jetzt ein Tool zum stoppen des Testers an bestimmten Zeitpunkten in die Codebase stellen.

Und da lese ich folgendes: "Alle Kommentare sind auf Englisch zu schreiben."

Was machen die Russen ? Denen ist das wurscht und der Metaeditor kann nach wie vor keine kyrillischen Zeichen lesen.



"Например" vergessen zu übesetzen. (bedeutet: zum Beispiel)

Schlampereien wohin man sieht, keine Qualitätskontrolle und keine Anlaufstelle um Fehler zu melden.

Wenn der MT5 nicht so gut zu programmieren wäre, hätte ich schon lange die 'Flinte ins Korn geworfen'.

amando
2906
amando  
Otto Pauser:

Ich wollte jetzt ein Tool zum stoppen des Testers an bestimmten Zeitpunkten in die Codebase stellen.

Und da lese ich folgendes: "Alle Kommentare sind auf Englisch zu schreiben."

Was machen die Russen ? Denen ist das wurscht und der Metaeditor kann nach wie vor keine kyrillischen Zeichen lesen.



"Например" vergessen zu übesetzen. (bedeutet: zum Beispiel)

Schlampereien wohin man sieht, keine Qualitätskontrolle und keine Anlaufstelle um Fehler zu melden.

Wenn der MT5 nicht so gut zu programmieren wäre, hätte ich schon lange die 'Flinte ins Korn geworfen'.

Was würde es nützen wenn Du Fehler melden könntest und die Meldung dann ignoriert wird? So gesehen ist es Konsequent keine Meldestelle zu machen ;-)

Andreas Fechter
47
Andreas Fechter  

Hi,

ein Tool zum Stoppen im Real TradeMode ist problematisch. Im TestModus löse ich das Problem so, daß ich dem StopPunkt ein

Ereignis, das ich erwarte, zuordne. Dann setzte ich im Editor den StopPunkt als   if(Ereignis == erfüllt) { StopPunkt} und ich kann im

normalen Tracing den Code schrittweise  weiterverfolgen, bzw. in der ToolBox mir die Variablen anzeigen lassen. Meine gewählten Ereignisse dazu

sind der TickZähler in OnTick() mit tickOnTick++ hochgezählt, die Candle- oder Periodennummer, die über die SetNewBar Methode

ebenfalls inkrementiert wird. Diese Abfrage if(Ereignis == erfüllt) als globale Funktion kann in jedem Teil des Codes implementiert werden.

Im Real Trade Mode geht es auch, nur die Sinnfälligkeit muß jeder selbst untersuchen. Dort ist ein (Stop) Ereignis aber als OnClick() Methode

angelegt. Ich reserviere zwei Rectanglel Objekten rechts oben im Chart ein Feld für Stop ein und eins für Stop aus. Das auslösende Ereignis für

einen Stop ist die Mausposition, im Feld "ein" oder Feld "aus.

So habe ich das o.a. Problem mit bordmitteln umgangen und es funktioniert sehr gut.

Viel Erfolg!

Otto Pauser
2168
Otto Pauser  

Das mit einem TickIndex und BarIndex verwendi ich auch.

Die OnClick() Methode funktioniert im Tester leider nicht.

Dort wäre es wünschenswert den Tester stoppen und starten zu können analog wie in YT, oder mit Spacebar.

Christian
3200
Christian  

Stoppen des Testers geht.

Ich nutze es selber . Ich kann es wählen ob jeden Tick oder jede Bar.

Nur muss das Signal für "weiter" in MT5 eingeschleußt werden.

Bei dem API kommt es bei mir über c# extern.

OnTimer wird in jedem OnTick einmal aufgerufen.

Anscheinend wartet der mt5 in OnTimer definitiv bis die zu ende ist.


void OnTimer()
{
   while(true)
   {
      int executedCommand = executeCommand();
      
      if (_is_ticks_locked)
         continue;
      
      if (executedCommand == 0)
         break;
   }
}

https://github.com/vdemydiuk/mtapi/blob/master/mq5/MtApi5.mq5


Gruß

Einloggen oder registrieren, um einen Kommentar zu schreiben