Tiki in Echtzeit - Seite 21

 
Aleksey Mavrin:

Das ist das Bild des Tages. Natürlich haben wir nicht überprüft, ob OnBook mit Tick übereinstimmt, sondern haben einfach den nächsten genommen, in der Hoffnung, dass, wenn OnTick vor OnBook lag, der entsprechende Wert entweder gleich oder etwas später sein würde.

Maximale natürlich ohne zusätzliche Kontrollen ist kein Indikator, oder Überschwingen oder wirklich OnBook irgendwo langsam.


Aber das ist jemand, der es erklären kann? Warum werden so viele OnTicks eingesetzt, und kein einziges OnBook passt dazwischen?


Weil Sie selbst geschrieben haben: "Der Code ist gekröpft, vielleicht ist er schief, ich werde mir die Ergebnisse ansehen."

//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{ 
  if((Mode != USE_BOOK) || (symbol != Symbol())) return;
  TimeArrayBook[curBook]=GetMicrosecondCount();
  curBook++
 }
void OnTick()
{
  if(Mode != USE_TICK) return;
  TimeArrayTick[curTick]=GetMicrosecondCount();
  curTick++
}

Und Sie brauchen überhaupt keinen Timer...

 
Aber ich frage mich, ob der Verantwortliche mit den Antworten auf seine Frage zufrieden ist.
 
prostotrader:

Denn Sie haben selbst geschrieben: "Der Code ist hochgekurbelt, vielleicht ist er schief, ich werde mir die Ergebnisse ansehen. "

Und Sie brauchen überhaupt keinen Timer...

Sie haben nicht festgestellt, dass der Grund dafür Fehler im Code sind. Oder Sie haben die Frage nicht verstanden. Ich habe eine Markierung in On-Funktionen ausgegeben, ohne Timer, aber es gibt immer noch eine Reihe von Ticks, zwischen denen es keine OnBooks gibt.
 
Aleksey Mavrin:
Sie haben nicht festgestellt, dass die Ursache auf Fehler im Code zurückzuführen ist. Oder Sie haben die Frage nicht verstanden. Ich habe auch gerade eine Markierung in On-Funktionen gedruckt, ohne Timer, noch gibt es eine Menge von Ticks, zwischen denen es keine OnBooks gibt.

1. Es ist mir überhaupt nicht klar, wie Sie die EA(s) ausgeführt haben

2. Es gibt 2 von Andrei und mir geschriebene Codes, die

Siebekräftigen sich gegenseitig. Warum sollten Sie sich also die Mühe machen?

3. sowohl Andrey als auch ich haben EAs auf dem Derivatemarkt betrieben, und Sie auf dem Aktienmarkt.

Vielleicht hat das Terminal einige Mängel auf dem Fonds (Didn't sogar MT5 auf dem Aktienmarkt laufen).

Ich persönlich handele mit dem Fonds über Quick

 
prostotrader:

1. Es ist mir überhaupt nicht klar, wie Sie die EA(s) ausgeführt haben

2. Es gibt 2 von Andrei und mir geschriebene Codes, die

Sie bekräftigen sich gegenseitig. Warum sollten Sie sich also die Mühe machen?

3. sowohl Andrey als auch ich haben EAs auf dem Derivatemarkt betrieben, und Sie auf dem Aktienmarkt.

Vielleicht hat das Terminal einige Fehler im Fonds (ich habe nicht einmal MT5 auf dem Aktienmarkt laufen).

Ich persönlich handele mit dem Fonds über Quick

Oh, ich verstehe. Ich werde es morgen mit den Futures versuchen. Warum benutzen Sie nicht mt5 für den Fonds? Gibt es irgendwelche Nachteile?
Z.s. Der Code dort ist 3 Zeilen) nur fixiert die msk Zeit ohne irgendwelche Prüfungen, so dass die Warteschlange nicht in irgendeiner Weise durch den Handler verlangsamt wird, und auf den Timer es druckt und zählt die Verzögerung. Ich habe Ihren Code auch nicht ganz verstanden, das allgemeine Funktionsprinzip geht schon aus der Ausgabe hervor.
 
