Tiki in Echtzeit - Seite 13

 
Roman:

Oder vielleicht für die Echtzeit, anstelle von

verwenden.

Warum kopieren, wenn Sie sofort den aktuellen Preis erhalten können?
Theoretisch hat CopyTicks in seinen Eingeweiden zusätzliche Parameterprüfungen, wodurch die Länge des Codes im Funktionskörper erhöht wird.
Aber SymbolInfoTick hat keine zusätzlichen Parameter, und theoretisch sollte die Implementierung dieser Funktion weniger Code enthalten.
Weniger Code bedeutet schnellere Ausführung.

Der einzige Wermutstropfen ist, dass die Funktion SymbolInfoTick ähnlich wie CopyTicks keine ausführliche Dokumentation hat und es nicht ganz klar ist, wie sie funktioniert.
Werden die Daten zwischengespeichert, oder werden die Rohdaten sofort wiedergegeben?

Nur das Glas ist sofort verfügbar, alles andere wird zusätzlich geprüft.

Niemand wird die detaillierte Dokumentation offenlegen - sie ist ein Geheimnis hinter den 7 Siegeln ))))

 
Sergey Chalyshev:

Nur das Glas wird sofort ausgehändigt, alles andere wird zusätzlich kontrolliert.

Niemand wird die detaillierte Dokumentation offenlegen - sie ist ein Geheimnis hinter sieben Siegeln ))))

SymbolInfoTick() kann im Prinzip nicht den Stack geben, ich denke wir meinten BestBid, BestAsk.
Wird die MqlTick-Struktur nicht vollständig von BestBid und BestAsk ausgefüllt?
Wie kommen Sie darauf, dass andere Mitglieder der Struktur einer zusätzlichen Kontrolle bedürfen?

struct MqlTick 
{ 
   datetime     time;          // Время последнего обновления цен 
   double       bid;           // Текущая цена Bid 
   double       ask;           // Текущая цена Ask 
   double       last;          // Текущая цена последней сделки (Last) 
   ulong        volume;        // Объем для текущей цены Last 
   long         time_msc;      // Время последнего обновления цен в миллисекундах 
   uint         flags;         // Флаги тиков 
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью 
};

Wenn Sie das gesamte Glas für alle Banken erhalten möchten, sollten Sie

bool  MarketBookGet( 
   string        symbol,     // символ 
   MqlBookInfo&  book[]      // ссылка на массив 
   );

Gibt ein Array von MqlBookInfo-Strukturen zurück, die Einträge für das angegebene Symbol enthalten.

 
Roman:

SymbolInfoTick() kann die Tasse nicht geben, vielleicht meinen Sie BestBid, BestAsk.
Wird die MqlTick-Struktur nicht vollständig von BestBid und BestAsk ausgefüllt?
Warum glauben Sie, dass die übrigen Strukturelemente einer zusätzlichen Kontrolle bedürfen?

Und wenn du den kompletten Tumblr für alle Gangs haben willst, solltest du

Gibt ein Array von MqlBookInfo-Strukturen zurück, die Datensätze eines Stapels von Preisen für ein bestimmtes Symbol enthalten.

Ich weiß nicht, was Sie meinen.

OnBook und OnTick sind unterschiedliche Threads, wenn MQ sie synchronisiert, ist das sehr schlecht.

Nach dem Bild zu urteilen, das ich oben gezeigt habe, sind sie nicht vollständig synchronisiert.

Auch der fxsaber-Test ist vertrauenserweckend:

Das Ergebnis ist schlecht: In OnTick/OnBookEvent stimmen die mit verschiedenen Methoden empfangenen Ticks innerhalb einer On-Funktion sehr oft nicht überein. Und Sie können nicht erkennen, welche Methode, die Zecke zu bekommen, relevant ist und welche nicht. Schreckliche Unklarheit.

Also, wer will was:

- wenn Sie bessere Preise brauchen - OnBook,

- wenn Sie ein paar Angebote brauchen - CopyTick,

- und wenn Sie nichts brauchen - OnTick, es kann Ticks überspringen und den Informationsfluss verzögern, weil es in einem Prozess in Linie mit anderen On-Funktionen arbeitet.


p.s. Alles, was ich hier geschrieben habe, betrifft nur Börsenkonten, Forexisten interessiert das nicht (kein Unterschied), Forexisten gehen vorbei.

fxsaber
fxsaber
  • www.mql5.com
Опубликовал пост TesterPortfolio - портфель ТС Опубликовал пост "Out-Of-Sample" - где расположить, справа или слева? Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации - ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу...
 
Andrey Khatimlianskii:

Für einen Moment schien es so, als ob Sie den Wunsch haben, zu verstehen, und das wird Ihnen helfen, Ihren Stolz zu zähmen.
Nein, es schien nur so.

Die Frage ist gelöst, und jeder kann Ihre, fxsabers und meine Codes durchsehen und Schlussfolgerungen ziehen.
Mit Ihnen stelle ich den Dialog ein, es kommt nichts außer lautem Geschrei von Ihnen, und auf den Empfang der Informationen arbeitet Ihr Gehirn überhaupt nicht.

Viel Glück mit den FORTS.

Andrej!

Sie sind zu Unrecht durch meine Bemerkungen über FOREX beleidigt, sie haben nichts mit Ihnen zu tun.

Wir haben immer einen konstruktiven Dialog geführt, aber wenn es Sie in irgendeiner Weise beleidigt hat, dann

Ich entschuldige mich persönlich bei Ihnen!

 
Sergey Chalyshev:

Ich weiß nicht, was Sie meinen.

OnBook und OnTick sind unterschiedliche Threads, wenn MQ sie synchronisiert hat, ist das schade.


