Dienstag, 16. April 2024, 20:49 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

Sonntag, 25. Mai 2008, 21:03

Parameterzugriff innerhalb von Scriptberechneformel

Hallo,

wie greife ich denn innerhalb von "Scriptberechneformel" den Wert von Parametern im zu programmierenden Indikator ab ?

Die VBS-Formel

dim i
dim mymacd
if scriptberechneformel("macd(close)", mymacd) then
for i= 1 to AllePerioden
Ergebnis(i)=mymacd(i)
next
end if


berechnet mir den MACD(close) und legt das Ergebnis in mymacd ab.

Angenommen der zu programmierende Indikator enthält als ersten Parameter den Parameter "Daten" vom Typ Daten und ich möchte den MACD von der Formelmaschine auf den Inhalt dieses einstellbaren Parameters berechnen lassen - was muss ich dann in VBS coden ?

in VB6 würde ich schreiben:

Mymacd = "MACD( " & Daten &")"
BerechneFormel(Mymacd,cdaten,Ergebnis)

In VBS habe ich versucht:

scriptberechneformel("macd( " & Daten & " )", mymacd) then.....

aber so funktioniert es leider nicht.
In der Hilfe habe ich nichts dazu gefunden.

Wer gibt mir einen Tip ?


Tim

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

2

Montag, 26. Mai 2008, 06:55

Hallo Tim,

ich habe ein ein ähnliches Problem so gelöst:

Quellcode

1
2
Formel = "ATR(" & cStr(Perioden) & ")" 
if ScriptBerechneFormel(Formel, ATR) then


Vielleicht hilft dir das als Ideengeber. mehr Zeit zum Probieren habe ich im Moment leider nicht.
Viele Grüße,
Hans-Jürgen

Tim

unregistriert

3

Montag, 26. Mai 2008, 09:49

Hallo Hans-Jürge n,

danke für den Tip.
Der Zugriff auf Parameter vom Typ "Wert" klappt damit gut.
Sobald allerdings ein Parameter vom Typ "Daten" ins Spiel kommt, funktioniert der Zugriff bei mir nicht mehr.

Gecodet habe ich bisher:

dim i
dim RSI


Formel = "RSI(" & cstr(Daten) & ", " & cStr(Perioden) & ")"

if ScriptBerechneFormel(Formel, RSI) then


for i= 1 to AllePerioden
Ergebnis(i)=rsi(i)
next
end if


Ändere ich in der Codezeile

Formel = "RSI(" & cstr(Daten) & ", " & cStr(Perioden) & ")"

auf

Formel = "RSI(close, " & cStr(Perioden) & ")"

funktioniert mein Code. Mit dem Zugriff auf das Datenfeld funktioniert er nicht.

Wer kennt meinen Fehler ?


Cu Tim

sven

unregistriert

4

Montag, 26. Mai 2008, 10:06

Hallo Tim,
du kannst leider keine Datenreihe benutzen in Scriptberechneformel. Hatte das gleiche Problem.
Schau mal hier , vielleicht hilft dir der Vorschlag von Manfred Wahl.

Gruß
Sven

Tim

unregistriert

5

Montag, 26. Mai 2008, 11:01

Hallo Sven,

dank dir auch für den Input.
Die Möglichkeit, dass der Zugriff auf Parameter vom Typ Datenreihe innerhalb von Scriptberechneformel nicht funktioniert, hatte ich völlig ausgeklammert.
Ich nehme an, das gilt dann wohl auch für Parameter vom Typ Text und Katalog ?

Die Lösung von Manfred bringt mich für meine aktuelle Programmierung leider nicht weiter.
Meine Indikatoren sollen Katalogzugriffe mit Katsumme und außerdem diverse Prev-Berechnungen enthalten.
Die Prev-Berechnungen wollte ich in VBS programmieren, weil die Berechnungen über alle Titel eine Katalogs auch bei Einsatz von #_fastprev# zu langsam laufen, um sie in meinen Systemen live einzusetzen.
Basisindikatoren außerhalb von VBS habe ich programmiert, diese enthalten aber die einstellbaren Parameter "Daten" und "Perioden".
Auf die Einstellmöglichkeit des Datenfelds kann ich für bestimmte Codes nicht verzichten.

VB6 bzw. .Net wollte ich durch das Coding in VBS umgehen. Wir tauschen im Team oft Projekte und Indikatoren aus, nutzen aber zeitweise unterschiedliche Investox-Versionen. Ich wollte die Neukompilierung der VB6 /.Net-Indikatoren mit Zugriff auf die Formelmaschine durch das Coding in VBS vermeiden.

@ Andreas Knöpfel

Können Sie bestätigen, dass es in VBS keine Möglichkeit gibt, innerhalb von Scriptberchneformel den Inhalt von Indikator-Parametern vom Typ Datenreihe / Katalog / Text zu verarbeiten oder können Sie uns eventuell einen Lösungsweg aufzeigen oder einen Workaround anbieten ?

