Samstag, 21. September 2019, 11: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.

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

1

Mittwoch, 31. Januar 2007, 16:05

Bars/Candles seit Periodenanfang zählen ...

Guten Tag,

im Tradenavigator gibt es Funktionen wie "BarsSince", "NumBars" u.ä. Damit kann man relativ bequem (bei einstellbarer Komprimierung) die Anzahl von Bars bzw. Candles ermitteln, die ab einem bestimmten Zeitpunkt eine bestimmte Bedingung erfüllen.

Beispiel: ermittle die Anzahl Bars seit Handelsbeginn, deren Close über einem bestimmten Wert liegt.

Existieren entsprechende Funktionen auch in Investox?

Da ich Investox-Neuling bin, hoffe ich auf Nachsicht, wenn dies eine zu einfache Frage sein sollte ;-)

Gruß
Cornelius

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

2

Mittwoch, 31. Januar 2007, 18:03

Hallo Cornelius,

natürlich gibt es so etwas in INV auch:

Beisspiel aus der Hilfe kopiert:

Zitat

Gibt die Anzahl der vergangenen Perioden seit einem Ereignis an.
Der Indikator berechnet, wie viele Perioden verstrichen sind, seitdem der angegebene Ausdruck das x-te Mal den Wert ‘Wahr
’ angenommen hat. Er kann in vielfältigen Zusammenhängen in Berechnungen eingesetzt werden.

Schreibweise

BarsSince(Ausdruck, X)

Beispiel

BarsSince(Cross(MACD(Close),0,1)=1, 2)

Berechnet, wie viele Perioden vergangen sind, seitdem der MACD das vorletzte Mal die 0-Linie nach oben durchkreuzt hat.

© 2005 Andreas Knöpfel
Viele Grüße,
Hans-Jürgen

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

3

Mittwoch, 31. Januar 2007, 18:16

Danke für Deine Antwort, Hans-Jürgen!

Ja, das hatte ich beim Stöbern in der Hilfe entdeckt. Für mein Vorhaben müßte ich allerdings auf die einzelnen Bars (d.h. deren jew. OHLC) zugreifen können, um dann jeden Bar zu testen.

Funktioniert das auch?

Zum Hintergrund: Ich möchte den Directional Day Filter von John Clayburg in INvestox programmieren. (Der scheint ganz interessant zu sein, jedenfalls hat Clayburg auf der TradersWorld einen recht interessanten Vortrag gehalten.)

Ich danke für jegliche Hinweise (schon mal im voraus)!

Grüße
Cornelius

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

4

Mittwoch, 31. Januar 2007, 18:28

Wie sieht's hiermit aus?

Zitat

Addiert Daten jeweils ab einem bestimmten Startpunkt.
Diese Funktion erlaubt das Kumulieren (Aufaddieren) von Daten ab einem bestimmten Zeitpunkt. Während bei der Cum()-Funktion die Kumulierung immer über die gesamte Zeitreihe läuft, kann bei CumSince() der jeweilige Startpunkt für die Kumulierung durch eine Bedingung definiert werden. Jedes Mal, wenn die Bedingung zutrifft, startet die Kumulierung von neuem. Zudem kann auch der Startwert für die Kumulierung als Wert oder als Datenfeld angegeben werden.

Standardinterpretation

Diese Funktion kann in Berechnungen für Analysen eingesetzt werden.
® Kumulierung (Cum)

Schreibweise

CumSince(Daten, Reset, Startwert)

Beispiel

calc Bedingung: Cross(MOM(close, 30), 100, 1) <> 0;
CumSince(Volume, Bedingung, 0)

Berechnet die jeweilige Summe des Volumens seit dem Zeitpunkt, an dem das 30er-Momentum das letzte Mal die 100er-Linie nach oben oder nach unten durchkreuzt hat.

© 2005 Andreas Knöpfel
Viele Grüße,
Hans-Jürgen

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

5

Mittwoch, 31. Januar 2007, 20:16

Dann müßte ich mit

CumSince(1, Bedingung, 0)

die Anzahl der Fälle zählen, in denen Bedingung zutrifft?

"Bedingung" müßte dann den Vergleich des jeweiligen Close-Kurses mit dem (fixen) Vergleichswert darstellen.

Wie kann ich dann nacheinander auf die Close-Werte der (z.B.) 5-Minuten-Bars der ersten Handelsstunde zugreifen? Mit diesen Kursen müßte ich jeweils die Bedingung testen.

Gruß
Cornelius

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

6

Donnerstag, 1. Februar 2007, 20:34

Hallo Cornelius,

bin leider z. Zt. nicht an meinem INV-PC und kann somit nicht testen, was ich jetzt schreibe, aber auf die 5-Min-Close-Werte kommst du doch über die Basiskomprimierung des HS. Dann mit DatePart(....) die Stunde ausfiltern und mit der von dir geplanten Bedingung verknüpfen. Vielleicht hilft dir das erst einmal weiter.
Viele Grüße,
Hans-Jürgen

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

