Frage zu FORTS-Kursen - Seite 3

 

Es ist ratsam, die Computerzeit genau einzuhalten, damit die Wahrscheinlichkeit, dass die Protokolle falsch sind, geringer ist.

Danke für das Skript: hier sind die Ergebnisse dieses Skripts in 1 Minute 17:36

CollectTicks (ED-12.14,M1)      2014.11.10 17:36:06; Bid = 1.2474; Ask = 1.2475; Last = 1.2476; Vol = 3
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:06; Bid = 1.2474; Ask = 1.2476; Last = 1.2476; Vol = 3
 CollectTicks (ED-12.14,M1)      2014.11.10 17:36:12; Bid = 1.2474; Ask = 1.2476; Last = 1.2476; Vol = 5
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:26; Bid = 1.2474; Ask = 1.2475; Last = 1.2476; Vol = 5
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:28; Bid = 1.2474; Ask = 1.2476; Last = 1.2476; Vol = 5
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:29; Bid = 1.2474; Ask = 1.2476; Last = 1.2474; Vol = 8
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:29; Bid = 1.2473; Ask = 1.2475; Last = 1.2474; Vol = 8
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:30; Bid = 1.2473; Ask = 1.2474; Last = 1.2473; Vol = 5
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:30; Bid = 1.2472; Ask = 1.2474; Last = 1.2473; Vol = 5
CollectTicks (ED-12.14,M1)      2014.11.10 17:36:43; Bid = 1.2472; Ask = 1.2474; Last = 1.2474; Vol = 2

Die Besonderheit von OnTick ist, dass es sowohl auf Bid/Ask-Änderungen (Informationsfluss) als auch auf Last (Handelsfluss) reagiert.

Infolgedessen ist die Zahl der OnTick-Aufrufe für börsengehandelte Instrumente bewusst größer als die Zahl der Handelsgeschäfte.

Warum wird das so gemacht?

  1. Sie können einen Expert Advisor nicht nur mit Handelsgeschäften belasten und ihm keine Informationen über Marktveränderungen geben (es ist eine Sache, ihn 5 Mal aufzurufen, und eine andere, ihn 15 Mal aufzurufen)
  2. es ist unmöglich, in der Live-Marktübersicht Null Last und Last_Volume anzugeben, da einige Händler explodieren werden


Ein weiterer Punkt ist die Tatsache, dass bei Batch-Updates, wenn zwei oder mehr Ticks auf einem Instrument gleichzeitig eintreffen, OnTick einmal aufgerufen wird. Dies ermöglicht es uns, den Fluss der eingehenden Kurse nicht zu verlangsamen und keine riesige Warteschlange von Ticks für die verlangsamenden Expert Advisors zu bilden.

In Kürze werden wir den Zeit- und Umsatzfluss aktivieren, was uns eine genaue Analyse der Handelsdaten ermöglichen wird.

 
Renat:

Es ist ratsam, die Computerzeit genau einzuhalten, damit die Wahrscheinlichkeit, dass die Protokolle falsch sind, geringer ist.

Danke für das Skript: hier sind die Ergebnisse dieses Skripts in 1 Minute 17:36

Die Besonderheit von OnTick ist, dass es sowohl auf Bid/Ask-Änderungen (Informationsfluss) als auch auf Last (Handelsfluss) reagiert.

Infolgedessen ist die Zahl der OnTick-Aufrufe für börsengehandelte Instrumente bewusst größer als die Zahl der Handelsgeschäfte.

Warum wird das so gemacht?

  1. Sie können einen Expert Advisor nicht nur mit Handelsgeschäften belasten und ihm keine Informationen über Marktveränderungen geben (es ist eine Sache, ihn 5 Mal aufzurufen, und eine andere, ihn 15 Mal aufzurufen)
  2. es ist unmöglich, in der Live-Marktübersicht Null Last und Last_Volume anzugeben, da einige Händler explodieren würden


Ein weiterer Punkt ist die Tatsache, dass bei Batch-Updates, wenn zwei oder mehr Ticks gleichzeitig eintreffen, OnTick einmal aufgerufen wird. Dadurch wird der Fluss der eingehenden Kurse nicht verlangsamt und es entsteht keine riesige Warteschlange von Ticks, die EAs verlangsamen.

In Kürze werden wir einen Time & Sales Stream einbinden, der uns die Möglichkeit gibt, das Tape der Trades genau zu analysieren.

