Wie sollte das Glas der Preise aussehen? - Seite 13

 
Реter Konow:

1. Das Programm ist in zwei Sprachen verfasst. Die Basissprache ist MQL5, und darauf aufbauend meine Auszeichnungssprache.

2. Wird auf die gleiche Weise verteilt wie gesendet. Ich meine in den richtigen Zellen. Es ist schwer in Worte zu fassen. Ich schicke Ihnen den Code später zu. Natürlich musste ich schwitzen, um die Daten in die richtigen Zellen zu bekommen, aber dieses Problem war gelöst.

3. Ich werde alles hinzufügen, was angefordert wird und was Sinn und Bedeutung hat.

mql5 ist gut, weil es keine Probleme mit der Kompatibilität und Lesbarkeit des Codes geben wird.
Und wie werden sie übermittelt? Wir wissen nicht, welche Art von Daten Sie zu Grunde gelegt haben.
Stream, Cast, Json.
Wenn die Einstufung in einer for-Schleife erfolgt, würde ich auf Schleifen verzichten.
Jede Schleife hat eine Verarbeitungszeit, und das ist die Latenzzeit.
Es gibt nur etwa 40 Preisniveaus im Tumbler, nach oben und unten.
Daher würde ich für jede Stufe eine eigene Variable mit dem gewünschten Wert schreiben und so die Schleife eliminieren.

 
Roman:

mql5 ist gut, es wird keine Probleme mit der Kompatibilität und Lesbarkeit des Codes geben.
Und wie werden sie übermittelt? Wir wissen nicht, welche Art von Daten Sie zu Grunde gelegt haben.
Stream, Cast, Json.
Wenn die Einstufung in einer for-Schleife erfolgt, würde ich auf Schleifen verzichten.
Jede Schleife hat eine Verarbeitungszeit, und das ist die Latenzzeit.
Es gibt nur etwa 40 Preisniveaus im Tumbler, nach oben und unten.
Daher würde ich für jede Ebene eine eigene Variable mit dem gewünschten Wert schreiben und so die Schleife eliminieren.

Sehen Sie sich den Code auf der vorherigen Seite an.

Ich zentralisiere die eingehenden Daten in Bezug auf die mittlere Zelle des Bechers. Der Preis, der dem Briefkurs am nächsten kommt, wird in die Zelle in der Mitte gesetzt und dann die übrigen Preise in aufsteigender Reihenfolge. Dasselbe gilt für die Angebotspreise und ihre Gebote.

 
Roman:

mql5 ist gut, es wird keine Probleme mit der Kompatibilität und Lesbarkeit des Codes geben.
Wir wissen nicht, welche Art von Daten Sie haben, und wie sie zugeordnet werden.
Stream, Cast, Json.
Wenn die Einstufung in einer for-Schleife erfolgt, würde ich auf Schleifen verzichten.
Jede Schleife hat eine Verarbeitungszeit, und das ist die Latenzzeit.
Es gibt nur etwa 40 Preisniveaus im Tumbler, nach oben und unten.
Daher würde ich für jede Ebene eine eigene Variable mit dem gewünschten Wert schreiben und so die Schleife eliminieren.

Ich weiß nicht, wie ich das Problem der Verteilung eingehender Daten ohne einen Zyklus lösen kann. Können Sie mir einen Tipp geben?

Manchmal kommen mehr als 40 Preisstufen herein. Einige von ihnen passen nicht in den Becher. Ich habe also eine Empfängeranordnung mit 100 Zellen erstellt. Es ist unmöglich, alles im Picker anzuzeigen, aber es kann von der Engine angefordert werden.

 
Roman:

...
Aus diesem Grund würde ich für jede Ebene eine Variable mit dem erforderlichen Wert vorschreiben, mit Ausnahme des Zyklus.

Die Daten werden in einem Array in der Reihenfolge vom höchsten zum niedrigsten Preis angezeigt. Es gibt keine Begrenzung der Datenmenge. Es kann 60 Kurse mit Geboten geben, 30 für jede Seite, oder es kann 30 Kurse geben, die alle höher als der Briefkurs oder niedriger als der Geldkurs sind. Ohne einen Zyklus ist das Problem also nicht zu lösen.

 
Реter Konow:

Die Daten werden in einem Array in der Reihenfolge vom höchsten zum niedrigsten Preis angezeigt. Es gibt keine Begrenzung der Datenmenge. Es kann 60 Kurse mit Geboten geben, 30 für jede Seite, oder es kann 30 Kurse geben, die alle höher als der Briefkurs oder niedriger als der Geldkurs sind. Es ist also nicht möglich, das Problem ohne einen Zyklus zu lösen.

Wenn die Indizierung der eingehenden Elemente im Array nicht unterbrochen wird, können wir jedes Element aus dem Array ohne die Schleife nehmen und es unserer Variablen zuweisen.
Und weisen Sie bereits jeder Variablen, die den Wert enthält, eine eigene Zellebene zu.
Sie können auch jedes Element des Arrays gleichzeitig einer Ebene zuordnen.
Dann schließen wir auch Variablen aus, aber nicht initialisierte Daten sind keine gute Kodierungspraxis.

 

Eine andere Idee kam auf.
Um das empfangene Array in zwei Arrays Bid und Ask zu unterteilen
Und überlegen Sie, wie Sie die Funktion CopyArray() verwenden können.

