|
Gruppen: Kunde
Beiträge: 65
|
Hallo, mal eine Frage an die Experten: ich habe versucht eine formel zu schreiben die in der Liste eine 1 ausgibt, wenn der letzte OBV grösser als der vor 14 Tagen ist. (eigentlich wollte ich die formel dann in einem filter benutzen um stark steigende OBV zu erkennen nach stundenlangem Studieren der Formelsprache und einiger formelbeispiele ist das hier herausgekommen: a:=obv(ref(c,-14),volume); b:=obv(close,volume); // bb = letzter OBV wert bb:=b[count(b)]; result1:= bb; zahl:=count(a)-14; // ax= OBV wert vor 14 tagen ax:= a[zahl]; result2:=ax; // obv wert plus 50 % erechnen in den naechsten 3 zeilen az:=ax/2; // abs(wert) da OBV auch negativ sein kann aa:= ax+abs(az); result3:= aa; {wenn der letzte OBV wert um 50% höher ist als der vor 14 Börsentagen, dann gib eine 1 aus} result4:= if(aa < bb,1,0); leider sind die werte (result1/2/3) die ausgegeben werden, nicht realistisch. die dienen auch nur zum Testen, später benötige ich nur true or false(1/0) ich habe vesucht die Variablen ax,bb und az als double zu definieren, das ergebnis blieb aber falsch. kann mir bitte jemand auf die Sprünge helfen was falsch ist? mit Dank im voraus TL13
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, Ihre Formel ist für die gestellte Aufgabe viel zu komplex. Es reichen die folgenden 3 Zeilen aus: a:=obv(ref(c,-14),Ref(volume,-14)); //berechne den OBV vor 14 Tagen, wichtig ist dabei das Sie nicht nur den Close vor 14 Tagen , sondern auch das Volume vor 14 Tagen verwendenb:=obv(close,volume); //berechne den aktuellen OBV
result:= if(b > a,1,0); // Vergleich ob der aktuelle OBV über dem vor 14 Tagen liegt
Grüsse aus Dortmund Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
danke Herr Lieck, ich habe die formel so aufgebläht um die einzelnen Schritte besser prüfen zu können. mein Hauptfehler war also das Vol-14. ich wollte eine signifikanten Anstieg des OBV prüfen (+30-50%) wie bekomme ich die Rechenoperation da hinein. kann man das überhaupt mit Daten eines Typs 'array' machen ? Bei Meyer Burger bekomme ich einen wert von 10,25 (a) bei einem OBV-8= -2,54 sollte eigentlich -1,6933 rauskommen aa wird richtig berechnet=13,66 (die 4.spalte war die berechnung eines 33% aufschlages) gleicher Fehler bei cat-oil, Rosstelecom, raiffeisenbank , LPKF etc... mit einem wort negative OBV werden positiv dargestellt. vor 8 tagen heisst doch 8 kurseinträge vorher? oder wirklich 8 kalendertage?
a:=obv(ref(close,-8 ),Ref(volume,-8 )); //berechne den OBV vor n Tagen result1:=a; aa:=a+abs(a)/3; result4:=aa; b:=obv(close,volume); //berechne den aktuellen OBV result2:=b; result3:= if(b > aa,"1","0"); // Vergleich ob der aktuelle OBV über dem vor n Tagen liegt {wenn der letzte OBV wert um 33% höher ist dann gib eine 1 aus}
letzte Frage: kann ich die Formel auch in einem Filter benutzen (manche gehen nur in Listen zu benutzen)? danke und schönen Fussballabend nach Dortmund
TL13 hat die folgenden Bilder hochgeladen:
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, den 50% Anstieg können Sie z.B. in der Formel so ausdrücken: result:= if(b >(a+a/2),1,0); Da die Formel eine Bedingung mit einer Ausgabe 1/0 enthält, sprich eine ja/nein Ausgabe, kann Sie im Filter verwendet werden. Ihnen auch einen schönen Fussballabend Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
Marcus Lieck schrieb:Hallo TL13,
Ihnen auch einen schönen Fussballabend Marcus Lieck meine Änderung im Text hat sich mit ihrer Antwort überschnitten. bitte nochmal ansehen... danke
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, kleiner Fehler meinerseits mit großer Wirkung. Ändern Sie die Formel zur Berechnung von a wie folgt: a:=Ref(obv(close,volume),- ; Damit erhalte ich z.B. bei Meyer Burger den identischen Wert für, wie er beim Indikator im Chart angezeigt wird. Gruss Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
Funzt !
danke
wie übergebe ich das Ergebnis ( 1/0 ) an den filter?
result:=true ? oder result:= fmlobv_vergl ??
gruss Thomas
PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, Sie haben die Formel ja als Indikator im Chart geschrieben wie ich anhand Ihrer Screenshots sehe. Daher können Sie mit dem Filterelement "Indikator" die Chartformel auswählen und die Bedingung z.B. soll in den letzten x-Tagen den Wert 1 gehabt haben" einstellen. Grüsse Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
nein, als listen formel und im Filter habe ich sie mit "formel" geladen. aber wie prüfe ich ob die filterresultate stimmen? (wohl mit einer Liste die die formel beinhaltet) nur da stimmt etwas nicht. es kommen jetzt keine Aktien mehr als Ergebnis raus.....
TL13 hat die folgenden Bilder hochgeladen:
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, versuchen Sie es mal mit If (lastvalue(fml_obv_vergleich)=1, true, false) damit er den letzten Wert des Ergebnis-Arrays prüft. Schönes Wochenende Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, versuchen Sie es mal mit If (lastvalue(fml_obv_vergleich)=1, true, false) damit er den letzten Wert des Ergebnis-Arrays prüft. Schönes Wochenende Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
nö, gibt mehr aktien aus als sich laut liste qualifizieren sollten
gruss Thomas
PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Kunde
Beiträge: 111
|
Hallo TL13,
du könntest auch einen Indikator programmieren, der einfach die beiden OBV-Werte ins Verhältnis setzt.
Beispiel: OBV vor 14 Tagen = 20 OBV heute = 30
Entspricht einem Anstieg von 50%
(OBV heute - OBV 14Tage ) / OBV 14Tage --> (30 – 20) / 20 = 0,5 oder 50%
Als Formel müsste das folgendermaßen ausschauen:
(obv(close,volume) - (obv(ref(c,-14),Ref(volume,-14))) / (obv(ref(c,-14),Ref(volume,-14))
Anschließend legst du dir mit diesem Indikator einen Filter an, der dir Werte größer 0,5 filtert. (50%)
Suchst du nach Werten größer 30%, dann filtere nach Werten größer 0,3
Sollte eigentlich auch funzen.
Grüße Philipp
|
|
Gruppen: Kunde
Beiträge: 65
|
Philipp Traub schrieb:Hallo TL13,
du könntest auch einen Indikator programmieren, der einfach die beiden OBV-Werte ins Verhältnis setzt. Grüße Philipp
danke Philipp, a) ich kann keinen Indikator anlegen. Der Button NEU ist ausgegraut! b) ich habe TPW 10.0 ich bekomme einfach nicht das Ergebnis der Formel in den Filter. Habe es schon mit result:=lastvalue(.... (lt Hr. Lieck) und mit result1:= lastvalue(.... und auch mit IF(a>b),true,false; versucht . Es bleiben immer zuviele Werte im Ergebnis drin.
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, den neuen Indikator können Sie nicht aus dem Filtermodul heraus anlegen. Sie öffnen dazu das Chartmodul und dort einen beliebigen Titel. Anschließend klicken Sie auf Chart/Erstellen und legen dort per Button "Neu" den gewünschten Indikator an. Grüsse Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Gruppen: Kunde
Beiträge: 65
|
Marcus Lieck schrieb:Hallo TL13,
den neuen Indikator können Sie nicht aus dem Filtermodul heraus anlegen. Sie öffnen dazu das Chartmodul und dort einen beliebigen Titel. Anschließend klicken Sie auf Chart/Erstellen und legen dort per Button "Neu" den gewünschten Indikator an.
Grüsse Marcus Lieck
Hallo Herr Lieck , das habe ich genauso gemacht. sehen sie selbst.... nur wenn ich die Formeln anklicke kann ich den "Neu" button sehen.
TL13 hat die folgenden Bilder hochgeladen:
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Kunde
Beiträge: 65
|
Philipp Traub schrieb:Hallo TL13,
(OBV heute - OBV 14Tage ) / OBV 14Tage --> (30 – 20) / 20 = 0,5 oder 50% Grüße Philipp
Philipp, das funktioniert so nicht, das der OBV oft auch negativ ist. z.B: -6 heute, -9 vor 14 tagen = (-6- -9)/-9= -0,33 obwohl er um 25% gestiegen ist. und dabei sind die komplizierten Fälle eines Wechsels von -16 auf +5 im OBV noch nicht mal berücksichtigt. z.B: +6 heute, -9 vor 14 tagen = (+6- -9)/-9= -1,66 aber wenn man das Ergebnis als absolutwert nehmen würde ginge es. Es sieht also zum Schluss so aus und funktioniert!! (als Formel!!! nicht als indikator) anzahl:=-12; aa:=abs((obv(close,volume) - ref(obv(c,volume),anzahl)) / ref(obv(c,volume),anzahl)); result:= if(aa>0.25,true,false); danke Euch/Ihnen für die Tips!
gruss Thomas PS: Do it today, tomorrow it may be taxed or illegal
|
|
Gruppen: Mitarbeiter
Beiträge: 470
|
Hallo TL13, es ist richtig das nur man nur eine neuen Indikator/Formel anlegen kann, wenn man die Rubrik "Formel" oder "eigene Formel" im Chartmodul anklickt. Das war aber so gemeint, evtl. kam es anhand der Beschreibung falsch rüber. Eine eigene Formel im Chartmodul kann dann ja im Filter z.B. per Filterbedingung "Indikator" verwendet werden. Gruss Marcus Lieck
Leiter Produktsupport | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-500 | Fax: +49 231 9153-599 hotline@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Guest |