Freitag, 19. April 2024, 01:47 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.

sven

unregistriert

1

Dienstag, 26. April 2011, 15:07

Zusatz robusten

Hallo,
in Investox 6 ist jetzt ja eine begrenzung der position und die reihenfolge über die Zusatz-Berechnung bestimmbar.
ich würde jetzt gerne die zusatzbedingung robusten.
habe das mal mit getglobal probiert, um im master eine globale variable zu setzen und im slave
die variable auszulesen, leider ohne erfolg.
Geht das überhaupt prinzipiell ? Und wenn ja, dann so wie ichs mir denke über Global und VBS Global auslesen ?

Liebe Grüße
Sven

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Mittwoch, 27. April 2011, 10:50

Hallo,

eine "Einflussnahme" auf das Master-System (in dem der Zusatz berechnet wird) ist, wenn überhaupt, dann über den "globalen Datenspeicher von VBScript" in Investox möglich (nicht getglobal, da dieses nur innerhalb eines Systems wirkt). Allerdings wird das Master-System immer vor dem Slave-System berechnet. Zudem müsste "Letzte Aktualisierung zwischenspeichern" im Master deaktiviert werden.

Viele Grüße
Andreas Knöpfel

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

3

Mittwoch, 27. April 2011, 12:21

Hallo Herr Knöpfel

eine "Einflussnahme" auf das Master-System (in dem der Zusatz berechnet wird) ist ... über den "globalen Datenspeicher von VBScript" in Investox möglich ... müsste "Letzte Aktualisierung zwischenspeichern" im Master deaktiviert werden...l

Ihre Formulierung legt nahe, dass es möglich ist, den Zusatz zu robusten.

Da mich dieses Thema selbst aufgrund eines System-Verbundes, welcher schon Life ist, aber an dieser Stelle nur rudimentär getetstet werden konnte, sehr interessiert: könnten Sie bitte ein Kochbuch veröffentlichen, wie man den Zusatz robusten kann. Ich schaffe es nicht, sven schafft es nicht, und es gab noch mindestens einen anderen Beitrag im Forum von einem Kollegen, der es nicht hinbekommen hat.

Also, es besteht Interesse an diesem Themenkomplex, und er ist ungelöst: ein Kochbuch wäre super.
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (27. April 2011, 12:38)


sven

unregistriert

4

Mittwoch, 27. April 2011, 19:51

schließe mich da dem wunsch an. ein beispielprojekt wäre klasse.
hab mich mal mit einem indikator versucht, der nur in den datenspeicher schreibt. ausführen mit test im editor klappt, komischerweise wirft der indikator einen fehler in definitionen.
(weil ergebnis nicht definiert ist ?)
auch beim indikator zum auslesen des datenspeichers tue ich mich schwer, kann man einen wert statt einer datenreihe zurückgeben ?

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

5

Mittwoch, 27. April 2011, 20:45

Zitat

kann man einen wert statt einer datenreihe zurückgeben ?


Ja - das ist mit dem Schlüsselwort #>>_VBS_Const<<# möglich.
Zwei Beispiele gibt es in der V6-Doku auf Seite 45.
Viele Grüße von Anke

http://www.ascunia.de

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Donnerstag, 28. April 2011, 01:02

#>>_VBS_Const<<# hilft aber nicht beim Thema dieses Threads, Zusatz robusten ging bei mir damit jedenfalls auch nicht.
Gruss
Bernd

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

7

Donnerstag, 28. April 2011, 01:48

@ Bernd

Ich habe eine Frage aus diesem Thread zitiert und auf diese Frage geantwortet.

sven

unregistriert

8

Donnerstag, 28. April 2011, 05:15

ok, damit klappt das auslesen, danke anke.
const per: #>>_vbs_const consterg=GlobalData("id1")<<#;

aber mit dem setzen habe ich noch ein problem:

VBScript(#>>GlobalData.Remove "id2"
GlobalData.Add "id1",8<<#);

im editor mit dem testbutton läufts und wird gesetzt, unter definitionen leider nicht.
auch nicht einzeilig
VBScript(#>>GlobalData.Add "id1",8<<#);

Wiwu Weiblich

Experte

Registrierungsdatum: 4. September 2002

Beiträge: 1 752

Wohnort: Neuenhagen b. Berlin

9

Donnerstag, 28. April 2011, 09:12

Hallo sven,


GlobalData.Remove"id2"
GlobalData.Add "id1",8

ist nur ein Schreibfehler im Forum ?

Funktioniert folgende Alternative ?

Quellcode

1
2
3
4
5
if GlobalData.KeyExists("id1") then
GlobalData("id1")= 8
else
GlobalData.add "id1",8
end if
Viele Grüße von Anke

http://www.ascunia.de

sven

unregistriert

10

Donnerstag, 28. April 2011, 09:46

Hallo anke,

war in der tat nur nen schreibfehler.
hab aber den fehler gefunden, vbscript() darf da nicht einfach so in der gegend rumstehen, das ergebnis muss wohl abgefangen werden.

Const dummy: VBScript(#>> ... <<#);

tut es dann.

sven

unregistriert

11

Freitag, 29. April 2011, 08:56

so, robusten klappt...

zunächst habe ich einen indikator angelegt, der einen übergebenen Wert in den globalen datenspeicher schreibt:

Quellcode

1
2
3
4
5
6
SetGlobal
if GlobalData.KeyExists("id1") then
GlobalData("id1")= value
else
GlobalData.add "id1",value
end if


im master kann man nun den indikator aufrufen mit einer varibalen. wichtig dabei ist , das der rückgabewert abgefangen wird.
noch zu beachten ist, das der indikator scheinbar erst mit einer (weiteren) berechnung wirklich ausgeführt wird. deshalb die
calc b zuweisung.

Quellcode

1
2
3
4
Definitionen
calc a: SetGlobal([ID:110,10,200,10,200,10,3,I]);
calc b: a+1;
global calc Position: #_PFPosition Long\MaxPos=5; NurEntries=Ja; Sortierung=Auf;#;


im slave muss ich jetzt nurnoch die variable auslesen und nutzen

Quellcode

1
2
3
4
Definitionen
Global const per: #>>_vbs_const consterg=GlobalData("id1")<<#;
Zusatz
ROC(GD(Close, per, S), 1, $)


zu beachten ist noch, das durch die "falsche" berechnungsreihenfolge die werte im robustheitstest um 1 verschoben sind.
das erste ergebniss ist also ungültig bzw. nutzt den vorher eventuell undefiniterten wert von id1.
will man also in meinem beispiel den wert 120 auswählen, muss man 130 nehmen, also den nächsten wert ( bei mir schrittweite 10 [ID:110,10,200,10,200,10,3,I])