Nach der Implementierung beider Methoden können wir die Geschwindigkeit der Verarbeitung messen.
Und welche davon das beste Ergebnis bringt, und lassen Sie es.
 
Roman:

Wenn die Indizierung der eingehenden Elemente im Array nicht unterbrochen wird, können wir jedes Element aus dem Array ohne die Schleife nehmen und es unserer Variablen zuweisen.
Und schon ist jede Variable, die den Wert enthält, der Zellebene zugeordnet.
Sie können auch jedes Element des Arrays gleichzeitig einer Ebene zuordnen.
Dann schließen wir auch Variablen aus, aber nicht initialisierte Daten sind keine gute Kodierungspraxis.

Leider gibt es keine geordneten Preise in dem Array, und die Indexierung verweist nicht auf bestimmte Zellen im Tumblr. Die Daten kommen von einem höheren Preis zu einem niedrigeren Preis, aber dort endet der Auftrag. Es kann ein Punkt zwischen den Preisen liegen, aber auch 10 oder 153. Der Schieberegler zeigt die zuletzt geänderten Auftragsvolumina in dem gesamten Bereich an, in dem sie sich befinden. Wenn ein Preis über 150 Pips vom asc die Anzahl der Limit-Orders verändert hat, erscheint er im Array. Daher gibt es im Array keine andere Reihenfolge als von größer zu kleiner, und die Daten können nur in einer Schleife neu angeordnet werden.

 
Реter Konow:

Leider gibt es in dem Array keine Indizierung. Die Daten kommen von einem höheren zu einem niedrigeren Preis, aber dort endet die Reihenfolge. Es kann ein Punkt zwischen den Preisen liegen, aber auch 10 oder 153. Der Stapel zeigt die zuletzt geänderten Bestellmengen für den gesamten Bereich an, in dem sie sich befinden. Wenn ein Preis über 150 Pips vom asc die Anzahl der Limit-Orders verändert hat, erscheint er im Array. Daher gibt es im Array keine andere Reihenfolge als von mehr zu weniger, und die Daten können nur in einer Schleife geordnet werden.

Es gibt eine Indizierung durch Array-Elemente im empfangenden Array.
Die Daten kommen vom höheren zum niedrigeren Preis, sie sind immer sequentiell geordnet, nicht wahr?
Wählen Sie also ein beliebiges Element aus dem Array nach Index, aber ohne Schleife.
Und wenn es unmöglich ist, bessere Gebote und Anfragen zu erfassen, weil sich die Größe der eingehenden Daten ändert,
dann sollten wir vielleicht über CopyArray() nachdenken

 
Roman:

Es gibt eine Indizierung durch Array-Elemente im empfangenden Array.
Die Daten kommen von einem höheren zu einem niedrigeren Preis, sie sind immer der Reihe nach angeordnet, nicht wahr?
Wählen Sie also ein beliebiges Element aus dem empfangenden Array nach dem Index aus, aber ohne die Schleife.

Der Reihe nach geordnet. Aber:

  1. Es können mehr Daten eingehen als Becherzellen vorhanden sind.
  2. Es gibt keine klare Reihenfolge zwischen den Preisen. Es kann ein Kurs über dem Briefkurs und 7 Kurse unter dem Geldkurs liegen.
  3. Die Abstände zwischen den Preisen können ungleichmäßig sein. Zwischen dem ersten und dem zweiten Punkt kann 1 Punkt liegen, zwischen dem zweiten und dem dritten Punkt 18 Punkte oder 1008 Punkte.
Deshalb werden Sie nicht wissen, welcher Preis dem Ask und welcher dem Bid am nächsten liegt. Sie werden also nicht wissen, welcher Preis in der Mitte des Pakets liegen sollte, ohne den Zyklus zu machen.
 
Реter Konow:

Der Reihe nach geordnet. Aber:

  1. Es können mehr Daten eingehen als Becherzellen vorhanden sind.
  2. Es gibt keine klare Reihenfolge zwischen den Preisen. Es kann ein Kurs über dem Briefkurs und 7 Kurse unter dem Geldkurs liegen.
  3. Die Abstände zwischen den Preisen können ungleichmäßig sein. Zwischen dem ersten und dem zweiten Punkt kann 1 Punkt liegen, zwischen dem zweiten und dem dritten Punkt 18 Punkte oder 1008 Punkte.
Ohne einen Zyklus zu machen, ist es daher unmöglich zu wissen, welcher Preis dem Briefkurs und welcher dem Geldkurs am nächsten liegt und welcher Preis daher in der Mitte der Schale liegen sollte.

Woher nehmen Sie solche krummen Daten? ))

1) Definieren Sie einen klaren Bereich für die Auswahl der Daten, z. B. 20 nach oben, 20 nach unten.
und nur diesen Bereich auswählen, alles andere ist für uns nicht wichtig.

2. Sie sagen, dass die Preise von oben nach unten verlaufen und in absteigender Reihenfolge angeordnet sind.
Was also höher oder niedriger ist, spielt keine Rolle, schauen Sie nicht auf die Preise, sondern auf die Indizes in der Reihe.

2. Wenn Sie die Reihenfolge nach dem Abstand zwischen den Preisniveaus meinen, spielt das überhaupt keine Rolle, denn wir haben eine Indizierung im empfangenden Array.

Grund der Beschwerde: