Freitag, 19. April 2024, 01:48 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

sven

unregistriert

1

Montag, 5. November 2007, 15:08

LRSlope unter VBScript

Hallo,

ich habe eine Datenreihe in VBScript und möchte die Funktion LRSlope darauf anwenden.
Leider kann ich nicht

Quellcode

1
scriptberechneformel "LRSlope(myData,14)" , ergebnis

unter VBScript aufrufen, da myData eine VBScript Variable ist.

Fehlermeldung:
"Prozedur: Parameter-Überprüfung
Vorgang: K/A
Indikator: LRSlope
Parameter: MYDATA
Meldung: Unverständlicher Parameter: Datenreihe oder Unterberechnung erwartet."

Natürlich kennt der Interpreter nicht die Datenreihe myData.
Wahrscheinlich müsste ich die Funktion LRSlope in VB neu definieren?!
Kann mir jemand eine Formel dafür nennen ? Oder erklären was genau LRSlope macht?

Liebe Grüße
Sven

Manfred Wahl

unregistriert

2

Montag, 5. November 2007, 18:45

Unterprogramme

Hi Sven,

nur so eine Idee: Vielleicht kannst Du Deinen neuen Indikator aus mehreren anderen zusammensetzen ?
Der untergeordnete ist dann in VBScript, der übergeordnete enthält die LRSlope Anweisung.

Gruß Manfred

sven

unregistriert

3

Montag, 5. November 2007, 19:31

Hallo Manfred,
keine schlechte Idee, aber ich brauche die berechnete Datenreihe dann weiter im VBScript.
Das wäre dann etwa so:
vb2 ( lrslope ( vb1 ) )

Wenn es gar nicht anders geht, dann würde ich das so machen. Schöner wärs halt, wenn es in einem Indikator integriert wäre, und wahrscheinlich auch schneller.

Gruß
Sven

NRCM

unregistriert

4

Dienstag, 6. November 2007, 08:55

Hallo,

der VBScript- Quellcode für LRSlope befindet sich hier.

Viele Grüße
Ulrich

sven

unregistriert

5

Dienstag, 6. November 2007, 10:15

danach habe ich gesucht. Herzlichen dank.

Gruß
Sven

Lupo

unregistriert

6

Sonntag, 22. Juni 2014, 00:48

Hallo Zusammen,

ich bin auf der Suche nach dem VBS-Code zur LRSlope.

Mein VBS/Mathe-Halbwissen hat leider nicht ausgereicht, die LRSlope deckungsgleich zum IV-Original zu coden, s.u.

Kann jemand weiterhelfen?

Danke & Grüsse,

Lupo


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Dim i, n, StartIndex, EndIndex, SumX

SetDaten Daten, "_TempDaten"							'Daten per Parameter von Typ "Datenreihe" übergeben, z. B. KK oder Close

StartIndex = ErsteDatenPeriode(Daten)
EndIndex = LetzteDatenPeriode(Daten)

n = 200													'Periodenanzahl für die LRSlope
SumX = (n + 1) / 2

For i = StartIndex + n to EndIndex

		AvrgY = AvrgYFunc(i, n, Daten)

		Ergebnis(i) = BetaFunc(i, n, SumX, Daten, AvrgY)

Next

KillDaten "_TempDaten"

''===============================FUNCTIONS AND SUBS==========================================================

Public Function AvrgYFunc(ByVal i, ByVal n, ByVal Daten)

	Dim x, CounterX, CounterY

	CounterX = 0
	CounterY = 0

	For x = i - n to i

    	CounterX = CounterX + 1
		CounterY = CounterY + Daten(x)
    	
	Next
                	
	If CounterX <> 0 Then

		AvrgYFunc = CounterY / CounterX

		Else

		AvrgYFunc = 1
    	
	End If
	
End Function

''==========================================================================================================

Public Function BetaFunc(ByVal i, ByVal n, ByVal SumX, ByVal Daten, ByVal AvrgY)

	Dim x, Zterm, Nterm

	Zterm = 0
	Nterm = 0

	For x = i - n to i

    	Zterm = Zterm + (x - SumX) * (Daten(x) - AvrgY)
		Nterm = Nterm + (x - SumX)^2
    	
	Next
                	
	If Zterm + Nterm <> 0 Then

		BetaFunc = Zterm / Nterm
		
		Else

		BetaFunc = 1
    	
	End If
	
End Function

''==========================================================================================================

Lupo

unregistriert

7

Donnerstag, 17. Juli 2014, 15:59

Hallo,

hier der VBS-Code zur LRSlope, sollte mal jemand auf der Suche danach sein.

"Daten" wird als Parameter übergeben.

Vor Verwendung bitte ggfs. mit dem IV-Original abgleichen.

Grüsse,

Lupo

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Dim i, k, x, StartIndex, EndIndex, SumX, CounterX, CounterY, AvrgY, Zterm, Nterm

StartIndex = ErsteDatenPeriode(Daten)
EndIndex = LetzteDatenPeriode(Daten)

k = 90
SumX = (k + 1) / 2

For i = StartIndex + k - 1 to EndIndex

	CounterX = 0
	CounterY = 0

	For x = i - (k - 1) to i

		CounterY = CounterY + Daten(x)
    	
	Next
                	
	If CounterY <> 0 Then

		AvrgY = CounterY / k
		
		Else

		AvrgY = 1
    	
	End If

	Zterm = 0
	Nterm = 0

	For x = i - (k - 1) to i

		CounterX = CounterX + 1

    	Zterm = Zterm + (CounterX - SumX) * (Daten(x) - AvrgY)
		Nterm = Nterm + (CounterX - SumX)^2
    	
	Next
                	
	If Zterm + Nterm <> 0 Then

		Ergebnis(i) = Zterm / Nterm
		
		Else

		Ergebnis(i) = 1
    	
	End If

Next

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

8

Donnerstag, 17. Juli 2014, 16:54

Mal ne blöde Frage meinerseits:
Wozu benötigst Du das?
Ist ja wie Du auch selber geschrieben hast in Investox bereits vorhanden.
Und VBS dürfte deutlich langsamer sein, wie der Investox Indikator.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lupo

unregistriert

9

Donnerstag, 17. Juli 2014, 17:48

Mittlerweile brauche ich das Ding nicht mehr.
Habe final einen Weg gefunden, mit den vorhandenen Mitteln die Idee umzusetzen ==> ist sauberer und in jedem Fall schneller.

Der Beitrag soll lediglich nicht mit einer Frage offen bleiben.

Gruss,

Lupo