Dienstag, 16. April 2024, 12:55 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.

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

1

Freitag, 19. Januar 2018, 15:14

Werte aus VBS in Formel zurückgeben /als Input für Indikator verwenden

Hallo an Euch,
Die Frage lautet wie kann ich kann ich in einer Formel VBS-Code einbinden um damit den Wert eines Indikators berechnen zu lassen?
Konkret versuche ich in einem Projekt in einer Formel die Korrelation zwischen 2 Werten über alle Perioden zu berechnen die Wert A hat (WertB hat mehr Werte als A von daher muss nur ausgewertet werden wie viele Werte Wert A hat).

Quellcode

1
2
3
4
5
6
7
8
9
global const PerioF: 5;
calc xf: VBScript(#>>  
option explicit                										
dim FeldC, PerioF_vbs   	
	GetDaten "Close", FeldC    								   
	PerioF_vbs=LetzteDatenPeriode(FeldC)-ErsteDatenPeriode(FeldC)     
	SetGlobalVar "PerioF", PerioF_vbs
<<#);
Correl(Close, Close("B"), PerioF, 0)


Die Formel wird zwar berechnet, aber mit dem Wert "5". Die Rückgabe aus VBS klappt in dem Script nicht in den IV-Teil. "SetGlobalVar" ist dafür wohl nicht das richtige. Wer weiß wie es geht?

Grüße ans Board und nachträglich noch Happy New Year... auch wenns ein bisschen spät dafür ist :D

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Freitag, 19. Januar 2018, 19:37

Hallo,

das funktioniert nicht, da der Wert der Konstanten am Anfang schon zugewiesen wurde. Für diesen Zweck (Definition einer Konstanten mit VBScript) kann man aber "_VBS_Const" verwenden:

Quellcode

1
2
3
4
5
6
7
8
9
global const PerioF:  
#>>_VBS_Const 
option explicit                										
dim FeldC, PerioF_vbs   	
	GetDaten "Close", FeldC    								   
	ConstErg=LetzteDatenPeriode(FeldC)-ErsteDatenPeriode(FeldC)     
<<#;

PerioF


Das Gleiche macht übrigens:

Quellcode

1
ErsterWert(CUM(close<>0),-1)


Viele Grüße
Andreas Knöpfel

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

3

Freitag, 19. Januar 2018, 23:27

Hallo Herr Knöpfel,

danke das funktioniert sehr gut! Das mit ErsterWert ist für mich auch interessant. Ich hatte damit auch schon experimentiert, hatte es in Kombination mit Abschnittswechsel nicht ganz hinbekommen. Geht ja noch einfacher und eleganter so!

schönes WE!

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

4

Samstag, 20. Januar 2018, 13:18

Hallo,

falls mir noch eine Rückfrage gestattet ist: Der VBS-Code arbeit super wenn er in einen Berechnung im Chart eingefügt wird. Da ich das häufiger verwenden würde habe ich den Code in einen Indikator gecopy pastet (kein VBS-Indikator sondern "normal") da kam dann aber die Fehlermeldung "zu niedriger Parameterwert". Da ich mich noch in VBS einarbeite würde mich das interessieren woran das liegt..

Grüße!