7

Freitag, 2. Februar 2007, 16:44

Hallo Hans-Jürgen,

meintest Du, mit DatePart(...) "die Stunde" ausfiltern (dann meinst Du wohl die erste Handelsstunde) oder meinst Du, die entsprechende 5-Minuten-Periode ausfiltern (dann würde ich über die Funktion DatePart() auf den entsprechenden 5-Minuten-Bar zugreifen)?

Hat sonst noch jemand einen Alternativvorschlag zur Lösung der Aufgabe? (Ich benötige die Anzahl der 5-Minuten-Bars in der ersten Handelsstunde mit Close > x.)

Grüße
Cornelius

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

Wohnort: Niedersachsen

8

Freitag, 2. Februar 2007, 17:36

Hallo Cornelius,

probier mal diese Formel {meine bevorzugte Schreibweise)

Zitat

calc Std: DatePart(h);

const x: ???; {hier deinen Wert einsetzten}
const 1_HSTD: 9;

calc Bedingung: Close > X;

CumSince(Bedingung, Std <> 1_HSTD, 0)


oder "einfacher"

Zitat

CumSince(Close > ???, DatePart(h) <> 9, 0)


Die Formel addiert den Wert 1 {Bedingung = wahr} zwischen 9 und 10 Uhr, wenn die Basiskomp des HS eine Std-Komp oder kleiner ist. Ich habe die Resetbedingung von CumSince einfach umgedreht. Somit wird in der restlichen Zeit das Ergebnis 0 sein.
Viele Grüße,
Hans-Jürgen

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

9

Samstag, 3. Februar 2007, 16:24

Kompliment und vielen Dank, Hans-Jürgen - das sieht sehr gut aus.

Ich probiere es sobald möglich und melde mich nochmal.

Grüße
Cornelius

cnolte

Profi

Registrierungsdatum: 23. November 2006

Beiträge: 392

10

Montag, 5. Februar 2007, 12:02

Clayburg: Directional Day Filter

Hallo,

ich muss mich doch nochmal mit Fragen an Euch wenden.

Das oben angesprochene "X", mit dem die closes der Bars der ersten Handelsstunde verglichen werden sollen, soll der Durchschnitt des Höchst- und Tiefstkurses der ersten fünf Handelsminuten sein ("Opening Level").

Frage:
Ich stelle mir die Berechnung des Opening Level so vor, dass ich über DayPart() fünf Minuten nach Handelseröffnung "High" und "Low" des Tages abfrage. Würdet Ihr das auch so lösen?

Mit diesem Opening Level werden dann die closes der Bars der ersten Handelsstunde verglichen. Das versuche ich dann mit der Lösung von Hans-Jürgen oben. Den Opening Level möchte ich auch im Chart des Wertpapiers als für den Tag konstante waagerechte Linie einzeichnen.

Frage:
Ist es dann sinnvoller, den Opening Level als Berechnungstitel anzulegen oder einfach als eigenen Indikator?

Die zeitabhängigen Berechnungen mit DayPart() sind in der bisherigen Lösung nur für jeweils eine Börse definiert, da sich ja die Börsenöffnungszeiten unterscheiden.

Frage:
Gibt es in Investox eine Möglichkeit, diese zeitabhängigen Abfragen zu variabilisieren, so dass ein und derselbe Indikator/Berechnungstitel für Wertpapiere an verschiedenen Börsen eingesetzt werden kann?

Und schließlich noch eine Frage (oder ein Vorschlag) an Herrn Knöpfel:
Ist es möglich, zukünftig Investox um Funktionen zu ergänzen, mit denen man direkt auf einzelne Bars/Candles zugreifen kann?

Beispiele könnten sein ...
OpeningBar - Eröffnungsbalken,
ClosingBar - Schlussbalken
und eine Funktion, mit der man durch Zeitangabe oder Angabe der Balkennummer seit Handelsbeginn auf einen Bar zugreifen kann.

Die oben besprochenen Ansätze mit DAtePart() scheinen doch etwas kompliziert zu sein. (Im TradeNavigator ist das recht komfortabel.)

Viele Grüße
Cornelius

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 590

11

Montag, 5. Februar 2007, 12:32

RE: Clayburg: Directional Day Filter

Hallo,

solche Berechnungen sind mit Hilfe des Abschnitt-Indikators relativ einfach durchzuführen. Z.B. liefert:

Abschnitt(p, 1, y, l)

die Nummer des Balkens des laufenden Tages.
Entsprechend erhält man z.B. mit

ValueWhen(Close, Abschnitt(p, 1, y, l)=100, 1, V)

den Wert des 100. Balkens des Tages, usw.

Viele Grüße
Andreas Knöpfel