Das ist natürlich alles toll, aber für FORTS, wo es Stapel gibt, hätte ein Quote-Flag zur MqlTick-Struktur hinzugefügt werden sollen.

Die "Vervielfältigung" von Geschäften ist nicht schlimm - das Schlimmste ist, dass die echten Geschäfte verloren gehen.

P.S. Mein BAN hängt mit meiner IP-Adresse zusammen, bitte entfernen Sie sie, sonst muss ich jedes Mal meinen Browser neu installieren, um Ihnen zu antworten.

 

Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.

Dieser Ansatz führt zu folgendem Ergebnis:

So sollte es auch sein:

Papier Zeit(mcs) Preis Menge

317922.000000 RTS-12.14 [FORTS] 18:44:54 199000.000000 104140.000000 1.000000

317923.000000 RTS-12.14 [FORTS] 18:44:54 261000.000000 104130.000000 1.000000
317924.000000 RTS-12.14 [FORTS] 18:44:54 587000.000000 104140.000000 1.000000
317925.000000 RTS-12.14 [FORTS] 18:44:54 589000.000000 104140.000000 1.000000
317926.000000 RTS-12.14 [FORTS] 18:44:54 691000.000000 104140.000000 1.000000
317927.000000 RTS-12.14 [FORTS] 18:44:54 691000.000000 104140.000000 1.000000
317928.000000 RTS-12.14 [FORTS] 18:44:54 842000.000000 104130.000000 2.000000
317929.000000 RTS-12.14 [FORTS] 18:44:54 919000.000000 104150.000000 1.000000
317930.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104150.000000 1.000000
317931.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104150.000000 1.000000
317932.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 1.000000
317933.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 1.000000
317934.000000 RTS-12.14 [FORTS] 18:44:55 337000.000000 104160.000000 3.000000
317935.000000 RTS-12.14 [FORTS] 18:44:55 375000.000000 104140.000000 1.000000
317936.000000 RTS-12.14 [FORTS] 18:44:55 375000.000000 104130.000000 5.000000
317937.000000 RTS-12.14 [FORTS] 18:44:55 796000.000000 104130.000000 1.000000
317938.000000 RTS-12.14 [FORTS] 18:44:55 799000.000000 104130.000000 2.000000
317939.000000 RTS-12.14 [FORTS] 18:44:56 54000.000000 104160.000000 1.000000
317940.000000 RTS-12.14 [FORTS] 18:44:57 235000.000000 104160.000000 1.000000
317941.000000 RTS-12.14 [FORTS] 18:44:57 451000.000000 104140.000000 2.000000
317942.000000 RTS-12.14 [FORTS] 18:44:57 487000.000000 104140.000000 6.000000
317943.000000 RTS-12.14 [FORTS] 18:44:57 521000.000000 104160.000000 1.000000
317944.000000 RTS-12.14 [FORTS] 18:44:57 621000.000000 104160.000000 1.000000
317945.000000 RTS-12.14 [FORTS] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 RTS-12.14 [FORTS] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [FESTUNGEN] 18:44:58 883000.000000 104140.000000 2.000000

317948.000000 RTS-12.14 [FORTS] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [FORTS] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [FORTS] 18:44:58 996000.000000 104160.000000 1.000000
317953.000000 RTS-12.14 [FORTS] 18:44:59 56000.000000 104160.000000 1.000000
317954.000000 RTS-12.14 [FORTS] 18:44:59 560000.000000 104140.000000 1.000000
317955.000000 RTS-12.14 [FORTS] 18:44:59 604000.000000 104140.000000 1.000000
317956.000000 RTS-12.14 [FORTS] 18:44:59 647000.000000 104160.000000 1.000000


Wie in MT5:

NE 0 18:44:54.483 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:54 Bid = 104130 Ask = 104150 Last = 104140 Vol = 1
ES 0 18:44:54.639 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:54 Bid = 104130 Ask = 104150 Last = 104130 Vol = 2
OR 0 18:44:54.720 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:54 Bid = 104130 Ask = 104150 Last = 104150 Vol = 1
NQ 0 18:44:54.983 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:55 Bid = 104140 Ask = 104150 Last = 104150 Vol = 1
FP 0 18:44:55.139 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:55 Bid = 104140 Ask = 104160 Last = 104160 Vol = 3
JO 0 18:44:55.174 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:55 Bid = 104140 Ask = 104160 Last = 104130 Vol = 5
GN 0 18:44:55.206 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 5
RM 0 18:44:55.592 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 2
IL 0 18:44:55.891 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:56 Bid = 104130 Ask = 104160 Last = 104160 Vol = 1
HJ 0 18:44:55.921 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:56 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
RI 0 18:44:57.032 FORTSTicksAction (RTS-12.14,M1) Uhrzeit = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
PH 0 18:44:57.242 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
FG 0 18:44:57.297 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 6
PF 0 18:44:57.328 FORTSTicksAction (RTS-12.14,M1) Uhrzeit = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
JE 0 18:44:57.436 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
QD 0 18:44:57.838 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 3
DP 0 18:44:58.514 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 13
RR 0 18:44:58693 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:58 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
JP 0 18:44:58795 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CO 0 18:44:58.852 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
GN 0 18:44:59.358 FORTSTicksAction (RTS-12.14,M1) Uhrzeit = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
MM 0 18:44:59.406 FORTSTicksAction (RTS-12.14,M1) Uhrzeit = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
IL 0 18:44:59.453 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CK 0 18:50:31.437 FORTSTicksAction (RTS-12.14,M1) Time = 18:50:24 Bid = 0 Ask = 0 Last = 104160 Vol = 1
KH 0 18:50:33.357 FORTSTicksAction (RTS-12.14,M1) Zeit = 18:50:24 Bid = 104080 Ask = 104180 Last = 104160 Vol = 1


Diese sind alle kurz vor Abschluss der Sitzung (d.h. es gibt keine niedrigeren Kurse bis zum Ende des Clearings).

Nehmen wir als Ausgangspunkt die drei schwarz markierten Linien. Es gibt zwei Fragen:

1. wo sind die rot markierten Personen geblieben?

2. Woher stammt die blaue Markierung?


Eine weitere Frage (fakultativ): Welches Zeitintervall bedeutet "gleichzeitige Ankunft"?

 
Dima_S:

Dieser Ansatz führt zu folgendem Ergebnis:

317945.000000 RTS-12.14 [FORTS] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 RTS-12.14 [FORTS] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12.14 [FESTUNGEN] 18:44:58 883000.000000 104140.000000 2.000000

317948.000000 RTS-12.14 [FORTS] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 RTS-12.14 [FORTS] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 RTS-12.14 [FORTS] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 RTS-12.14 [FORTS] 18:44:58 996000.000000 104160.000000 1.000000



Es handelt sich dabei um die letzten Kurse kurz vor Sitzungsschluss (d. h. keine niedrigeren Kurse bis zum Ende des Clearings).

Nehmen wir die drei schwarz markierten Zeilen als Ausgangspunkt. Es gibt zwei Fragen:

1. wo sind die rot markierten Personen geblieben?

Sie kamen höchstwahrscheinlich in einem einzigen Netzwerkpaket und wurden als ein OnTick aufgerufen. Es gab 8 Ticks in einer Sekunde, drei davon waren Einzelanrufe, und die letzten 5 kamen höchstwahrscheinlich in einem Paket, wobei das letzte Zitat als Last angezeigt wurde.


2. Woher kommt die blaue Markierung?

Dies ist eine nachbörsliche Maßnahme. Wir bieten auch die Möglichkeit, Ereignisse nach der Markteinführung zu erfassen. In diesem Fall funktioniert die Rücknahme von Geboten in der Regel nur.


Eine weitere Frage (fakultativ): Welches Zeitintervall ist mit "gleichzeitiger Ankunft" gemeint?

Es handelt sich nicht um ein Intervall, sondern um ein physisches Netzwerkpaket. Ein Paket kommt bei 2-3-4 Ticks an, die alle in der Basis überlagert werden, aber der OnTick-Aufruf erfolgt einmal.

Es besteht auch die Möglichkeit, dass der Expert Advisor verlangsamt wird (beschäftigt ist) und ein neuer Kurs zur Datenbank hinzugefügt wird, aber OnTick nicht aufgerufen wird, da der Expert Advisor arbeitet. Gäbe es keinen solchen Mechanismus, würden wir die eingehenden Warteschlangen für den Expert Advisor leicht überlaufen lassen und anfangen, die alten Kurse an ihn zu senden.

 

Renat!

Vielen Dank für die ausführliche Erklärung, aber...

Meines Erachtens ist ein solcher Ansatz für den FORTS nicht akzeptabel.

Sie sollte lauten: Zitat - Lautstärke, und sonst nichts.

Es gab 11 Zitate, also sollte es 11 davon in OnTick geben.

Ist es nicht so?

 

Falsch.