Aleksey Mavrin:
1. aha, ich verstehe. Morgen werde ich es an einem zukünftigen versuchen. Warum nutzen Sie MT5 nicht für den Fonds? Haben Sie irgendwelche Nachteile?
S.s. Der Code dort ist 3 Zeilen) nur fixiert die msc Zeit ohne Prüfungen, so dass die Warteschlange nicht in irgendeiner Weise durch den Handler verlangsamt wird, und auf den Timer es druckt und zählt die Verzögerung. Ich habe Ihren Code auch nicht ganz verstanden, das allgemeine Funktionsprinzip geht schon aus der Ausgabe hervor.

1. Der zweite und die folgenden Terminals beim Broker sind kostenpflichtig, und ich habe keine Strategien, bei denen ich nur mit Aktien(Aktienportfolios) handle.

2. Wenn Sie den akkumuliertenGetMicrosecondCount() ausgeben wollen, dann

tun es ohne Timer in OnDeinit(), wenn der EA beendet, alles wird ausgedruckt.

void OnDeinit(const int reason)
{
  if(Mode == USE_BOOK)
  {
    if(is_book == true) MarketBookRelease(Symbol());
  } 
  if(reason == REASON_REMOVE)
  {
   //Распечатываем данные
  } 
}
 
prostotrader:

2. Wenn Sie den akkumuliertenGetMicrosecondCount() ausgeben wollen, dann

tun Sie es ohne Timer in OnDeinit(), wenn EA beendet wird, wird alles ausgedruckt.

Man kann es auch so machen, ich habe es anfangs so gemacht, um den Überblick zu behalten. Aufgrund des Timers können OnTicks übersprungen werden, OnBooks sollten es aber nicht, da sie garantiert sind. Vielleicht habe ich etwas nicht bedacht, vielleicht lösen nicht alle Ticks einen Wechsel des Bechers aus, z.B. OnBook?
 
Aleksey Mavrin:
Ja, man kann es auch so machen, ich habe es ursprünglich so gemacht, um es klarer zu machen. Aber wegen des Timers können OnTicks übersprungen werden, aber OnBooks sollten nicht, sie sind garantiert. Vielleicht habe ich etwas nicht bedacht, vielleicht lösen nicht alle Ticks einen Wechsel des Glases aus, z.B. OnBook?

Auch.

Sie müssen die Zählerstände überprüfen:

void OnBookEvent(const string &symbol)
{ 
  if(curBook >= 65534) return;
  if((Mode != USE_BOOK) || (symbol != Symbol())) return;
  TimeArrayBook[curBook]=GetMicrosecondCount();
  curBook++
 }
void OnTick()
{
  if(curTick >= 65534) return;
  if(Mode != USE_TICK) return;
  TimeArrayTick[curTick]=GetMicrosecondCount();
  curTick++
}

A, wenn Sie Arrays deklarieren, gehen Sie wie folgt vor

ulong TimeArrayBook[
INT_MAX];

а инициализировать так
ArrayInitialize(TimeArrayBook, 0);

	          
 
prostotrader:

Auch.

Wir müssen eine Gegenprobe machen:

A, bei der Initialisierung sollte die Zahl65535 und nicht65536 sein

Nein, nicht notwendig. Das wird absichtlich so gemacht, um nichts zu überprüfen. Sie sind Ushort. Die Größe des Feldes ist übermäßig, aber das hat keine Auswirkungen.
 
Aleksey Mavrin:

Wer kann das erklären? Warum werden so viele OnTicks abgemeldet und nicht ein einziges OnBook dazwischen?

Schauen Sie sich die Uhrzeit des Protokolls an. Das alles geschah in einer MS, und daneben (in derselben MS) eine Reihe von OnBooks.

Sie können alle Ereignisse mit Zählern zählen, aber auch visuell können Sie sehen, dass es mehr OnBooks gibt.

Grund der Beschwerde: