Montag, 15. Oktober 2018, 18:13 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.

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

1

Donnerstag, 25. März 2010, 11:23

Hilfe bei Indikator "AD-Line"

Hallo,

ich möchte mir den "Advance Decline - Line" - Indikator machen und dachte, ich frage mal hier im Forum, ob den schon jemand hat?

Denn irgendwie macht mir schon die leichteste Aufgabe Probleme. Zum Beispiel das aufaddieren der gestiegenen Kurse.

In anderen Programmen würde ich das in etwa so machen:

If close>close(1) Then n=n+1 else if close<close(1) Then n=n-1 Endif

So oder so ähnlich würde ich es machen. Hab ich jetzt allerdings nicht getestet. Wie mache ich das in Investox? Versuchte es mit der Wenn-Dann-Formel, komme da aber auf keinen grünen Zweig. Mit so einfachen Dingen habe ich bei Investox immer meine Probleme, da ich hier nicht mit Logik vorgehen kann durch diese Eigensprache. 8| Es kann aber wie meistens nur eine Kleinigkeit sein wo ich nicht drauf komme.
Grüße aus dem Schwabenland
Arend

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 568

2

Donnerstag, 25. März 2010, 12:01

Hallo,

mit Hilfe des Formelassistenten können Sie eigentlich recht einfach Wenn/Dann in eine Formel einfügen. Das ergibt dann:

(If(ROC(close,1,$)>0, 1, -1))

Jetzt müssen Sie nur noch "Cum" davor setzen und die Berechnung ist fertig.

Viele Grüße

Andreas Knöpfel

Wiwu Weiblich

Meister

Registrierungsdatum: 4. September 2002

Beiträge: 1 638

Wohnort: Neuenhagen b. Berlin

3

Donnerstag, 25. März 2010, 12:03

Hallo,

der VBS-Code für die AD-Line (Marktbreite-Indikator Advance-Decline Line ) lautet:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim Startindex, EndIndex, Close
Dim i, mynewhigh, mynewlow, d1, d2
Dim temp,e1

GetDaten "Close", Close

ScriptBerechneFormel "KatSumme(#close>=Ref(close,-1)#,#Katalog#)", mynewhigh
ScriptBerechneFormel "KatSumme(#close<Ref(close,-1)#,#Katalog#)", mynewlow
Startindex=ErsteDatenPeriode(mynewlow)
EndIndex=LetzteDatenPeriode(mynewlow)

d1 = mynewhigh
d2 = mynewlow

For i = StartIndex  to EndIndex

temp = d1(i) -d2(i)
e1=e1+temp
Ergebnis(i) = e1

Next


Mit Investox-Boardmitteln würde die Programmierung wie folgt umgesetzt werden können:

Quellcode

