Dienstag, 16. April 2024, 08:43 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

testeritis3

unregistriert

1

Donnerstag, 24. Juni 2010, 23:05

Realeinsatz manchmal nicht möglich, weil Datenimport bei Aktualisierung zu langsam

Hallo,

als langjähriger INV-User möchte ich für die Multicore-Nutzung von Investox plädieren. Vielleicht hat da Herr Knöpfel etwas in der Pipeline für die nächste Version VI . Ich hoffe es zumindest, das wäre für mich ein gewaltiges Kaufargument. Dieses unglaublich tolle Programm, dessen wahre Stärken ich erst nach mehreren Jahren wirklich erkannt habe :love: müsste nur bei einigen Prozessen einfach deutlich schneller laufen. Z.B. bei Optimierungen verschachtelter Systeme mit zahlreichen Subsystemen.

Oder mit zahlreichen verschiedenen Komprimierungen, oder bei Master- Salve -Konstruktionen mit Langzeit -Historien.
In solchen Fällen importiert und importiert und importiert Investox die Titeldaten derart langsam, dass an einen Realeinsatz
solcher Systeme oft nicht zu denken ist, obwohl man im Backtest sehr gute Ergebnisse hat und man dieses komplexe System natürlich einsetzen will.


Selbst ein i7 Prozessor bringt im Grunde keine Lösung, der Datenimport bei komplexen Master-Slave-Konstruktionen mit mehreren immanenten Komprimierungen geht oft derart zäh, dass Investox einfach nicht rechtzeitig mit dem Datenimport bei der Aktualisierung fertig wird, um das Signal zu traden.

Jetzt weiß ich natürlich nicht , ob außer mir noch viele INV-User dieses Problem haben.

Würde mich daher über eine Diskussion freuen.

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Freitag, 25. Juni 2010, 08:32

Hallo,

zum Thema Import/Komprimierung langer Historien: eine Parallelisierung bringt hier nicht so viel, da ein guter Teil der Zeit durch das reine Einlesen der zig Millionen Ticks vom Datenträger verbraucht wird. Bei einigen Komprimierungen wie z.B. Renko/P&F ohne GAP ist eine Parallelisierung gar nicht möglich.

>>In solchen Fällen importiert und importiert und importiert Investox
>>die Titeldaten derart langsam, dass an einen Realeinsatz
>>solcher Systeme oft nicht zu denken ist

Dies sollte den Realeinsatz eigentlich nicht behindern, da die langen Historien nur beim ersten Einlesen komprimiert werden und dann im Titel-Zwischenspeicher liegen. Oder ist das bei Ihnen anders (Titel-Zwischenspeicher-Einstellungen)?

Viele Grüße
Andreas Knöpfel

testeritis3

unregistriert

3

Sonntag, 27. Juni 2010, 07:08

Hallo,



vielen Dank für die Hinweise. Ich beschreibe gern mal mein Vorgehen und bitte um Korrektur, falls sich dabei Denkfehler meinerseits eingeschlichen haben.

Die Titel - Zwischenspeicher-Leerung habe ich bisher immer abends um 23 Uhr, also nach

den letzten eingehenden EOD- und Realtimedaten meiner Titel vorgenommen, damit am nächsten Tag die aktuellsten Daten

verwendet werden. So wird ja auch in der Investox-Dokumentation die Leerung begründet.



Damit sind dann aber auch die Langzeit-Historien nicht mehr im Zwischespeicher, wenn ich es richtig sehe.

Als Folge liest Investox am nächsten Morgen bei den ersten eingehenden Ticks alle Langzeit-Historien komplett neu ein, um das erste Handelssignal zu generieren. Danach liegen dann wieder alle Historien im Zwischenspeicher und die Aktualisierung für Folgesignale geht sehr schnell und problemlos.



Mein Eingangsproblem bezog sich also nur auf das erste Handelssignal am Tag, z. B. bei einem HS mit vier Titeln und zwanzig verschiedenen Komprimierungen, das Vormittags nur ein einziges Handelssignal um 9 Uhr generiert.

Man hat also auf 15-minuten Basis und open delay 1 bis 9:15 Zeit, um den Trade einzugehen.



Aber das Einlesen der Gesamthistorien in diesem -zugegeben- speziellen Fall dauert - je nach PC-Leistung- bis zu 40 Minuten. Das Signal ist also so nicht handelbar.

Als möglicher Ausweg käme dann ja nur der Verzicht auf das Leeren des Zwischspeichers in Frage, oder sehe ich das nicht richtig?



Freue mich auf eine nochmalige Rückmeldung.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Sonntag, 27. Juni 2010, 11:02