Verwechseln Sie die Übermittlung korrekter und genauer Datenströme an das Terminal nicht mit dem Anrufen/Benachrichtigen von Experten.

Alle Daten werden genau und korrekt an das Terminal, seine Basis, geliefert. Vergleichen Sie einfach die Tabellen.

Der Start des Expert Advisors hingegen ist eine unabhängige und asynchrone Meldung. Eingehende Datenpakete können nicht auf langsame Experten warten, sondern müssen sofort auf die Marktumgebung angewendet werden und nur optional (wenn der Experte den vorherigen Aufruf beendet hat) den Experten ausführen.

Denken Sie über die Situation: ein Fluss von Zitaten 2 pro Sekunde und Arbeits-Expert Advisor, die Bremsen, macht Trades, aber es erfordert, dass die neuen wartenden Zitate in der Warteschlange nicht auf dem Markt Umwelt des Terminals auferlegt werden, bis der EA seine Arbeit beendet.

Können Sie sich vorstellen, wohin das führen würde? Das gesamte Terminal wird beginnen, alle Vorgänge zu verzögern, nur um der albernen Idee willen, einen Marktüberblick über den Stand der bearbeiteten Notierung zu behalten. Und wenn du an andere Instrumente denkst, erschießt du dich einfach.

Deshalb hat das Overlay für Marktaktualisierungen immer Priorität, es ist sofort und unabhängig von anderen Prozessen. Alle anderen müssen asynchron mit dem Markt mithalten.

 
Renat:

Falsch.

Verwechseln Sie die Übermittlung korrekter und genauer Datenströme an das Terminal nicht mit dem Anrufen/Benachrichtigen von Experten.

Alle Daten werden genau und korrekt an das Terminal, seine Basis, geliefert. Vergleichen Sie einfach die Tabellen.

Der Start des Expert Advisors hingegen ist eine unabhängige und asynchrone Meldung. Eingehende Datenpakete können nicht auf langsame Experten warten, sondern müssen sofort auf die Marktumgebung angewendet werden und nur optional (wenn der Experte den vorherigen Aufruf beendet hat) den Experten ausführen.

Denken Sie über die Situation: ein Fluss von Zitaten 2 pro Sekunde und Arbeits-Expert Advisor, die Bremsen, macht Trades, aber es erfordert, dass die neuen wartenden Zitate in der Warteschlange nicht auf dem Markt Umwelt des Terminals auferlegt werden, bis der EA seine Arbeit beendet.

Können Sie sich vorstellen, wohin das führen würde? Das gesamte Terminal wird beginnen, alle Vorgänge zu verzögern, nur um der albernen Idee willen, einen Marktüberblick über den Stand der bearbeiteten Notierung zu behalten. Und wenn du an andere Instrumente denkst, erschießt du dich einfach.

Deshalb hat das Overlay für Marktaktualisierungen immer Priorität, es ist sofort und unabhängig von anderen Prozessen. Alle anderen müssen asynchron mit dem Markt mithalten.

Sie sind nicht einverstanden.

Angenommen, ich verwende die Tasse nicht (Geld- und Briefkurs sind im Tick)

Wie kann ich (ein Experte) die Situation auf dem FORTS-Markt einschätzen, wenn ich nicht weiß, wie hoch der Kurs ist?

und Lautstärke?

Bei FORTS dürfen wir nämlich Geld- und Briefkurs nicht weitergeben (sie stehen im Ticker).

Die Änderungen im Code sind minimal - Geld- und Briefkurs werden nicht an den Markt weitergegeben.

 
Mikalas:

Da bin ich anderer Meinung.

Bitte lesen Sie meine Erklärung noch einmal.

Nehmen wir an, ich verwende kein Kursbuch (Geld- und Briefkurs sind im Tick)

Welche Sicht auf den FORTS-Markt ich (der Experte) mit einem Angebot haben werde , ist nicht klar

Mit dem aktuellen, asynchron aktualisierten Angebot und keinem anderen.

Wenn Sie angerufen wurden, war's das - Sie haben nur noch das Zitat vor sich, das Sie im Paket haben. Wenn der Stapel 2 Angebote enthält, sehen Sie nur das letzte Angebot. Denn niemand wird den ersten Kurs an den Expert Advisor weitergeben und warten, bis der Expert Advisor die Operation beendet hat. Das alte Zitat ist verschwunden, und wenn Sie es nicht rechtzeitig mitbekommen haben, bedeutet das, dass der Zug abgefahren ist. Wenn Sie dieses alte Zitat verwenden, werden Sie nicht in der Lage sein, etwas auszuführen. Und bei der aktuellen/letzten ist es auch zweifelhaft, dass sie ausgeführt wird, da sich der Markt zum Zeitpunkt der Übermittlung des Auftrags geändert haben könnte.

