Donnerstag, 18. April 2024, 06:17 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Freitag, 9. Oktober 2009, 17:53

VBscript: BasisSystemName liefert kein Ergebnis, wenn VBScript-Indikator im Chart aufgerufen wird

Hallo,

der VBScript-Indikator verwendet den BasisSystemName, um für jedes HS einen individuellen Filenamen für den Datenexport & -import zu generieren.

Zitat


dirBasisName = "c:\invToJava"
fileName_inv2ext = BasisSystemName ...


Wenn ich den Indikator im Regelbereich von Investox ausführe ist alles okay.
Sobald ich den Indikator im Chartbereich ausführe, fehlt der BasisSystemName.

Warum möchte ich den VBScript-Indikator umbedingt im Chartbereich ausführen?
verwende Schlüsselwort #_AktPerPeriode# und möchte genau das erreichen:

Zitat

Wenn das Schlüsselwort #_AktPerPeriode# an einer beliebigen Stelle in einer Formel im Chart enthalten ist, wird diese Formel bei der zeitbedingten Aktualisierung des Charts nur zu Beginn einer neuen Periode des Charts aktualisiert. Auf diese Weise ist es möglich, die Kursdaten tickweise aktualisieren zu lassen, die Berechnungen im Chart jedoch nur zu Beginn einer neuen Periode.


Leider gibt es hierbei die Einschränkung:

Zitat

Das Schlüsselwort #_AktPerPeriode# kann in Berechnungen im Chart eingesetzt werden und dient zur möglichen Verminderung des Rechenbedarfs bei zeitbedingten Aktualisierungen.


Könnte man da vielleicht was machen.

Danke.

Viele Grüße
Torsten

PS:
Alternativ könnte man den VBScript-Indikator einen TextParameter mit übergeben, der den HS-Namen enthält. Leider müßte man diesen bei jeden kopiere des HS händisch neu anpassen, d.h. es ist aufwendig und eine unschöne Fehlerquelle. Wie man außerhalb von VBScript automatisiert an den HS-Namen kommen kann, dafür habe ich noch keine Lösung gefunden.

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

2

Freitag, 9. Oktober 2009, 18:11

PS:
Ich überlege gerade, ob man ein weiteres mini VBscript schreibt, welches einfach nur den HS-Namen zurück liefert.

Für die Rückgabe steht aber wohl nur ein Zahlenarray zur Verfügung.

Zitat

Ergebnis()
In dieses Datenfeld wird das Ergebnis geschrieben. Zur Verwendung siehe den Beispielcode.


Das heist einfach einen String zurück zu geben ist schwierig.

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

3

Samstag, 10. Oktober 2009, 14:04

Hallo Sten,

dein Problem - den HS-Namen ausserhalb von Investox per Skript zu verwenden laesst sich mit der aktuellen Schnittstelle von Investox nicht sicher loesen. Bei einer Aktualisierun ruft Investox externe Funktionen in Skripten oder DLLs bis zu 4Mal und bei denZeitangaben gar mit tw. Unterschiedlichen Angaaben auf.
Einerseits wird dein Akrupt dadurch langsamwr, andererseits fehlt halt die wichtig Info.
Aber, hast du mal ueberlegt den HS-Namen selber in Investox auszulesen und dann als Parameter an deine eigene Funktion zu uebergeben?

Gruss und viel Erfolg

Martin

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

4

Samstag, 10. Oktober 2009, 15:15

Hallo Martin,

habe es jetzt erstmal so umgesetzt, aber hier muss man verdammt auspassen, dass man in jedem HS händisch einen anderen Namen angibt bei den filename-Konstanten. Habe ich natürlich nach dem zweiten mal HS kopieren gleich vergessen gehabt ...

Zitat


global Const filename_basis: 051_HS01mastervorlage; //ACHTUNG: jedes HS braucht seinen eigenen Namen !!!
global Const filename_part: _splitt;
global Const debug: 1;
global Calc REFn1_resultDatenJava01: inv2JavaV03spl_myNN(inputDatenNN, 1, filename_basis, filename_part, debug); //1..nurLesen


Deshalb wäre diese automatische HS-Namenermittlung an dieser Stelle genau das richtige.

Zitat

Aber, hast du mal ueberlegt den HS-Namen selber in Investox auszulesen

Ich weis nicht wie ich außerhalb von VBscript an den HS-Namen herankommen soll. Eine Variable der Art #_Handelssystemname# steht im Schlüsselwortassistenten leider nicht zur Verfügung bzw. ich habe nichts in der Art gefunden.

Viele Grüße
Torsten

PS:

Zitat

Einerseits wird dein Akrupt dadurch langsamwr

Wenn ich nicht gerade einen Kombititel mit 10 Kontrakte auf das HS loslassen, sondern einfach nur den letzten Kontrakt verwende, dann ist das HS trotz der Fileschnittstelle erstaunlich schnell. Denke ich kann auf 1s Aktuallisierungsrate runter gehen. Wenn die Indikatorsplittung mit #_AktPerPeriode# im Chartbereich funktioniert, dann wird die externe Berechnung und die Daten ins Filesystem schreiben auch nur einmal pro Periode durchgeführt, d.h. der Rechner wird dann durch die externe Berechnung kaum belastet, obwohl das HS auf Ticks läuft.

MartinP Männlich

Meister

Registrierungsdatum: 13. März 2007

Beiträge: 690

Wohnort: Köln

5

Samstag, 10. Oktober 2009, 15:40

In ADMG haben wir deshalb leider eine Nummer eingefuehrt die fuer jedes HS eindeutig sein muss. Der Anwender muss halt aufpassen. Wuenschenswert waere eine klarere Schnittstelle zu Investox.

Gruss

Martin

Ähnliche Themen