Leg Dir doch ein Leistungsschema für den Handel an, dass nur einen begrenzten Zeithorizont der Historien importiert.
Der Muss natürlich so lange, sein dass alle Funktionen genügen Historien vorfinden um saubere Ergebnisse zu liefern.
Aber wahrscheinlich wird es nur ein Bruchteil der kompletten Historie sein müssen, schon geht´s ruckzuck.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

5

Sonntag, 27. Juni 2010, 15:01

40 Minuten zum Titeleinlesen, das ist heftig! Das hab ich nicht mal mit meinen grössten Monster-Tickdaten-Titeln, nichtmal auf dem Notebook bei Leistungsschema Standard. Im professionellen Umfeld würde man sagen, diese Umsetzung ist ein Fall für die Code-Revsion durch die Chefprogrammierung! Wahrscheinlich würde der betreffende Programmierer den nächsten Tag in der Firma nicht erleben. Grundsätzlich kann man sagen, dass man durch hinreichend suboptimale Umsetzung jede Maschine in die Knie zwingen kann, selbst Supercomputer mit 96 und mehr Cores. Du kannst mir glauben, dazu reicht sogar eine einzelne Zeile Code. Und es gibt viele Möglichkeiten, das zu schaffen :rolleyes:

Zusätzlich zur Massnahme von Lenzelott:

Schalte die Aktualisierung rechtzeitig so vor dem Handelbeginn ein, dass zum Zeitpunkt x schon alles im Zwischenspeicher parat steht und das System auch handlungsfähig ist. (Durch geeignete Massnahmen, abhängig vom Handelsansatz, ist dazu natürlich sicherzustellen, dass das erste Handelssignal erst mit dem gewünschten Handelbeginn rausgeht).
Gruss
Bernd

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

6

Montag, 28. Juni 2010, 08:55

Hallo,

Zitat

Die Titel - Zwischenspeicher-Leerung habe ich bisher immer abends um 23 Uhr, also nach
den letzten eingehenden EOD- und Realtimedaten meiner Titel vorgenommen, ....
Als Folge liest Investox am nächsten Morgen bei den ersten eingehenden Ticks alle Langzeit-Historien komplett neu ein


Das sollte nicht der Fall sein, wenn Sie in den Titel-Zwischenspeicher-Einstellungen die Option "RTT-Titel nur bei Bedarf neu einlesen" aktivieren. Ist diese Option bei Ihnen aktiviert?

Viele Grüße
Andreas Knöpfel

testeritis3

unregistriert

7

Dienstag, 29. Juni 2010, 14:24

Hallo zusammen,



herzlichen Dank für die Antworten.

Das von mir oben skizzierte Problem lässt sich mit den vorgeschlagenen Maßnahmen etwas verringern, aber noch nicht

zufriedenstellend.

Das erwähnte HS greift, um das Tagessignal zu generieren, auf mehrere Master-HS mit ihrerseits unterschiedlichen Komprimierungen und sehr langen Historien zurück und verwendet dann selbst zwanzig eigene Komprimierungen zur Signalgenerierung.

Das ganze dann auch noch, wie oben erwähnt, mit vier Titeln gleichzeitig. Da auch noch mehrere Bar since und Value when -Indikatoren mit langen Perioden -Rückgriffen enthalten sind, funktioniert nur das längste Leistungsschema, bei allen anderen bleiben immer mehrere Master-Hs ungültig.

Bernds Vorschlag, das Einlesen vor den Beginn der ersten morgendlichen Daten zu legen, ist sehr schlüssig, weil man dann beim Aktualisieren der ersten Tagesdaten von Lang-auf Kurzfrist -Leistungsschema umschalten könnte.

Aber da erhalte ich -wie schon gesagt- ungültige HS-Meldungen der Master HS- die auf lange Historien zurückgreifen.



Die Option" Aktualisierung nur bei Bedarf" ist aktiviert.



Hätte da noch eine Frage an Herrn Knöpfel: Da ich alle Titel in der Kombititel-Einstellung auf 5 Minuten vorkomprimiert habe, wäre doch das tickweise Einlesen in den Zwischenspeicher gar nicht erforderlich, dann ginge es doch erheblich schneller mt der Aktualisierung in meinem Fall.

Kann man da etwas tun, vielleicht habe ich da eine vorhandene Möglichkeit übersehen?



Grüße, testeritis3

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

8

Dienstag, 29. Juni 2010, 14:37

