Double Inside Bar Screener
Forums › ProRealTime Deutsch forum › ProScreener Support › Double Inside Bar Screener
- This topic has 5 replies, 2 voices, and was last updated 1 month ago by robertogozzi.
-
-
09/06/2024 at 3:44 PM #237231
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
Bader09/06/2024 at 6:58 PM #237251Es 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:12Condition = (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:
123456789101112131415161718192021222324Timeframe(Weekly)ConditionW = (high = highest[20](high))//Timeframe(Daily)ConditionD = (high = highest[10](high))//Timeframe(1 hour)Condition1 = (high = highest[20](high))//TimeFrame(default)Result = 9000IF ConditionW THENResult = Result + 100ENDIFIF Conditiond THENResult = Result + 10ENDIFIF Condition1 THENResult = Result + 1ENDIFIF Result = 9000 THENResult = 0ENDIFSCREENER[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
1 user thanked author for this post.
09/07/2024 at 12:42 PM #237282Hey 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.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950Timeframe(Daily)//Aktueller Kurs < Outsidebar High und Aktueller Kurs > Outsidebar LowaktuellerKursHigh = HighaktuellerKursLow = Low//aktuelle Bedingung erfülltBedingung1= aktuellerKursHigh < OutsideBarHochBedingung2= aktuellerKursLow > OutsideBarTief//Kerzen definieren HochOutsideBarHoch = DHigh(3)InsideBarHochD2 = DHigh(2)InsideBarHochD1 = DHigh (1)//Kerzen definieren TiefOutsideBarTief = DLow(3)InsidebarTiefD2 = DLow(2)InsidebarTiefD1 = DLow(1)// Bedingungen definieren - Erste Insidebar gültigIBD2gueltig = OutsideBarHoch > InsideBarHochD2 AND OutsideBarTief < InsidebarTiefD2IBD1gueltig = OutsideBarHoch > InsideBarHochD1 AND OutsideBarTief < InsidebarTiefD1////Timeframe(1 hour)//Condition1 = (high = highest[20](high))//TimeFrame(default)Result = 9000//IF ConditionW THEN//Result = Result + 100//ENDIFIF IBD2gueltig AND IBD1gueltig AND Bedingung1 AND Bedingung2 THENResult = Result + 10ENDIF//IF Condition1 THEN//Result = Result + 1//ENDIFIF Result = 9000 THENResult = 0ENDIFSCREENER[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!
09/08/2024 at 6:25 PM #237326Sie 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:1234567891011121314151617181920212223242526272829303132333435Timeframe(Daily)//Aktueller Kurs < Outsidebar High und Aktueller Kurs > Outsidebar LowaktuellerKursHigh = HighaktuellerKursLow = Low//Kerzen definieren HochOutsideBarHoch = High[3]InsideBarHochD2 = High[2]InsideBarHochD1 = High[1]//Kerzen definieren TiefOutsideBarTief = Low[3]InsidebarTiefD2 = Low[2]InsidebarTiefD1 = Low[1]//aktuelle Bedingung erfülltBedingung1 = aktuellerKursHigh < OutsideBarHochBedingung2 = aktuellerKursLow > OutsideBarTief// Bedingungen definieren - Erste Insidebar gültigIBD2gueltig = OutsideBarHoch > InsideBarHochD2 AND OutsideBarTief < InsidebarTiefD2IBD1gueltig = OutsideBarHoch > InsideBarHochD1 AND OutsideBarTief < InsidebarTiefD1//Timeframe(1 hour)//Condition1 = (high = highest[20](high))TimeFrame(default)Result = 9000//IF ConditionW THEN//Result = Result + 100//ENDIFIF IBD2gueltig AND IBD1gueltig AND Bedingung1 AND Bedingung2 THENResult = Result + 10ENDIF//IF Condition1 THEN//Result = Result + 1//ENDIFIF Result = 9000 THENResult = 0ENDIFSCREENER[Result AND (high <> low) AND Close > 100](Result AS" -WDH")1 user thanked author for this post.
09/09/2024 at 4:46 AM #237329Guten 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
Bader09/09/2024 at 10:09 AM #237346Bei 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.
-
AuthorPosts
Find exclusive trading pro-tools on