Dienstag, 16. April 2024, 09:58 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.

Tim

unregistriert

1

Donnerstag, 11. März 2010, 16:35

Katsumme in VBS

Hallo,

kann mir bitte jemand erklären, warum der VBS-Code a) funktioniert- nicht aber der VBS-Code b) ?
Bis auf die rote Codezeile sind beide Codes gleich. Beim 2. Code erscheint die angehängte Fehlermeldung.

Code a)

Dim Startindex, EndIndex, Close
Dim i, mynewhigh, mynewlow, d1, d2
Dim temp
GetDaten "Close", Close
Startindex=ErsteDatenPeriode(Close)
EndIndex=LetzteDatenPeriode(Close)
ScriptBerechneFormel "KatSumme(#close>=Ref(close,-1)#,#Katalog#)", mynewhigh
ScriptBerechneFormel "MACD(close)", mynewlow
d1 = mynewhigh
d2 = mynewlow
For i = StartIndex +50 to EndIndex
temp = d1(i) + d2(i)
Ergebnis(i) = temp
Next

Code b)

Dim Startindex, EndIndex, Close
Dim i, mynewhigh, mynewlow, d1, d2
Dim temp
GetDaten "Close", Close
Startindex=ErsteDatenPeriode(Close)
EndIndex=LetzteDatenPeriode(Close)
ScriptBerechneFormel "KatSumme(#close>=Ref(close,-1)#,#Katalog#)", mynewhigh
ScriptBerechneFormel "KatSumme(#close<Ref(close,-1)#,#Katalog#)", mynewlow
d1 = mynewhigh
d2 = mynewlow
For i = StartIndex +50 to EndIndex
temp = d1(i) + d2(i)
Ergebnis(i) = temp
Next

Cu Tim
»Tim« hat folgendes Bild angehängt:
  • Aufzeichnen.GIF

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Donnerstag, 11. März 2010, 18:18

Hallo,

bei mir bringt auch b) keinen Fehler. Vielleicht können Sie es mit einem Error-Handling eingrenzen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
on error resume next
Dim Startindex, EndIndex, Close
Dim i, mynewhigh, mynewlow, d1, d2
Dim temp
GetDaten "Close", Close
Startindex=ErsteDatenPeriode(Close)
EndIndex=LetzteDatenPeriode(Close)
ScriptBerechneFormel "KatSumme(#close>=Ref(close,-1)#,#Katalog#)", mynewhigh
ScriptBerechneFormel "KatSumme(#close<Ref(close,-1)#,#Katalog#)", mynewlow
d1 = mynewhigh
d2 = mynewlow
For i = StartIndex +50 to EndIndex
temp = d1(i) + d2(i)
if err then
 msgbox d1(i) & vbcrlf & d2(i)
 exit for
end if
Ergebnis(i) = temp
Next


Viele Grüße

Andreas Knöpfel

Tim

unregistriert

3

Donnerstag, 11. März 2010, 18:33

Hallo Herr Knöpfel,

mit dem Error-Handling erscheint jetzt die Fehlermeldung unten.


mfG Tim
»Tim« hat folgendes Bild angehängt:
  • Aufzeichnen.GIF

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

4

Donnerstag, 11. März 2010, 18:36

Hallo,

dann Startindex/Endindex nochmal mit mynewlow berechnen.

Viele Grüße

Andreas Knöpfel

Tim

unregistriert

5

Donnerstag, 11. März 2010, 20:18

Zitat

dann Startindex/Endindex nochmal mit mynewlow berechnen.


Hallo,

danke, das funktioniert jetzt.

Können Sie mir bitte noch sagen, wo mein Fehler bei der Substitution von "Close" innerhalb der Katsumme-Berechnung mit dem Parameter "Daten" liegt ?
Es wird mit dem folgendem Code zwar ein Ergebnis angezeigt, dieses ist aber leider immer "0".

Dim Startindex, EndIndex
Dim i, mynewlow
Dim temp

SetDaten Daten, "_TempTestdaten"

ScriptBerechneFormel "KatSumme(#Datenreihe(#_TempTestdaten#)<Ref(Datenreihe(#_TempTestdaten#),-1)#,#Katalog#)", mynewlow


Startindex=ErsteDatenPeriode(daten)
EndIndex=LetzteDatenPeriode(daten)

For i = StartIndex to EndIndex
Ergebnis(i) = mynewlow
Next

killDaten "_TempTestdaten"


mfG Tim

Tim

unregistriert

6

Mittwoch, 17. März 2010, 11:08

Hallo Herr Knöpfel,

die Verarbeitung separat definierter Parameter innerhalb des Indikators "Katsumme" funktioniert bei mir auch bei Programmierungen in Investox-Code nicht.
Ist es möglich dieses Verhalten zu ändern bzw. können Sie mir einen Lösungsweg zum Einsatz von Daten-Parametern innerhalb von "Katsumme" aufzeigen ?

mfG Tim

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

7

Mittwoch, 17. März 2010, 13:37

Hallo,

nein, das kann nicht funktionieren, da die Berechnung ja für jeden Titel des Katalogs einzeln auszuführen ist (in dessen Datenkontext) - bei gemeinsamen Daten für alle Titel hätten alle den selben Rang.

Sie können aber an ein VBScript einen Text-Parameter (freie Eingabe) mit der gewünschten Berechnung übergeben (von Rauten umschlossen) und diesen dann per Stringverknüpfung in die Berechnung einsetzen:

Übergebener (Text-) Parameter: #RSI(Close, 10)#

Im Indikator:

Berechnung=Replace(Berechnung,"#","")' Rauten löschen
ScriptBerechneFormel "KatSumme(#" & Berechnung & "#,#Katalog#)", mynewhigh


Viele Grüße

Andreas Knöpfel

Tim

unregistriert

8

Mittwoch, 17. März 2010, 14:07

Zitat

Sie können aber an ein VBScript einen Text-Parameter (freie Eingabe) mit der gewünschten Berechnung übergeben


Hallo Herr Knöpfel,

das klappt perfekt ! :)
Vielen Dank für die Hilfestellung.

mfG Tim