Das ist mir nicht klar geworden, ...
Bernds Vorschlag, das Einlesen vor den Beginn der ersten morgendlichen Daten zu legen, ist sehr schlüssig, weil man dann beim Aktualisieren der ersten Tagesdaten von Lang-auf Kurzfrist -Leistungsschema umschalten könnte.

... wenn die Lanfrist Historien erstmal im TZSP (Titel ZwiSpeicher) sind, warum willst Du dann das Leistungsschema im laufenden Betrieb noch umschalten, wobei der TZSP ja wieder invalidiert wird und unter dann schon Voll-Last während der hereinströmenden neuen Tickdaten in Deinem Fall ein unüberschaubares Konglomerat von Tickdaten-Titeln mit aufwändigen Indikatoren wie ValueWhen() usw. komplett neu durchgerechnet werden müssen!

Kannst Du es dann nicht lassen wie es ist, auf Langfrist-Leistungsschema? Den Maschinen-Aufwand hast Du zu diesem Zeitpunkt ja eh schon erbracht.
Gruss
Bernd

testeritis3

unregistriert

9

Dienstag, 29. Juni 2010, 14:50

Stimmt natürlich. Nur mit Langfrist-Schema dauert es dann halt so lange, wie eingangs beschrieben. Da trete ich nach wie vor auf der Stelle hinsichtlich einer zündenden Idee.



Grüße, testeritis3

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

10

Dienstag, 29. Juni 2010, 14:59

> zündende Idee

ich dachte, das wär sie gewesen
>> das Einlesen vor den Beginn der ersten morgendlichen Daten zu legen

Zusammen mit dieser Massnahme und den anderen Anregungen von Herrn Knöpfel müsstest Du doch trotz der gewählten Umsetzung mit dem Ertönen der Eröffnungsglocke in den Trade kommen, oder nicht?
Gruss
Bernd

testeritis3

unregistriert

11

Dienstag, 29. Juni 2010, 15:21

Leider nicht. Heute Morgen bekam ich das 9 :00 (bzw. 9:15)- Signal um 9:40 , solange war die "Ampel" aufgrund des Zwischenspeicher-Imports gelb. Habe dann "diskretionär " ,wie schon oft, nachgehandelt, so gut es halt geht. ( gleichwertigen Einstieg finden usw.......)

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

12

Dienstag, 29. Juni 2010, 16:22

Hallo,

>>solange war die "Ampel" aufgrund des Zwischenspeicher-Imports gelb

das kann ich nicht nachvollziehen, wenn die Option "nur bei Bedarf neu einlesen" aktiviert ist.
Oder leeren Sie den Zwischenspeicher manuell mit "Zwischenspeicher jetzt leeren"? Das würde dann auch die RTT-Titel löschen. Ich empfehle eine automatische, zeitbedingte Leerung zu verwenden, damit die o.g. Option greifen kann.

Viele Grüße
Andreas Knöpfel

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

13

Dienstag, 29. Juni 2010, 16:42

Mmmh, übelst. Was hast Du Dir denn da zusammengebacktestet? Das muss ja auch in der Entwicklung schon die Geduld mehr als überstrapaziert haben!

Das meinte ich weiter vorne mit Code-Revision: man müsste sehen, wie man aus dem Coding die Luft rauslässt. Einfache Ansätze während:
* welche Einstellung hast Du unter Aktualisierung / Daten für die Berechnung des aktuellen Signals?
* hast Du über die Verwendung von Berechnungstiteln nachgedacht, könnten die das Problem entschärfen, wenn diese Titel vorher bereits berechnet werden könnten?
* hast Du (eigene?) VBScript Indikatoren in der Mitte, die alles ausbremsen?
* welche Statements hast Du sonst in Verdacht, die das System so runterbringen? Vielleicht kannst Du die zur Diskussion stellen und es könnten Alternativen gefunden werden!

Eine ungünstige Indikatoren-Wahl (mit VBScript auch "sehr gut machbar") können die Berechnung so verlangsamen, ungeachtet aller Investox Performance-Optionen, dass die Ampel dieses Dauergelb darstellt ...

Als letztes bleibt natürlich der Handelsansatz an sich übrig; vielleicht stellt sich heraus, dass man den mit den vorhandenen Mitteln trotz dieser vielen Performance-Optionen die Herr Knöpfel vorgesehen hat, trotz dem Speed, den normalerweise der Titel Zwischenspeicher bringt, mit der momentanen Technik in unserer Preisklasse einfach nicht umsetzen kann! 20 Titel, diverse M/S Zugriffe und *dazu* noch jedes HS mit weiteren 20 weiteren Komp()s - um Punkt 9 Uhr ein einziges Signal zu erzeugen!

