Hallo zusammen
Erstmal vielen Dank für die vielen Antworten; es gibt mir Anregungen für weitere Tests, denn ich stand zuletzte schon etwas auf dem Schlauch!
Das ist nämlich der Weg, den ich schon gegangen bin für dieses Tickdaten-System, nachdem die Entwicklung im reinen Backtest fertig war:
* Erste Testläufe zeigten Fehltrades aufgrund der unvollendeten Perioden; die glaube ich, nun komplett in den Griff bekommen zu haben
* Schlechte Performance Zeitdifferenzen Datum/Uhrzeit und Tickzeit im Bereich von bis zu 60 Sekunden: hier habe, nicht zuletzt mit den Tipps im Forum, aber auch mit dem Projekt-Ratgeber von Investox, sehr optimiert. Das Ergebnis ist ein ein performantes Setup, jedenfalls ist der CPU Verbrauch heftig reduziert worden, was eigentlich für diese Aussage spricht. Zusätzlich habe ich die Uhren der PCs eng synchroniert, weil einige der Zeitdifferenzen gar keine waren ...
* Es blieben letztlich diese beschriebenen Timelags übrig.
Also habe ich die Hardware aufgerüstet:
* GB-LAN installiert (vorher 100MB LAN); weil die Timelags immer noch da waren das GB-LAN vermessen wie beschrieben - ohne Verbesserung, das GB-LAN performt recht gut und die Antwortzeiten liegen im erwarteten Rahmen
* Raptor im RTT/Tenfore Rechner eingebaut, auch keine Verbesserung.
Tja, und nun was nützt mir ein schneller Datenfeed, wenn ich ihn nicht ausnützen kann? Das Ziel muss sein, in 95% der Fälle eine Zeitdifferenz Datum/Uhrzeit zu Tickzeit von 0 zu sehen! Aktzeptabel fände ich 500ms, aber um das zu beurteilen, müsste Herr Knöpfel die Sekunden-Anzeige im Signalprotokoll erweitern auf 3 Nachkommastellen!
Wo sollen denn 12-20 Sekunden herkommen wenn Investox nichts zu tun hat, demnach auch keine Verzögerungen im Programmablauf entstehen können?
Das ist genau, was ich nicht verstehe.
Ist die Signalgenerierung ok/korrekt?
Ich denke schon. Sie stimmt jedenfalls mit dem Backtest überein und die Signale werden zu IB geroutet wie erwatet. Oder was meinst Du mit der Frage?
Evtl. mal mit einem RTT-Titel testen, vielleicht macht der Kombititel Probleme.
Wie geschrieben habe ich auch auf alternative Titel umgschaltet: dort habe ich jeweils einfache RTT Titel auf der lokalen Platte angehängt. Also kein Kombititel. Hier sind die Timelags schon kleiner, aber auch nicht immer ok. Ich kann aufgrund der Kombination Haupttitel = Kombititel RTT/Tenfore Titel + Historien auf der einen Seite und Alternativer Titel = RTT/IB Titel lokal momentan nicht sagen, ob es bessert, weil im zeiten Fall kein Kombititel verwendet wurde oder weil der zweite Titel lokal auf dem Rechner liegt!
Andererseits muss RTT/Tenfore fast zwingend auf einen anderen Rechner ausgelagert sein: man bezahlt bei Tenfore den Feed, und kann ihn dann EINMAL beziehen. Also müssen sich alle Handels-PCs via Netzwerk an den Datensammel-Rechner wenden! Und in dieser Konstellation brauche ich eine Lösung ohne Timelag!
das könnte ggfs. eine Bremse sein, vielleicht ohne Komp() testen, wird's dann deutlich besser?
probiere ich noch, wie auch die Trade-Linien, die Udo genannt hat.
Wenn ein pollendes Prinzip via Platte verwendet wurde, muss man sich nicht wundern, wenn man solche Zeiten sieht.
Das befürchte ich inzwischen auch! Und scheinbar verschlimmert sich diese Problematik, wenn RTT separat auf einem anderen Netzwerkrechner läuft.
Ich habe mal mit Filemon von Sysinternals getraced, wie Herr Knöpfel auf die RTT Dateien zugreift. Und zwar habe ich im laufenden Betrieb der HSe Zugriffe auf den Titelcache gefunden und direkte Zugriffe. Das sieht so aus:
1 17:15:26 Investox.exe:3272 OPEN C:\Daten\Investox\Titelcache\ SUCCESS Options: Open Directory Access: All
2 17:15:26 Investox.exe:3272 DIRECTORY C:\Daten\Investox\Titelcache\ SUCCESS FileBothDirectoryInformation: BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT
3 17:15:26 Investox.exe:3272 OPEN C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Options: OpenIf Access: All
4 17:15:26 Investox.exe:3272 QUERY INFORMATION C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Length: 309497
5 17:15:26 Investox.exe:3272 READ C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Offset: 0 Length: 2
6 17:15:26 Investox.exe:3272 READ C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Offset: 2 Length: 2
7 17:15:26 Investox.exe:3272 READ C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Offset: 4 Length: 22
8 17:15:26 Investox.exe:3272 READ C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#5#0#K].KBDAT SUCCESS Offset: 26 Length: 2
......
1648 17:15:27 Investox.exe:3272 READ C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#230#0#K].KBDAT SUCCESS Offset: 6377 Length: 944
1649 17:15:27 Investox.exe:3272 CLOSE C:\Daten\Investox\Titelcache\BRNQ@GLOBEX_FUT_200803_USD[@#KZ#0#230#0#K].KBDAT SUCCESS
1650 17:15:27 Investox.exe:3272 CLOSE C:\Daten\Investox\Titelcache\ SUCCESS
1651 17:15:27 Investox.exe:3272 OPEN Q:\Daten_RTT\Investox\RealtimeData\CME Futures\ SUCCESS Options: Open Directory Access: All
1652 17:15:27 Investox.exe:3272 DIRECTORY Q:\Daten_RTT\Investox\RealtimeData\CME Futures\ SUCCESS FileBothDirectoryInformation: @ES0Y@US composite_Futures-ASK.RTT
1653 17:15:27 Investox.exe:3272 CLOSE Q:\Daten_RTT\Investox\RealtimeData\CME Futures\ SUCCESS
1654 17:15:27 Investox.exe:3272 OPEN Q:\Daten_RTT\Investox\RealtimeData\CME Futures\ SUCCESS Options: Open Directory Access: All
1655 17:15:27 Investox.exe:3272 DIRECTORY Q:\Daten_RTT\Investox\RealtimeData\CME Futures\ SUCCESS FileBothDirectoryInformation: @ES0Y@US composite_Futures-ASK.RTT
1656 17:15:27 Investox.exe:3272 OPEN Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Options: OpenIf Access: All
1657 17:15:27 Investox.exe:3272 QUERY INFORMATION Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS FileFsDeviceInformation
1658 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 0 Length: 36
1659 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 0 Length: 4096
1660 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 36 Length: 2
1661 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 38 Length: 50
1662 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 88 Length: 18
1663 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 106 Length: 250
1664 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 356 Length: 2
1665 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 358 Length: 130
....
1701 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 1314398616 Length: 16
1702 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 1314238616 Length: 16
1703 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 1314078616 Length: 16
1704 17:15:27 Investox.exe:3272 READ Q:\Daten_RTT\Investox\RealtimeData\CME Futures\@ES0Y@US composite_Futures-ASK.RTT SUCCESS Offset: 1313918616 Length: 16
Das heisst, hier wird intensiv ins Filesystem gegriffen mit kleinsten Datenmengen. Und via Netzwerk wird das nicht schneller, da müssen diese tausende von 16 Byte Paketen über das SMB Protokoll verschickt werden. Das scheint mir nun wirklich nicht die beste aller denkbaren Lösungen für die Netzwerkanbindung RTT <-> Investox zu sein! RTT müsste stattdessen die Daten selbst puffern und via einem eigenen Netzwerk-Port so zur Verfügung stellen, dass die Investoxe direkt andocken können ohne Umweg über das Filesystem. Und noch was: der o.g. Trace wurde bei lokal laufendem RTT gezogen! Auch hier verständig sich Investox mit RTT also mit nichten über das Memory (wie es im Forum schon mehrfach behauptet wurde), sondern über das Filesystem !?!
(Nachricht geteilt, weil man max. 10.000 Zeichen pro Beitrag schreiben darf)