Double Inside Bar Screener

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #237231 quote
    BaderBader
    Participant
    New

    Hey Community,

    ich habe mich noch nicht an einen Screener getraut und habe diesbezüglich auch erstmal ein paar grundlegende Fragen. Ich würde mich freuen, wenn ihr mir diese beantworten könntet.

    Kann ich einen Screener entwickeln, der mir anzeigt auf welcher Zeiteinheit das Signal generiert wurde? Also ich möchte 1 Stunde, 4 Stunden und auf Tagesbasis nach dem Muster suchen.

    Anbei ist eine Grafik angehangen, nach welchem Muster ich suchen möchte. Es sollen die letzten drei Kerzen betrachtet werden, wenn die letzten beiden Kerzen nicht das Hoch der Vergleichskerze übrschreiten/unterschritten haben (egal ob als Schlusskurz oder während des Zeitraums der Kerze), dann sollen sie in der Screener Liste auftauchen. Also vom Code wahrscheinlich recht einfach, aber wie kann man dafür sorgen welche Zeiteinheiten betrachtet werden und das diese im Screener angezeigt werden (sofern das überhaupt möglich ist).

    Vielen Dank im Voraus und viele Grüße
    Bader

    DoubleInsideBar.png DoubleInsideBar.png
    #237251 quote
    robertogozzi
    Moderator
    Master

    Es gibt keinen speziellen Befehl, um den in ProScreener verwendeten Zeitrahmen anzuzeigen (Sie können GetTimeFrame verwenden, jedoch nur mit Indikatoren und Strategien).
    In jedem Fall wird das Signal immer im Zeitrahmen des Diagramms zurückgegeben, von dem aus der Screener ausgeführt wurde (z. B. 1 Stunde, täglich usw.).
    Dieser Screener funktioniert nur für den Zeitrahmen, den Sie im Diagramm angegeben haben:

    Condition = (high = highest[50](high))
    SCREENER[Condition]

    Wenn Sie jedoch mehrere Zeitrahmen verwenden und jeder von ihnen ein Signal zurückgeben kann, müssen Sie für jeden Zeitrahmen eine bestimmte Zahl verwenden, um zu sehen, welcher Zeitrahmen das Signal generiert hat. Die Gesamtsumme gibt mit 1 den Zeitrahmen an, der das Signal erzeugt hat, und mit 0 den Zeitrahmen, der das Signal NICHT erzeugt hat:

    Timeframe(Weekly)
    ConditionW = (high = highest[20](high))
    //
    Timeframe(Daily)
    ConditionD = (high = highest[10](high))
    //
    Timeframe(1 hour)
    Condition1 = (high = highest[20](high))
    //
    TimeFrame(default)
    Result = 9000
    IF ConditionW THEN
       Result = Result + 100
    ENDIF
    IF Conditiond THEN
       Result = Result + 10
    ENDIF
    IF Condition1 THEN
       Result = Result + 1
    ENDIF
    IF Result = 9000 THEN
       Result = 0
    ENDIF
    SCREENER[Result AND (high <> low) AND Close > 100](Result AS" -WDH")

    Dieser Screener verwendet 3 Zeitrahmen + den Standardzeitraum.
    Die anfängliche 9 wird verwendet, um zu verhindern, dass die Nullen auf der linken Seite entfernt werden.
    Ich werde 3 Werte angeben, die jeweils dem Zeitrahmen entsprechen, der mit einem Buchstaben in der Kopfzeile der Kriterienspalte angegeben ist, wo „-WDH“ steht.
    „-“ gibt an, dass die erste Ziffer links NICHT benötigt wird. 1 unter W bedeutet, dass das Signal vom wöchentlichen Zeitrahmen zurückgegeben wurde, unter „D“, wenn es vom täglichen Zeitrahmen zurückgegeben wurde, und schließlich unter „H“ für den stündlichen Zeitrahmen.

    Es können auch mehrere Signale gleichzeitig vorhanden sein. Außer der 9 kann es folgende Kombinationen geben:

    • 001-Signal, das nur vom Time TF erzeugt wird
    • 010-Signal, das nur vom Daily TF erzeugt wird
    • 011-Signal, das vom täglichen und stündlichen TF erzeugt wird
    • 100-Signal, das nur vom Weekly TF generiert wird
    • 110-Signal, das vom wöchentlichen und täglichen TF erzeugt wird
    • 101-Signal, das vom wöchentlichen und stündlichen TF erzeugt wird
    • 111-Signal, das von allen drei TFs erzeugt wird
    Iván González thanked this post
    x-3.jpg x-3.jpg
    #237282 quote
    BaderBader
    Participant
    New

    Hey Roberto,

    vielen Dank für deine immer schnelle und super hilfreichen Tipps!

    Ich konnte mit deinem Gerüst meinen Screener bauen, was wirklich cool ist, vielen Dank dafür!

    Jetzt habe ich den Screener soweit fertig und ich bekomme Aktien angezeigt, die dem Double Inside Bar entsprechen. Ich möchte jetzt allerdings lediglich Aktuen angezeigt bekommen, bei denen die Out Side Bar noch nicht von der aktuellen über- bzw. unterschritten wurde.
    Die erste Bedingung funktioniert gut, ich prüfe ob das High der aktuellen Kerze höher ist, als das der Outsidebar. Hier zeigt der Screener auch weiterhin plausible Ergebnisse an. Sobald ich aber Bedingung2 prüfe, also ist das Tief des aktuellen Kurses tiefer als das des Outsidesbars, zerschießt es mir den Screener und ich bekomme nur ein unlogisches Ergebnis angezeigt, obwohl ich ohne die Bedingung ja sehe welche Aktien auftauchen müssen, weil das Tief das aktuellen Kurses nicht das Tief der Outsidebar gerissen hat.

    Timeframe(Daily)
    
    //Aktueller Kurs < Outsidebar High und Aktueller Kurs > Outsidebar Low
    
    aktuellerKursHigh = High
    aktuellerKursLow = Low
    
    //aktuelle Bedingung erfüllt
    
    Bedingung1= aktuellerKursHigh < OutsideBarHoch
    
    Bedingung2= aktuellerKursLow > OutsideBarTief
    
    //Kerzen definieren Hoch
    
    OutsideBarHoch = DHigh(3)
    InsideBarHochD2 = DHigh(2)
    InsideBarHochD1 = DHigh (1)
    
    //Kerzen definieren Tief
    
    OutsideBarTief = DLow(3)
    InsidebarTiefD2 = DLow(2)
    InsidebarTiefD1 = DLow(1)
    
    // Bedingungen definieren - Erste Insidebar gültig
    
    IBD2gueltig = OutsideBarHoch > InsideBarHochD2 AND OutsideBarTief  < InsidebarTiefD2
    IBD1gueltig = OutsideBarHoch > InsideBarHochD1 AND OutsideBarTief < InsidebarTiefD1
    
    //
    //Timeframe(1 hour)
    //Condition1 = (high = highest[20](high))
    //
    TimeFrame(default)
    Result = 9000
    //IF ConditionW THEN
    //Result = Result + 100
    //ENDIF
    IF IBD2gueltig AND IBD1gueltig AND Bedingung1 AND Bedingung2 THEN
    Result = Result + 10
    ENDIF
    //IF Condition1 THEN
    //Result = Result + 1
    //ENDIF
    IF Result = 9000 THEN
    Result = 0
    ENDIF
    SCREENER[Result AND (high <> low) AND Close > 100](Result AS" -WDH")
    

    Hast du eine Idee woran es hier aktuell klemmen könnte? Ich habe ein Beispiel angehangen welches ich nicht mehr sehe, sobald ich Bedingung 2 eingefügt habe. Ich habe auch das > in < versucht, weil ich dachte, dass ich eventuell einen Denkfehler haben. Aber das Tief der aktuellen Kerze muss ja > sein, als das Tief der Outsidebar.

    Vielen Dank im Voraus und viele Grüße!

    Beispiel.png Beispiel.png
    #237326 quote
    robertogozzi
    Moderator
    Master

    Sie befinden sich im Zeitrahmen TÄGLICH, daher ist es am besten, normal HIGH und LOW zu verwenden.
    Dhigh() und Dlow() werden für Intraday-Zeitrahmen verwendet.
    Es scheint mir, dass es so funktioniert:

    Timeframe(Daily)
    //Aktueller Kurs < Outsidebar High und Aktueller Kurs > Outsidebar Low
    aktuellerKursHigh = High
    aktuellerKursLow  = Low
    //Kerzen definieren Hoch
    OutsideBarHoch  = High[3]
    InsideBarHochD2 = High[2]
    InsideBarHochD1 = High[1]
    //Kerzen definieren Tief
    OutsideBarTief  = Low[3]
    InsidebarTiefD2 = Low[2]
    InsidebarTiefD1 = Low[1]
    //aktuelle Bedingung erfüllt
    Bedingung1 = aktuellerKursHigh < OutsideBarHoch
    Bedingung2 = aktuellerKursLow > OutsideBarTief
    // Bedingungen definieren - Erste Insidebar gültig
    IBD2gueltig = OutsideBarHoch > InsideBarHochD2 AND OutsideBarTief  < InsidebarTiefD2
    IBD1gueltig = OutsideBarHoch > InsideBarHochD1 AND OutsideBarTief < InsidebarTiefD1
    //Timeframe(1 hour)
    //Condition1 = (high = highest[20](high))
    TimeFrame(default)
    Result = 9000
    //IF ConditionW THEN
    //Result = Result + 100
    //ENDIF
    IF IBD2gueltig AND IBD1gueltig AND Bedingung1 AND Bedingung2 THEN
    Result = Result + 10
    ENDIF
    //IF Condition1 THEN
    //Result = Result + 1
    //ENDIF
    IF Result = 9000 THEN
    Result = 0
    ENDIF
    SCREENER[Result AND (high <> low) AND Close > 100](Result AS" -WDH")
    Iván González thanked this post
    #237329 quote
    BaderBader
    Participant
    New

    Guten Tag Roberto,

    vielen Dank für den Tip! Leider löst dieser das Problem nicht. Ich habe drei Beispielbilder angehangen.

    Bild “OhneBedingung2_Ergebnisse”
    –> Hier erhalte ich DoubleInside Bars, allerdings wird die aktuelle Kerze nicht berücksichtigt, sodass manche unter dem Tief des Outsidebars geschlossen haben. Nach oben hin funktioniert die Bedingung1 wunderbar und es gibt keinen Wert, der das Hochdes Outsidebars überschritten hat, Bedingung2 ist umgedreht und funktioniert nicht.

    Bild “OhneBedingung2”
    –> Der obere Wert taucht im Screener auf, weil Bedingung2 in dieser Abfrage nicht aktiv war. Dieser Wert soll aber rausgefiltert werden und es müsste unter anderem der untere Wert angezeigt werden.

    Bild “MitBedigung2”
    –> Der untere Wert aus “OhneBedingung2” taucht bei aktiver Bedingung2 nicht auf, bzw. ich bekomme gar kein Ergebnis mehr.

    Ich habe bereits überlegt, ob es mit der Screener Bedigung in der letzten Zeile zusammenhängen könnte, aber darauf kann ich mir irgendwie keine Erklärung liefern.

    Erkennst du eventuell woran es liegen könnte?

    Vielen Dank im Voraus und viele Grüße
    Bader

    OhneBedingung2_Ergebnisse.png OhneBedingung2_Ergebnisse.png OhneBedingung2.png OhneBedingung2.png MitBedingung2.png MitBedingung2.png
    #237346 quote
    robertogozzi
    Moderator
    Master

    Bei mir funktioniert es einwandfrei, ich sehe keine Probleme.

    Ich benötige die beiden zusätzlichen Bedingungen aus zwei Gründen:

    • Der Erste, der Vermögenswerte meidet, die sich nicht bewegen
    • der zweite, um den Preis zu filtern

    Sie haben keinen Einfluss auf andere Bedingungen.

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Double Inside Bar Screener


ProScreener: Marktscanner & Aktiensuche

New Reply
Author
author-avatar
BaderBader @baderbader Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by robertogozzi
1 year, 5 months ago.

Topic Details
Forum: ProScreener: Marktscanner & Aktiensuche
Language: German
Started: 09/06/2024
Status: Active
Attachments: 6 files
Logo Logo
Loading...