Wenn man das ausmultipliziert, ergibt sich wahrscheinlich eine unrealitische Rechenkapazität, die benötigt würde für die Echtzeit-Umsetzung! Natürlich wäre an der Stelle auch eine hypothetische Multi-Core Unterstützung durch Investox wahrscheinlich ausgenockt, weil wie ich es verstanden habe, alle Signale aufeinander aufbauen. D.h. Du hast eine implizite Serialisierung durch die begrenzten I/O Kapazitäten und eine explizite Serialisierung durch den Entwurf der Signalgenerierung eingebaut. Da hilft Multi-Core Unterstützung wenig bis gar nicht, so sie vorhanden wäre!
Gruss
Bernd

testeritis3

unregistriert

14

Dienstag, 29. Juni 2010, 17:53

@Herrn Knöpfel



Oben hätte ich genauer schreiben müssen `die Option nur bei Bedarf aktualisieren` ist jetzt ( aufgrund Ihres Hinweises)
aktiviert. Vorher war sie deaktiviert.
Durch die Aktivierung dieser Option wird zwar eine Kompletteinlesung aller Koprimierungen aller HS vermieden und man kann dann ja gezielt jedes einzelne HS aktualisieren / einlesen lassen. Das bringt aber für mein Beispiel keinen Zeitvorteil,
denn die Systemkonstruktion verlangt ja, dass jeden Tag sämtliche HS innerhalb von weniger als 15 Minuten komplett aktualisiert sind.

Ich experimentiere seit kurzem mit anderen Delays, um Zeit für die Aktualisierung zu gewinnen, die Backtests sind dann auch noch passabel, aber weniger beeindruckend. Und da das Bessere des guten Feind ist, würde ich es gern mit open delay 1 hinbekommen.



@ Bernd

Ja das Ding ist schon ein Monsterkonstrukt, ich darf gar nicht mehr an die ungezählten Nächte denken. Aber es hat schlussendlich sehr viel Spaß an der Freud gebracht, schon deshalb, weil ich endlich mal so ein komplexes Konstrukt
hinbekommen habe und nicht in den mehr oder weniger eindimensionalen HS der Vorjahre hängenbleibe.

Investox sei es gedankt, dass auch ein programmiertechnisch nicht Vorgebildeter wie ich mit der nötigen Geduld
(aber auch Frustrationstoleranz :baby: ) mal grundsätzlich was Komplexes zum Laufen gebracht hat. Entrümpelt habe ich es m Laufe der Zeit aber auch schon, d. h. einige "Sklaven" sind schon entfernt worden.



Grüße testeritis3

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

15

Dienstag, 29. Juni 2010, 18:27

Hallo testeritis3

Bei mir war es genau umgekehrt: meine ersten Kreationen waren grössere Konstrukte. Als Programmierer möchte man alle Dinge kontrollieren ... Allerdings, so ein Monsterkonstrukt wie Du es beschreibst habe ich noch nicht versucht.

Wie auch immer, schon meine Konstrukte waren anfangs zu schwerfällig. Wenn der einzelne Backtest schon mehr als ein paar Minuten dauert - habe ich nach dieser Zeit vergessen, was ich eigentlich tun wollte. So verliert man die Lust und auf Dauer ist sowas einfach nicht wartbar. Ernüchternd kam noch dazu, dass Kollegen mit etwas mehr Erfahrung mich ob solcher Konstrukte schlichtweg ausgelacht haben! Und sie hatten recht.

Heute versuche ich, die Handelsidee in nicht mehr als 1 Bildschirmseite abzubilden, dazu kommen halt noch ca. zwei Seiten eigenes Money-Management; die erschweren die spätere Wartung aber nicht, weil in jedem HS das praktisch gleich aussieht. M/S Sachen vermeide ich wie der Teufel das Weihwasser (mit einer Ausnahme, wenn ein HS viele Titel handelt aber nach der Signalgenerierung das begrenzt zur Verfügung stehende Kapital aufgeteilt werden muss, damit ich in der Summe nicht overtrade - da kann man entweder die Anzahl Kontrakte für jeden Titel erheblich runternehmen oder in einer M/S Konstruktion versuchen, das Kapital bestmöglich auf die Titel mit Signal aufzuteilen).

Ich weiss von Kollegen, die mehr oder weniger Einzeiler handeln - und die funktionieren auch.

Am Ende kommt es eben drauf an, dass genau zum richtigen Zeitpunkt die richtige Aktion erfolgt - und natürlich die Handelsidee einen positiven Erwartungswert hat. Alles andere ist Schnickschnak.

