Donnerstag, 18. April 2024, 09:24 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

hendrix1

unregistriert

1

Samstag, 4. August 2012, 14:17

Parallele Instanzen zur Kommunikation synchronisieren mit VBS + KontoGlobalData + Komp() ??

Hallo zusammen,
zur besseren CPU Auslastung nutze ich mehrere Instanzen parallel, die Ihre Ergebnisse zum Handel in der Hauptinstanz zur Entscheidung "vortragen".
Die Kommunikation läuft über die VBS-Funktion KontoGlobalData().

Bis jetzt haben alle Instanzen (Slaves+Master) mit der gleichen Titeleinstellung=15min Komprimierung gearbeitet - ohne Probleme.
Allerdings will ich jetzt in den Slavesystemen verschiedene Komprimierungen - und im Master die Komprimierung= 1min nutzen.

Dazu nutze ich folgenden Code...

...im Slave, der ein Handelssignal weitergibt:


...im Master, der das Signal empfängt und prüft :


Das funktioniert einwandfrei und sehr schnell hinsichtlich der Kommunikation untereinander, wenn beide Instanzen die gleiche Komprimierung nutzen.

Wenn ich jetzt den (empfangenden) Master auf eine 1min-Komprimierung absenke, überschüttet mich Investox mit Fehlermeldungen - Synchronisation auf Basistitel nicht möglich...
Die Systeme laufen zwar weiter, die Fehlermeldungen bringen das System aber massiv ins Stocken und führen zu sehr sehr langen Rechenzeiten und seltsamen Darstellungen (bei gleichen Tick-LeistungsSchema).

Wer kann mir einen Hinweis geben, wie ich korrekt in Investox die Zeit-Synchonisation hinbekomme, wenn Daten in VBS weitergereicht werden.
Der Investoxcode Komp() will sich zusammen mit o.g. VBS-Codes nicht überzeugen lassen zu arbeiten ?


Danke und bester Gruß

Hendrix

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

2

Sonntag, 5. August 2012, 14:18

Hallo Hendrix,

Zitat

Wenn ich jetzt den (empfangenden) Master auf eine 1min-Komprimierung absenke, überschüttet mich Investox mit Fehlermeldungen - Synchronisation auf Basistitel nicht möglich...


Erscheinen die Fehlermeldungen auch, wenn die Komprimierung im empfangenden Master nicht kleiner ist, als in den sendenden Slaves?

Ich habe Deine Konstellation mal kurz mit einer meiner Berechnungen angetestet.

Alles funktionierte schnell und wie erwartet, wenn ich in Instanz 1 (=sendende Instanz) eine kleinere oder die gleiche Komprimierung verwendet habe, wie in Instanz 2 ( empfangende Instanz).
Wenn ich das aber umdrehe, ist es beim Charting der Berechnung in der empfangenden Instanz 2 so, dass das Ergebnis immer erst nach Ablauf der Komprimierung aus Instanz 1 rückwirkend für die letzten X-Perioden angezeigt wird. Vor Ablauf der Komprimierung aus Instanz 1 erscheint in Instanz 2 kein Ergebnis, was ja zu diversen Fehlermeldungen führen kann.

Ich sehe es deshalb so, dass man auch bei Verwendung von InvestoxSynchKomp nicht aus größeren Zeitebenen heraus gespeicherte Daten auf kleinere Zeitebenen beliebig wieder herunterbrechen kann , was aus meiner Sicht auch so sinnvoll wäre.

Wenn das als Grund für Deine Fehlermeldungen in Frage kommt, müsste die Lösung sein,im empfangenden Master keine kleinere Basiskomprimierung zu verwenden, als in den sendenden Slaves.





Zitat

Der Investoxcode Komp() will sich zusammen mit o.g. VBS-Codes nicht überzeugen lassen zu arbeiten ?


In Deinem Slave-System sollte "Komp()" aber funktionieren, wenn damit die GlobaleVariable "Masterhandelsorder" von einer kleineren Basiskomprimierung aus mit Komp() in eine größere Komprimierung hochkomprimiert wird, noch bevor sie im Kontoserver-Datenspeicher abgespeichert wird?
Viele Grüße von Anke

http://www.ascunia.de

hendrix1

unregistriert

3

Freitag, 10. August 2012, 11:34

Hallo Anke,
danke für deine Antwort und sorry für die Verzögerung...

Die Verhältnisse der verwendeten Komprimierungen in Slave->Master sind scheinbar mein Problem.

Wenn ich den Master mit kleineren Komprimierungen als die sendenen Slaves nutze, dann kommen die lähmenden Fehlermeldungen.
Sind beide Komprimierungen gleich, kommen die Fehler nicht.

Da ich mit dem Master in 1min Komp arbeite um möglichst schnell SL und TP Stops nutzen zu können, habe ich jetzt versucht, auch die Slaves auf 1min zu betreiben und deren Berechnung auf Komp()-Basis 15min durchzuführen.
Das scheitert allerdings an einer Fehlermeldung die ich nicht in den Griff bekomme:
Die Slaves erzeugen Ihre HandelsSignale aus der Kursmusteranalyse - und dieser InvestoxCode scheint sich mit dem Kom()-Code zu behaken :

Folgender Code der KursmusterPrüfung auf der originären BasisKomprimierung 15min funktioniert fehlerfrei :


Jetzt ändere ich die BasisKomprimierung auf 1min und nutze Komp() um weiter auf 15min zum prüfen:


...dabei gibt Investox diesen Fehlercode aus:


Die Gegenprobe mit MOM() ob ich den Komp()-Code korrekt verwende geht auch ohne! Fehler durch:



Für einen Hinweis, welchen Fehler ich bei der Nutzung der Komp() und der KursmusterPrüfung mache wäre ich dankbar...

beste Grüße
Hendrix

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

4

Freitag, 10. August 2012, 11:40

Hallo Hendrix,

probier bitte mal die doppelte Rautensyntax zu verwenden ( #_BewahreRauten# bzw. #>> <<#).
Tritt dann der Fehler immer noch auf?
Viele Grüße von Anke

http://www.ascunia.de

hendrix1

unregistriert

5

Samstag, 11. August 2012, 10:17

Hallo Anke,
vielen Dank - "bewahre Rauten" war genau das was gefehlt hat.
Jetzt meldet Investox erstmal keine Fehler mehr bei der Komp(KursMusterDTW()) Verwendung.

Danke und bester Gruß
Hendrix