Nach meinen jüngsten Tests (nachdem ich einen Fehler im Code behoben hatte),

es ist ganz klar, dass OnTick() entweder früher oder gleichzeitig mit OnBookEvent() ausgelöst wird,

aber in den Druckern ist OnTick() immer die erste.

Es scheint, dass, wenn eine neue Gruppe von Zecken auftaucht,

die Funktion, die sie verarbeitet, "zieht" zunächst OnTick() und "schleicht" dann Daten ein

wo es hingehört :)

 
Roman:

Oder vielleicht für die Echtzeit, anstelle von

verwenden.

Warum kopieren, wenn Sie den aktuellen Preis sofort erhalten können?

An welchem Markt sind Sie interessiert?

 
prostotrader:

Nach meinen jüngsten Tests (nachdem ich einen Fehler im Code behoben hatte),

ist es ganz klar, dass OnTick() entweder früher oder gleichzeitig mit OnBookEvent() ausgelöst wird,

aber in den Druckern ist OnTick() immer die erste.

Es scheint, dass, wenn eine neue Gruppe von Zecken eintrifft,

dann "zieht" die Funktion, die sie verarbeitet, zuerst OnTick() und "sendet" dann die Daten

wo es hingehört :)

Ja, das ist ungefähr dasselbe.

Das Terminal ist ein asynchrones Single-Thread-System, das alle Ereignisse nacheinander verarbeitet.

Für die Reinheit des Experiments, wer schneller ist OnBook oder OnTick, sollten wir zwei Terminals bei einem Broker laufen lassen.

In einem EA nurOnBook ohneOnTick .

Im anderen FallnurOnTick ohne OnBook.

Und fassen Sie die Preise mit der Ortszeit in Millisekunden in einer Datei zusammen. Dann wird sich der wirkliche Unterschied zeigen.

Andernfalls ist es ohne Lagerzeit unmöglich, den Unterschied zu verstehen.

 
Sergey Chalyshev:

Ja, das ist in etwa die gleiche Denkweise.

Das Terminal ist ein asynchrones Single-Thread-System, das alle Ereignisse nacheinander verarbeitet.

Für die Reinheit des Experiments, wer schneller ist OnBook oder OnTick, sollten wir zwei Terminals bei einem Broker laufen lassen.

In einem EA nurOnBook ohneOnTick .

Im anderen FallnurOnTick ohne OnBook.

Und fassen Sie die Preise mit der Ortszeit in Millisekunden in einer Datei zusammen. Dann wird sich der wirkliche Unterschied zeigen.

Andernfalls kann man den Unterschied nicht verstehen, wenn man keine Zeit auf Lager hat.

Kein Problem, ich werde versuchen, es am Montag zu machen (ich habe drei Terminals in Echtzeit).

 
Sergey Chalyshev:

Ich weiß nicht, was Sie meinen.

OnBook und OnTick sind unterschiedliche Threads, wenn MQ sie synchronisiert hat, ist das schade.

Nach dem Bild zu urteilen, das ich oben gezeigt habe, sind sie nicht vollständig synchronisiert.

Auch der fxsaber-Test ist vertrauenserweckend:

Also, wer will was:

- wenn Sie bessere Preise brauchen - OnBook,

- wenn Sie ein paar Angebote brauchen - CopyTick,

- und wenn Sie nichts brauchen - OnTick, es kann Ticks überspringen und den Informationsfluss verzögern, weil es in einem Prozess in Linie mit anderen On-Funktionen arbeitet.


p.s. Alles, was ich hier geschrieben habe, betrifft nur Börsenkonten, Forex-Händler interessiert das nicht (kein Unterschied), Forex-Händler gehen vorbei.

Ich bezog mich aufSymbolInfoTick, Sie schrieben, dass " nur die Tasse sofort gegeben wird, alles andere wird zusätzlich geprüft".
Ich habe Ihnen die Struktur von MqlTick gegeben, um Ihnen zu zeigen, woraus sie besteht, es gibt keine Tasse, nur beste Preise. Und es gibt keine zusätzlichen Kontrollen.
Ich bin daher überrascht über das, was Sie geschrieben haben, vielleicht haben Sie die Idee falsch dargestellt.
OnBook und OnTick sind unterschiedliche Sockets, da bei allen Börsenprotokollen der Handel in einem Socket und Level2 (Markt) in einem anderen Socket stattfindet.
Dies bedeutet, dass nur das beste Gebot, die beste Nachfrage, das letzte Gebot usw. an den Socket OnTick gesendet werden. Daher hat der OnTick einen eigenen Handler für diesen Socket.
Für Level2 gibt es einen anderen Socket und dementsprechend auch einen anderen Handler. Sie sollten auf der Terminalseite nicht zwangsweise synchronisiert werden.

In Ordnung, wir verwenden genau das, was wir wollen, die Trades inSymbolInfoTick oder CopyTick, Glas in MarketBookGet.

 
prostotrader:

An welchem Markt sind Sie interessiert?

Ich verwende keinen Forex-Handel.
Im Beispielerhalten Sienur ein letztes Element der Struktur vonCopyTick, nämlich nur die besten Preise.
Also dachte ich, warum Daten von einem Speicherbereich in einen anderen kopieren,
, wenn es
SymbolInfoTick gibt, das die besten Preise liefert, ohne irgendwo zu kopieren. Es kann sein, dass ich mit der Funktionsweise falsch liege, das ist nur meine Vermutung.
Obwohl es möglich ist, dass diese beiden Funktionen auf dieselbe Weise funktionieren, besteht der einzige Unterschied darin, dass
CopyTick einen Bereich von Ticks anfordern kann.
Und
es ist unnötig, Schleifen zur Verarbeitung von Ticks zuverwenden.