Kein "nicht übersetzen" von Angebot und Nachfrage wird helfen. Veraltete Zecken sind veraltete Zecken - niemand wird den Markt einfrieren und Sie nicht mit alten Zecken arbeiten lassen.

Wenn Sie wollen, können Sie das:

  1. das Terminal in der Nähe des Maklers auf einem Hochgeschwindigkeitsrechner unterzubringen und immer mehr zu erfassen
  2. Schleife der EA, ständig den Markt zu scannen und Markt beobachten, um alles öfter zu bekommen.
  3. Analysieren Sie das Diagramm, analysieren Sie den Markt

Gemeinsam mit Time & Sales werden wir darüber nachdenken, einen direkten Zugriff auf den aktuellen Tickpreis-Stream zu ermöglichen, so dass Sie auf aufeinanderfolgende Ticks zugreifen können. In der Marktübersicht erheben wir sie in Sitzungen. Dadurch ergeben sich mehr Möglichkeiten für Schwarzhändler.

 

Renat:

Gemeinsam mit Time & Sales werden wir überlegen, ob wir einen direkten Zugang zum aktuellen Tickpreis-Stream bereitstellen, so dass auf konsistente Ticks zugegriffen werden kann. In Market Watch sammeln wir sie in Sitzungen. Dies wird den Verkäufern mehr Möglichkeiten geben.

Das ist die einzige akzeptable Lösung. Hoffentlich gibt es Phypho-Warteschlangen für bestimmte Symbole. Damit wird ein weiteres, im Rahmen dieses Ereignismodells nicht lösbares Problem gelöst, nämlich die verlustfreie Notierung von anderen Symbolen als dem EA-Symbol.
 

Ich habe immer noch meine Zweifel.

Ich werde das jetzt in die Tat umsetzen:

//+------------------------------------------------------------------+
//|                                                    Kotirovki.mq5 |
//|                                                   Copyright 2014 |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, Mikalas"
#property link      "http://www.mql5.com"
#property version   "1.02"
//
MqlTick curr_tick;
double  start_last   = 0;
double  start_bid    = 0;
double  start_ask    = 0; 
ulong   start_volume = 0;  
//  
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit( const int reason )
{

}
//+------------------------------------------------------------------+
//| Expert On Tick event function                                    |
//+------------------------------------------------------------------+  
void OnTick()
{
  if ( SymbolInfoTick( _Symbol, curr_tick ) )
  {
    if ( start_last == curr_tick.last )
    {
      if ( start_volume == curr_tick.volume )
      {
        if ( ( start_ask == curr_tick.ask ) &&
             ( start_bid == curr_tick.bid )  )
        {
          Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                                 "; Ask = ", curr_tick.ask,
                                 "; Last = ", curr_tick.last,
                                 "; Vol = ", curr_tick.volume, "; Новая котировка(Всё одинаковое)" );
        }
        else
        {
          start_ask = curr_tick.ask;
          start_bid = curr_tick.bid;
          Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                                 "; Ask = ", curr_tick.ask,
                                 "; Last = ", curr_tick.last,
                                 "; Vol = ", curr_tick.volume, "; Изменение ask или bid? Или же новая котировка?" );
        }
      }
      else
      {
        start_last = curr_tick.last;
        start_volume = curr_tick.volume;
        start_ask = curr_tick.ask;
        start_bid = curr_tick.bid;
        Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                               "; Ask = ", curr_tick.ask,
                               "; Last = ", curr_tick.last,
                               "; Vol = ", curr_tick.volume, "Новая котировка (Изменён объём)!" );
      }
    }
    else
    {
      start_last = curr_tick.last;
      start_volume = curr_tick.volume;
      start_ask = curr_tick.ask;
      start_bid = curr_tick.bid;
      Print( curr_tick.time, "; Bid = ", curr_tick.bid,
                             "; Ask = ", curr_tick.ask,
                             "; Last = ", curr_tick.last,
                             "; Vol = ", curr_tick.volume, "Новая котировка! (Изменена котировка)" );
    }
  }
}

Und morgen werden wir sehen, was passiert...

Dateien:
Kotirovki.ex5  5 kb