Grüße Tim

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

6

Montag, 26. Mai 2008, 13:52

Hallo,

die Weiterverarbeitung von Datenreihen aus VBS in ScriptBerechneFormel() ist derzeit nicht möglich, da ein anderer Datenkontext vorliegt. Vielleicht lässt sich dies durch Zulassen von Schreibzugriffen auf den Datenkontext noch ändern.

Katalog-Parameter können schon verarbeitet werden, wie in diesem Beispiel, bei dem "Katalog" ein Parameter des Indikators ist:

dim Summe,i
if scriptberechneformel("KatSumme(#Close#, #Katalog#)", Summe) then
for i= 1 to alleperioden
Ergebnis(i)=Summe(i)
next
end if

Viele Grüße

Andreas Knöpfel

sven

unregistriert

7

Montag, 26. Mai 2008, 14:06

wenn es nur um rsi und /oder macd geht, schreib dir die indikatoren doch selbst in vbs. Dann musst du nicht skriptberechneformel nutzen.
Dann kannst du die auch mit ner datenreihe füttern.
So hab ich jedenfalls gemacht mit SRLope.

Gruß
Sven

Tim

unregistriert

8

Montag, 26. Mai 2008, 14:27

Zitat

Vielleicht lässt sich dies durch Zulassen von Schreibzugriffen auf den Datenkontext noch ändern.


Hallo Herr Knöpfel,

das würde ich sehr begrüßen.

Danke für das Beispiel zum Einbinden der Katalog-Parameter.

@ Sven

Zitat

wenn es nur um rsi und /oder macd geht, schreib dir die indikatoren doch selbst in vbs.


Es geht ja leider nicht nur um RSI, MACD oder LRSlope.
Für die Umsetzung meiner Idee müsste ich mir zunächst eine große Zahl der in Investox hardgecodeten Indikatoren in VBS selbst schreiben.

Grüße Tim

Tim

unregistriert

9

Montag, 2. Juni 2008, 09:57

Hallo Herr Knöpfel,

herzlichen Dank für die sehr schnelle Problemlösung im neuen Investox-Update 5.3.0. !
Die Weiterverarbeitung von Datenreihen-Parametern innerhalb von " Scriptberechneformel " funktioniert mit dem neuen Update gut.


Viele Grüße

Tim

Registrierungsdatum: 23. Oktober 2006

Beiträge: 216

10

Samstag, 14. Juni 2008, 13:19

Hallo

kann mir jemand sagen wie die Üergabe von in VBScript erzeugten Datenreihen wie hier DletaPhase an eine Investox-Funktion hier dynGrenze genau funktioniert. Nachfolges Beispiel läuft bei mir leider noch nicht. DeltaPhase ist ein in VBScript berechnetes Feld:

For i = 0 Startindex to EndIndex
......
DeltaPhase(i) = ....

' Median über die letzten 5 Bars von DeltaPhase mit Investox Indi dynGreze berechnen. Ergebnis ist MedienDelta
SetDaten DeltaPhase, "DeltaP"
if Scriptberechneformel("DynGrenze((Datenreihe(#DeltaP#),5,50,k)", myMedianDelta) then
MedianDelta = myMedianDelta
else
MsgBox "Fehler"
end if
KillDaten "DeltaP"
Perioden(i)= ........MedianDelta
Next
Gruß
Augustus

Mario

unregistriert

11

Mittwoch, 27. Oktober 2010, 17:51

Hallo, irgendwie klappt das bei mir nicht:

Parameter : Name-Faktor, Typ-Wert, Standard-3

Dim Formel, Faktor, Resist_Datenw

Formel = "RSLongIndiATRKompW(High," & cStr(Faktor) & " )"

if ScriptberechneFormel(Formel, Resist_Datenw) then
Ergibt keine Ausgabe

Vorher lautete der Aufruf
if ScriptberechneFormel("RSLongIndiATRKompW(High, 2)",Resist_Datenw) then
und funktionierte einwandfrei.

Ersetzt werden sollte die 2 durch einen Parameter mit Typ "Wert"
Hat vielleicht jemand eine Idee und könnte mir bitte helfen ?

Viele Grüsse
Mario

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

12

Donnerstag, 28. Oktober 2010, 00:23

Schätze, Du verbaust Dir durch den Dim Befehl den Zugriff auf den übergeordneten Kontext von Faktor. Nimm' Faktor also mal raus aus dem Dim Befehl, geht's dann?
Gruss
Bernd

Mario

unregistriert

13

Donnerstag, 28. Oktober 2010, 10:43

Hallo Bernd,
dankeschön das wars.

Viele Grüsse
Mario

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

14

Freitag, 29. Oktober 2010, 16:52

Bitte schön, gerne geschehen :)
Gruss
Bernd