Komm also lieber wieder zu den eindimensionalen Sachen zurück, das passt besser für Handelssysteme! Oder hat das komplexe System (ohne überoptimiert zu sein, sei ehrlich!) eine so viel bessere Real-Performance (in Deiner Basis-Währung gerechnet) ?!?


Edit: Typo.
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (29. Juni 2010, 18:57)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

16

Dienstag, 29. Juni 2010, 19:45

Hallo,

>>Das bringt aber für mein Beispiel keinen Zeitvorteil,

das bedeutet dann aber, dass die lange Aktualisierungszeit nichts mit der Datenkomprimierung zu tun hat (das war ja der Ausgangspunkt).

Viele Grüße
Andreas Knöpfel

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

17

Dienstag, 29. Juni 2010, 19:49

Hallo,

komplex ist nicht gleich komplex!Man kann sehr komplexe und umfangreiche Systeme erstellen,aber 10 von 15 Inputs heben sich in der Wirkung auf!Wenn sich Inputs den Wirkungsgrad untereinander reduzieren bzw. keinen kompakten Fixpunkt zielgerichtet ermitteln wird man entweder ins CurveFitting kommen (zu hohe Linearität und Informationsqualität) der einzelnen "Lieferanten"- oder aber das System liefert zweideutige Signale indem es sich ständig selbst revidiert! Angenommen man setzt Inputs aus unterschiedlichen Lieferquellen ein, die dem System wichtig Informationen zutragen, es aber nicht in einen Zwiespalt locken wird es in der Gesamtheit funktionieren. Es kommt nicht immer auf die Länge der Historie an aus dem das System seine Informationen zieht!Alles kontrollieren zu wollen ist schön und gut und klappt auch sicher bei überwiegend konstanten Vorgaben,aber bei sehr ausgeprägten Variablen kann man m.A. keine maßgeschneiderte endgültige Kontrolle über alles erlangen!Das äußert sich schon dahingehend,das man MM/RM mathematisch wesentlich besser kontrollieren kann, wie beispielsweise ein Einstiegssignal!Das Ganze könnte man natürlich bis ins kleinste Detail weiter verfolgen ganz zu schweigen davon,wie "klasse" sich sehr komplexe Systeme pflegen lassen!Es ändert natürlich nichts am Eingangs beschrieben Problem,das möchte ich noch anfügen!

Zitat

Heute versuche ich, die Handelsidee in nicht mehr als 1 Bildschirmseite abzubilden, dazu kommen halt noch ca. zwei Seiten eigenes Money-Management;
Ich hoffe Du arbeitest nicht mit einem 26'' Display,denn das wäre es schon wieder in die Kategorie(Kurz)Roman einzuordnen..und Romane können schon sehr "intensiv und komplex" sein,auch wenn der Autor gaaaaanz anderer Meinung ist! :D
Happy Trading

testeritis3

unregistriert

18

Dienstag, 29. Juni 2010, 20:34


>>Das bringt aber für mein Beispiel keinen Zeitvorteil,

das bedeutet dann aber, dass die lange Aktualisierungszeit nichts mit der Datenkomprimierung zu tun hat (das war ja der Ausgangspunkt).


Tja, habe auch schon überlegt, wo da noch der "Zeitfresser" stecken könnte, möglicherweise darin, dass Intraday-Systeme auf EOD-Master zurückgreifen und umgekehrt. Kann ich aber auch wieder nicht recht glauben, weil Investox

alle Setups ohne Fehlermeldungen akzeptiert und nirgendwo eine Ungereimtheit zu finden ist.

Aktuell habe ich nochmal besonders die Begrenzungen des Datenimports in den Leistungsschemata auf ein Minimum reduziert, d. h., auf das kürzeste Maß, bis gerade noch alle HS ohne Value-when oder Bar- since-Fehlermeldungen

korrekt aktualisiert werden. Das scheint nochmal einen geringen Zeitvorteil bei der Aktualisierung zu bringen, aber auch nicht entscheidend, also immer noch mehr als 30 Minuten für das ganze Konstrukt.





Beste Grüße testeritis3

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

19

Dienstag, 29. Juni 2010, 21:50

Hallo Udo

Ich hoffe Du arbeitest nicht mit einem 26'' Display

Neenee, ich baue schon für's Alter vor. Wenn ich wegen Alters-Schwachsichtigkeit eines Tages das 26'' Display brauche um die EINE ZEILE lesen zu können, hat sich Form & Funktion schliesslich getroffen :D Wenn die eine Zeile dann so gut ist, dass die Kohle richtigrum fliesst, wird endlich alles gut ...
Gruss
Bernd