1
2
3
4
#_fastprev#
calc newhigh: KatSumme(#close>=Ref(close,-1)#, #Katalog#);
calc newlow: KatSumme(#close<Ref(close,-1)#, #Katalog#);
prev+(newhigh-newlow)


Sowohl der VBS-Indikator als auch der Indikator in Investox-Code benötigen einen Parameter mit dem Namen Katalog, Typ=Katalog um zu funktionieren.
Viele Grüße von Anke

http://www.ascunia.de

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

4

Donnerstag, 25. März 2010, 12:36

Hallo,

wow, sofortige Antwort von Hr.Knöpfel und der Anke :thumbsup:

Ich werde alles gleich mal ausprobieren und testen.

Vielen Dank schon mal vorab.
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

5

Donnerstag, 25. März 2010, 13:23

Hallo Herr Knöpfel,

habe zuerst mal Ihre Formel getestet. Beim AD-Line gibt es ja drei Bedingungen: Steigende Kurse = 1, Fallende Kurse = -1, Gleichbleibende = 0. Ich weis, mein Beispiel hatte jetzt nur zwei Bedingungen. Sorry!

Müsste dann doch so umsetzbar sein:

Quellcode

1
(If(ROC(Close, 1, $) > 0, 1, (If(ROC(Close, 1, $) < 0, -1, (If(ROC(Close, 1, $) = 0, 0, 0))))))

...oder macht hier die aller letzte Null Probleme? Aber ich denke die letzte Null bezieht sich ja auf die gesamte Formel und da es keine vierte Bedingung gibt dürfte die letzte Null auch nie eintreten. Verstehe ich das richtig? Im Chart sieht es jedenfalls richtig aus, so weit ich das erkenne.
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

6

Donnerstag, 25. März 2010, 13:49

Hallo Anke,

nochmal Danke für den umfangreichen Code. Der Code für die normalen Bordmittel ist so winzig und doch so mächtig. Da bin ich überrascht.

Aber das was ich im vorherigen Posting geschrieben habe sehe ich jetzt auch bei Ihren Codes. Gleichbleibende Aktien werden nicht summiert.
Oder verstehe ICH den AD-Line falsch ?(

Wenn ich in Zeile 2 das "=" raus nehme, dürfte es doch den Effekt haben das gleichbleibende gar nicht summiert werden.

Ich frage mich gerade selber ob das richtig ist. Aber so habe ich die Literatur verstanden.
Grüße aus dem Schwabenland
Arend

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 568

7

Donnerstag, 25. März 2010, 14:02

Hallo,

diesen Ausdruck am Ende:

(If(ROC(Close, 1, $) = 0, 0, 0))

können Sie einfach durch 0 ersetzen, da sowie immer 0 ergibt.

Korrekt ist also (0 für unveränderte):

If(ROC(Close, 1, $) > 0, 1, If(ROC(Close, 1, $) < 0, -1, 0))

Noch besser lesbar

calc ROC: ROC(Close, 1, $);
if(ROC>0,1, If(ROC<0,-1,0))

Viele Grüße

Andreas Knöpfel

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

8

Donnerstag, 25. März 2010, 14:15

Hallo Herr Knöpfel,

vielen Dank.

Das sieht natürlich noch einfacher aus und führt zum selben Ziel.

Man kommt zwar mit Logik bei Investox nicht immer weiter, im Gegensatz zu Visual Basic, aber dafür gibt es Codes wie der von Ihnen (und auch mit dem Cum) oder der von Anke (mit der Katalogsumme) wo man, wenn man es weis, sehr schnell an sein Ziel kommt. Bei mancher nur kleiner Kritik wegen der Logik (denn grosse gibt es ja kaum) muss auch mal so ein Lob ausgesprochen werden. :thumbup:
Grüße aus dem Schwabenland
Arend

Wiwu Weiblich

Meister

Registrierungsdatum: 4. September 2002

Beiträge: 1 638

Wohnort: Neuenhagen b. Berlin

9

Donnerstag, 25. März 2010, 15:22

Hallo,

Zitat

Gleichbleibende Aktien werden nicht summiert.Oder verstehe ICH den AD-Line falsch


In den Formeln oben zählen die unverändert notierenden Aktien als gestiegene Werte.
Die Streichung des = Zeichens in den Formelteilen:

Quellcode

1
ScriptBerechneFormel "KatSumme(#close>[b]=[/b]Ref(close,-1)#,#Katalog#)", mynewhigh
bzw.

Quellcode

1
calc newhigh: KatSumme(#close>[b]=[/b]Ref(close,-1)#, #Katalog#);


würde dazu führen, dass die unverändert notierenden Werte unberücksichtigt bleiben würden.
In der Literatur werden unterschiedliche Vorgehensweisen zur Berechnung der A/D-Line beschrieben -sowohl mit Berücksichtigung der unverändert notierenden Werte als auch ohne.

Beachten sollte man -speziell wenn NYSE Werte analysiert werden sollen - die Umstellung der Nachkommastellen an der NYSE (vor 07/1997 1/8 Punkte, danach 1/16 Punkte bis Januar 2002 , danach Dezimalstellen)
Weil die unverändert notierenden NYSE-Werte aufgrund der der Dezimalstellenänderungen auf längere Zeitreihen gesehen inkonsistent wären, kann es imho durchaus Sinn machen, sie in der Berechnung der A/D Line zu berücksichtigen.
Die Alternative wäre, sie bei der Berechnung der A/D Line nicht zu berücksichtigen und dann die Umstellungen direkt bei der Systementwicklung zu beachten.
Viele Grüße von Anke

http://www.ascunia.de

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

10

Donnerstag, 25. März 2010, 16:47

Hallo zusammen,

abschliesend nochmal Danke an Hr. Knöpfel und an Anke.

Habe jetzt mal alles getestet und jede Formel funktioniert. Zum testen legte ich alles auf nur einen Aktienkurs um zu sehen ob sie alle den gleichen Wert anzeigen und es war so.

Jetzt habe ich aber noch eine Frage zu den Indikatoren von Anke. Damit dieser Indi läuft müssen ja alle Katalog-Titel auch im Projekt sein. Es darf kein Titel zu viel oder zu wenig im Projekt sein, sondern muss exakt die Katalog-Titel beinhalten. Das führt mich zur Frage: wie kann ich diesen AD-Indi der z.B. auf die Dax30 Werte angewendet wird in einem Chart mit dem Dax-Future anzeigen und darauf zugreifen?
Grüße aus dem Schwabenland
Arend

Wiwu Weiblich

Meister

Registrierungsdatum: 4. September 2002

Beiträge: 1 638

Wohnort: Neuenhagen b. Berlin

11

Donnerstag, 25. März 2010, 17:43

Zitat

Damit dieser Indi läuft müssen ja alle Katalog-Titel auch im Projekt sein. Es darf kein Titel zu viel oder zu wenig im Projekt sein, sondern muss exakt die Katalog-Titel beinhalten.


Hallo,

die A/D-Linie wird über alle Titel aus dem eingestellten Titelverzeichnis-Katalog des Parameters berechnet.
Im Projekt kann eine beliebige Anzahl Titel aus diesem Katalog oder aus einem beliebigen anderen Katalog enthalten sein.
Viele Grüße von Anke

http://www.ascunia.de

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

12

Donnerstag, 25. März 2010, 19:44

Hallo Anke,

dann tillt was bei mir. Sobald ich im Projekt zu den 30 Aktien noch eine andere dazu nehme kommt sofort eine Fehlermeldung. Jetzt habe ich ein Projekt nur mit dem Dax-Future und auch da kommt eine Fehlermeldung wenn ich versuche den Indi einzufügen.


Edit. Anke, brauchst mal nicht zu antworten. Das hat mit der History und den vorhanden Daten zu tun. Muss das nochmal checken.
»trader-hawk« hat folgendes Bild angehängt:
  • Fehler.jpg
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

13

Montag, 12. April 2010, 00:26

Hallo,

ich bräuchte bei dem AD-Line nochmal Hilfe.

Ich möchte ihn auf Dailybasis errechnen und auch gleich ins Ref -1 stellen. Ich lasse mir den Indi in einem Projekt anzeigen das eine niedrigere Komprimierung hat.
Das mit der Komp auf Daily bekomme ich hin:

Quellcode

1
Komp(#AD_Line(#DAX30_Daily#)#, #T#)
Aber wie kann ich ihn jetzt noch auf Dailybasis ins Ref stellen? Nicht wundern das im Code Daily steht. Es handelt sich um 60 Minuten Balken, aber obwohl ich alle Titel nochmal als Daily vorkomprimiert habe, macht er es nicht. Deshalb muss ich das Komp anwenden.

Habe schon alles Mögliche versucht, auch im Indi selber. Aber das Ref bezieht sich dann immer auf die Perioden im Chart, oder es hagelt Fehlermeldungen. Was mache ich falsch? ?(
Grüße aus dem Schwabenland
Arend

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

14

Montag, 12. April 2010, 01:31

Quellcode

1
Komp(#ref(AD_Line(#DAX30_Daily#),-1)#, #T#)
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

15

Montag, 12. April 2010, 12:00

Hallo Lenzelott,

genauso versuchte ich es bereits und bekomme eine Fehlermeldung:
»trader-hawk« hat folgendes Bild angehängt:
  • Fehler.jpg
Grüße aus dem Schwabenland
Arend

Bernd

Erleuchteter

Registrierungsdatum: 5. Juni 2005

Beiträge: 3 895

Wohnort: Iringsweg

16

Montag, 12. April 2010, 12:38

Hallo Arend

Vielleicht liegts an der "verschachtelten" Rauten Konstruktion. Wenn Du mind. INV 5.6.3 auf der Platte hast, könntest Du es mit dem dazumal neuen Verschachtelungs-Feature für Komp() versuchen, siehe Hilfe zu Version 5.6.3:

"Der Komprimierungs-Indikator arbeitet nun auch mit der alternativen Rautenklammerung #>> / <<#, die eingesetzt werden kann. Das bedeutet, dass Indikatoren, die ebenfalls Rauten verwenden (wie NeuroClassify) innerhalb des Komprimierungsindikators verwendet werden können. "
Gruss
Bernd

-----------------------------------------------
http://www.13quants.ch

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

17

Montag, 12. April 2010, 14:18

Hallo Bernd,

mit der Verschachtelung bekomme ich es auch nicht hin.

Machte es so:

Quellcode

1
Komp(#>>Ref(AD_Line(#DAX30_Daily#), -1)<<#, #T#)


Das gibt es nicht. Wo ist mein Denkfehler?

Das Komp ist kein Problem aber es tillt sobald ich versuche es auf Daily ins Ref zu stellen.
Grüße aus dem Schwabenland
Arend

Udo Männlich

Vize-Administrator

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

18

Montag, 12. April 2010, 14:27

Hallo Arend,

es sieht so aus als ob die Verschachtelung auf den AD_Linie Indikator nicht zugreifen kann! Nimm mal einen Standartindikator und teste,ob es dann funktioniert!
Happy Trading

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

19

Montag, 12. April 2010, 17:08

Hallo Udo,

nein funktioniert auch nicht. Ich nahm den GD und auch da bringt er immer Fehlermeldungen. Und bei dem Code von Lenzelott nimmt er nicht Ref -1 auf Tagesbasis, sondern nimmt die Komprimierung vom Chart.

Hm. Die scheinbar einfachsten Sachen sind immer die schwersten.
Grüße aus dem Schwabenland
Arend

Registrierungsdatum: 4. September 2007

Beiträge: 311

Wohnort: Stuttgart

20

Montag, 12. April 2010, 17:14

Hallo,

scheinbar hat es generell mit Indikatoren zu tun. Nehme ich eine Closekurs funktioniert schon die normale Formel wie sie auch Lenzelott genommen hat. Aber bei der Verschachtelung kommt auch da ein Fehler.

Das ganze Problem hat damit zu tun das ich es nicht auf z.B. einen 60 Minuten Chart legen kann aber in der Berechnung ich den Indi auf Tagesbasis laufen lassen möchte. Klar könnte ich jetzt tricksen und ein Ref -15 nehmen. Das funktioniert. Nur ist es halt gefährlich wenn der Dax mal nicht um 8.00 Uhr beginnt oder um 22.00 Uhr aufhört oder es mal eine Datenlücke gibt.
Grüße aus dem Schwabenland
Arend