Dienstag, 16. April 2024, 20:37 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lasse1 Männlich

Benutzer

Registrierungsdatum: 19. Mai 2007

Beiträge: 15

1

Freitag, 29. Januar 2016, 18:23

Nutzung von SetGlobalVar in Verbindung mit Komp möglich?

Ich habe einen Indikator in VBA erstellt, der mehr als einen Wert liefert. Daher habe ich auf SetGlobalVar zurückgegriffen. Das funktioniert auch!

Wenn ich allerdings auf diesen Indikator dann mit Komp zugreifen möchte, so gibt es die Fehlermeldung: " Die im Parameter angegebene Datenreihe steht nicht zur Verfügung!"

Setzt jemand SetGlobalVar mit Komp erfolgreich ein?

Indikator in VBA:
---------------------------------
Dim a, i
GetGlobalVar "MyCalc", a
if IsArray(a) then
for i= 1 to ubound(a)
if a(i)<>NoValue then
a(i)=i
end if
next
SetGlobalVar "MyCalc",a
end if
-----------------------------------------
Zugriff im Handelssystem:
Global Calc MyCalc: 0;
global calc c1: KompSynch(#Ref( L_Test_globalvar1(Mycalc),-1)#, #W#, O);

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Montag, 1. Februar 2016, 13:01

Hallo,

wie erfolgt der Zugriff in:

Zitat

L_Test_globalvar1(Mycalc)



Viele Grüße
Andreas Knöpfel

Lasse1 Männlich

Benutzer

Registrierungsdatum: 19. Mai 2007

Beiträge: 15

3

Montag, 1. Februar 2016, 16:01

Hallo,

wie erfolgt der Zugriff in:

Zitat

L_Test_globalvar1(Mycalc)



Viele Grüße
Andreas Knöpfel


Hallo Herr Knöpfel,

der Indikator "L_Test_globalvar1" ist der oben dargestellte Indikator in VBA!
Dabei wurde die Variable "mycalc" als Datenreihe übergeben.

Der Zugriff im System erfolgt dann folgendermaßen:
calc L1:mycalc * 1;

Dies hat ohne Komp auch funktioniert!


Ich hoffe ich habe die Frage richtig verstanden!


Viele Grüße

Lars

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

4

Dienstag, 2. Februar 2016, 12:54

Hallo,

die Variable "Mycalc" ist ausserhalb der Komp-Berechnung definiert und steht daher in dieser nicht zur Verfügung (daher die Fehlermeldung). "Komp" kann auch nur eine Datenreihe liefern. Die zusätzliche Berechnung müsste daher in einer weiteren Komp-Berechnung "abgeholt" und als Ergebnis von Komp zurückgegeben werden.

Viele Grüße
Andreas Knöpfel

Lasse1 Männlich

Benutzer

Registrierungsdatum: 19. Mai 2007

Beiträge: 15

5

Dienstag, 2. Februar 2016, 21:55

Hallo Herr Knöpfel,

können Sie bitte mal an einem Bespiel zeigen, wie dies genau aussehen soll?
Ich habe nachfolgende Varianten probiert! Leider bisher ohne Erfolg!

Vielen Dank!


1.
Global Calc MyCalc:KompSynch(#Ref(Close,-1)#, #T#, O);
global calc c1:KompSynch(#Ref(L_Test_globalvar1(Mycalc),-1)#, #T#, O);
calc Wert:Mycalc*1;

2.
Global Calc MyCalc:KompSynch(#Ref(Close,-1)#, #T#, O);
global calc c1:KompSynch(#Ref( L_Test_globalvar1(Mycalc,-1)#, #T#, O);
calc Wert:KompSynch(#Ref(Mycalc,-1)#, #T#, O)*1;

3.
Global Calc MyCalc: Close;
global calc c1:KompSynch(#Ref( L_Test_globalvar1(KompSynch(#Ref(MyCalc,-1)#, #T#, O),-1)#, #T#, O);
calc Wert:Mycalc*1;