Daily Gap im 5 MinChart – Hilfe
Forums › ProRealTime Deutsch forum › ProBuilder Support › Daily Gap im 5 MinChart – Hilfe
- This topic has 10 replies, 2 voices, and was last updated 3 years ago by Rainer (RFW).
Tagged: gap
-
-
08/28/2021 at 10:37 AM #176405
Liebe PRTler,
ich muss erneut dieses Forum behelligen.
Zwar gibt es so einiges an Codes zum Thema GAP, aber irgendwie möchte ich doch selbst was meinen Vorstellungen entspricht auf die Reihe bekommen.
Sicher habe ich einen fatalen Denkfehler schon in der ersten Bedingung, denn es wird kein einziges GAP gefunden, auch scheint die Suche nach dem jeweiligem Barindex nicht zu laufen (separat auch erfolglos getestet).Ob das Gap bereits geschlossen wurde, habe ich mal völligst außen vor gelassen, dies dann abschließend wenn die Prüfung selbst funktioniert.
Wo liegt denn mein grober Denkfehler?
Ich danke vorab und wünsche ein schönes Wochenende.
Liebe Grüße
RainerDayGap1234567891011121314151617181920212223242526272829303132Defparam DrawonLastbaronly = True//********************************************************************************************************************************************************************// Timeframe 5 MinuteBIM = BarindexMinGap = 10If IsLastbarUpdate ThenFor Dx = 0 To 10 DoIf Abs((DClose(Dx+1) And Time = 173000) - (DOpen(Dx) And Time = 080000)) > MinGap ThenFor Ox = 0 To BIM DoIf Barindex[Ox] = (Day[Dx+1] And Time = 173000) ThenOpenBarX = Barindex[Ox]OpenPrice = Open[Ox]BreakEndIfNextFor Cx = 0 To BIM DoIf Barindex[Cx] = (Day[Dx] And Time = 080000) ThenCloseBarX = Barindex[Cx]ClosePrice = Close[Cx]BreakEndIfNextDrawRectangle(OpenBarX,OpenPrice,CloseBarX,ClosePrice) Coloured(0,0,255,50) Bordercolor(0,0,255)Style(Line,3)EndIfNextEndif//********************************************************************************************************************************************************************Return08/28/2021 at 12:02 PM #176409Warum gehen Sie in Zeile 9 von 0 auf 10?
In den Zeilen 11 und 19 vergleichen Sie BARINDEX mit DAY, wofür benötigen Sie diesen Vergleich (was unmöglich ist, da es unterschiedliche Werte gibt)?
08/28/2021 at 12:47 PM #176413Hallo Roberto,
vielen Dank, wollte jetzt nicht am Wochenende stören. Eilt keinesfalls.
Deine Frage ist berechtigt, ich hatte einfach mal nach Vorstellung drauf losgetippt.Barindex / Kurs kann nun ausgelesen werden....1234567891011121314151617181920212223242526272829DtC = 2 // Days To CheckMinGap = 0For Dx = 0 To DtC DoIf (Day[Dx+1] And Time = 173000) ThenCloseBarX = BarindexClosePrice = CloseDRAWVLINE(CloseBarX)Coloured(255,255,0)DRAWSEGMENT(CloseBarX, ClosePrice, CloseBarX+20, ClosePrice)Coloured(255,255,0)Style(Line,3)EndIfIf (Day[Dx] And Time = 080000) ThenOpenBarX = BarindexOpenPrice = OpenDRAWVLINE(OpenBarX)Coloured(0,255,255)DRAWSEGMENT(OpenBarX, OpenPrice, OpenBarX+20, OpenPrice)Coloured(0,255,255)Style(Line,3)EndIfIf ((OpenPrice - ClosePrice) > MinGap) ThenDrawRectangle(OpenBarX,OpenPrice,CloseBarX,ClosePrice) Coloured(255,0,0,50) Bordercolor(255,0,0)Style(Line,3)EndIfIf ((ClosePrice - OpenPrice) > MinGap) ThenDrawRectangle(OpenBarX,OpenPrice,CloseBarX,ClosePrice) Coloured(0,255,0,50) Bordercolor(0,255,0)Style(Line,3)EndIfNextReturnZwischenzeitlich habe ich herausgefunden, wie entsprechender Barindex/Kurs zu ermitteln ist, siehe Code. Jedoch verstehe ich hier nicht so richtig, weshalb nicht nur von 17:30 Uhr Vortag bis 08:00 Uhr Folgetag gezeichnet wird, siehe Screenshots. Gern hätte ich eigentlich mit “Defparam Drawonlastbaronly = True” gearbeitet, aber dann bin ich noch ratloser, musss noch sehr viel lernen…
Ggf. Idee?
Recht herzlichen Danke vorab und schönes Wochenende. Ich teste weiter…
Liebe Grüße
Rainer08/28/2021 at 1:29 PM #176417Korrektur: Zeichenbeginn natürlich bei Close Vortag zu Open Folgetag, dennoch wird beides eingezeichnet?123456789101112131415161718192021222324DtC = 10 // Days To CheckMinGap = 0For Dx = 0 To DtC DoIf (Day[Dx+1] And Time = 173000) ThenCloseBarX = BarindexClosePrice = CloseDRAWVLINE(CloseBarX)Coloured(255,255,0)DRAWSEGMENT(CloseBarX, ClosePrice, CloseBarX+20, ClosePrice)Coloured(255,255,0)Style(Line,3)EndIfIf (Day[Dx] And Time = 080000) ThenOpenBarX = BarindexOpenPrice = OpenDRAWVLINE(OpenBarX)Coloured(0,255,255)DRAWSEGMENT(OpenBarX, OpenPrice, OpenBarX+20, OpenPrice)Coloured(0,255,255)Style(Line,3)EndIfIf ((OpenPrice - ClosePrice) > MinGap) ThenDrawRectangle(CloseBarX,ClosePrice, OpenBarX,OpenPrice) Coloured(255,0,0,50) Bordercolor(255,0,0)Style(Line,3)EndIfIf ((ClosePrice - OpenPrice) > MinGap) ThenDrawRectangle(CloseBarX,ClosePrice,OpenBarX,OpenPrice) Coloured(0,255,0,50) Bordercolor(0,255,0)Style(Line,3)EndIfNextReturn08/28/2021 at 1:33 PM #176418…weshalb auch von 08:00 bis 1700 gezeichnet wird ist mir noch schleierhaft…
08/28/2021 at 1:42 PM #176421..mit Vergleich ob “Barindex Zeichnungsbeginn < Barindex Zeichnungsende diese Problem gelöst"
12345678910111213141516171819202122232425DtC = 10 // Days To CheckMinGap = 0For Dx = 0 To DtC DoIf (Day[Dx+1] And Time = 173000) ThenCloseBarX = BarindexClosePrice = CloseDRAWVLINE(CloseBarX)Coloured(255,255,0)DRAWSEGMENT(CloseBarX, ClosePrice, CloseBarX+20, ClosePrice)Coloured(255,255,0)Style(Line,3)EndIfIf (Day[Dx] And Time = 080000) ThenOpenBarX = BarindexOpenPrice = OpenDRAWVLINE(OpenBarX)Coloured(0,255,255)DRAWSEGMENT(OpenBarX, OpenPrice, OpenBarX+20, OpenPrice)Coloured(0,255,255)Style(Line,3)EndIfIf ((OpenPrice – ClosePrice) > MinGap) AND (CloseBarX < OpenBarX) ThenDrawRectangle(CloseBarX,ClosePrice, OpenBarX,OpenPrice) Coloured(255,0,0,50) Bordercolor(255,0,0)Style(Line,3)EndIfIf ((ClosePrice – OpenPrice) > MinGap) AND (CloseBarX < OpenBarX) ThenDrawRectangle(CloseBarX,ClosePrice,OpenBarX,OpenPrice) Coloured(0,255,0,50) Bordercolor(0,255,0)Style(Line,3)EndIfNextReturn08/29/2021 at 9:34 AM #176426Tolle Arbeit Lorien !
08/29/2021 at 11:20 AM #176431Hallo Roberto,
herzlichen Dank, sehr freundlich.
Allerdings hat es noch nicht ganz meinen Vorstellungen entsprochen.
Nachfolgend, bzw. anbei/nachfolgend Screenshot/Endversion, nunmehr auch die eigentlich wichtige Anzeige von offenen Gaps. itf. Datei nachstehen, ggf. kann jemand dies sinnvoll einsetzen.
Noch einen schönen Sonntag und Danke für die stets vorbildliche Moderation/Hilfe.
Liebe Grüße
RainerGap Finder12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576// Rainer-Franz Wirth Rainer FW(RFW) @ prorealcode.com//********************************************************************************************************************************************************************Defparam Drawonlastbaronly = TrueDefparam Calculateonlastbars = 10000//********************************************************************************************************************************************************************//LookBack = 3000//MinGap = 10GFCT = DayCloseTime // 173000GFOT = DayOpenTime // 90000//********************************************************************************************************************************************************************For FOS = 0 To 250 DoIf Time[FOS] = GFOT ThenLOX = Barindex[FOS]LOXC = Open[FOS]BreakEndIfNextLBI = Barindex-LOX[FOS] // Last Open//********************************************************************************************************************************************************************If IsLastBarupdate ThenFor LBX1 = LookBack DownTo LBI+1 DoIf Time[LBX1] = GFCT ThenCloseBarX = Barindex[LBX1]ClosePrice = Close[LBX1]DRAWPOINT(CloseBarX,ClosePrice,2)Coloured(255,255,0)Bordercolor(255,255,0)DRAWSEGMENT(CloseBarX, ClosePrice, CloseBarX+20, ClosePrice)Coloured(255,255,0)Style(Line,2)If CloseBarX > 0 ThenFor LBX2 = LBX1-1 DownTo LBI DoIf Time[LBX2] = GFOT ThenOpenBarX = Barindex[LBX2]OpenPrice = Open[LBX2]DRAWPOINT(OpenBarX,OpenPrice,2)Coloured(0,255,255)Bordercolor(0,255,255)DRAWSEGMENT(OpenBarX, OpenPrice, OpenBarX+20, OpenPrice)Coloured(0,255,255)Style(Line,2)BreakEndIfNextEndIfIf ((OpenPrice - ClosePrice) > MinGap*PointSize) ThenUpGap = 1DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(255,0,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(255,0,0)Style(Line,2)For UpGapCSx = Max(1,(LBX2-1)) DownTo 0 DoIf Low[UpGapCSx] =< ClosePrice ThenUpGapCloseX = BarIndex[UpGapCSx]DRAWPOINT(UpGapCloseX,ClosePrice,2)Coloured(255,0,0)Bordercolor(255,0,0)DRAWSEGMENT(OpenBarX, ClosePrice, UpGapCloseX, ClosePrice)Coloured(255,0,0)Style(Line,2)UpGap = 2BreakEndIfNextIf UpGap = 1 ThenDRAWSEGMENT(OpenBarX, ClosePrice, BarIndex+5, ClosePrice)Coloured(255,0,0)Style(Dottedline,2)EndIfEndIfIf ((ClosePrice - OpenPrice) > MinGap*PointSize) ThenDownGap = 1DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(0,255,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(0,255,0)Style(Line,2)For DownGapCSx = Max(1,(LBX2-1)) DownTo 0 DoIf High[DownGapCSx] >= ClosePrice ThenDownGapCloseX = BarIndex[DownGapCSx]DRAWPOINT(DownGapCloseX,ClosePrice,2)Coloured(0,255,0)Bordercolor(0,255,0)DRAWSEGMENT(OpenBarX, ClosePrice, DownGapCloseX, ClosePrice)Coloured(0,255,0)Style(Line,2)DownGap = 2BreakEndIfNextIf DownGap = 1 ThenDRAWSEGMENT(OpenBarX, ClosePrice, BarIndex+5, ClosePrice)Coloured(0,255,0)Style(Dottedline,2)EndIfEndifEndifNextEndIfReturn2 users thanked author for this post.
09/01/2021 at 8:17 AM #176563Guten Morgen,
ich reiche noch die getestete Final-Version ergänzt um den DisplayMod nach:
DisplayMod 1 = nur offene Gaps
DisplayMod 2 = geschlossene Gaps
DisplayMod 3 = offene und geschlossene Gaps
Die übrigen Variablen sind ja ohnehin selbsterklärend, dennoch der Hinweis, das ggf. bei TimeFrame-Änderung die Uhrzeiten logischer Weise anglichen werden müssen, denn z.B. im 1 Hour TimeFrame kann natürlich kein Barindex mit 173000 gefunden werden….usw.
Ich denke, dass es eher ein Tool, als Indikator ist und daher wohl nicht so recht in die Library passt.
Schönen erfolgreichen Tag und GESUNDHEIT!
Liebe Grüße
RainerGapFinder Daily1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495// Rainer-Franz Wirth Rainer FW(RFW) @ prorealcode.com//********************************************************************************************************************************************************************Defparam Drawonlastbaronly = TrueDefparam Calculateonlastbars = 3000//********************************************************************************************************************************************************************//LookBack = 3000//MinGap = 10GFCT = DayCloseTime // 173000GFOT = DayOpenTime // 90000//********************************************************************************************************************************************************************For FOS = 0 To 20 DoIf Time[FOS] = GFOT ThenLOX = Barindex[FOS]LOXC = Open[FOS]BreakEndIfNextLBI = Barindex-LOX[FOS] // Last Open//********************************************************************************************************************************************************************If IsLastBarupdate ThenFor LBX1 = LookBack DownTo LBI+1 DoIf Time[LBX1] = GFCT ThenCloseBarX = Barindex[LBX1]ClosePrice = Close[LBX1]If CloseBarX > 0 ThenFor LBX2 = LBX1-1 DownTo LBI DoIf Time[LBX2] = GFOT ThenOpenBarX = Barindex[LBX2]OpenPrice = Open[LBX2]BreakEndIfNextEndIfIf ((OpenPrice - ClosePrice) > MinGap*PointSize) ThenUpGap = 1For UpGapCSx = Max(1,(LBX2-1)) DownTo 0 DoIf Low[UpGapCSx]-Spread*PointSize =< ClosePrice ThenUpGapCloseX = BarIndex[UpGapCSx]UpGap = 2BreakEndIfNextIf UpGap = 2 ThenIf (DisplayMod = 2) Or (DisplayMod = 3) ThenDRAWPOINT(CloseBarX,ClosePrice,2)Coloured(255,255,0)Bordercolor(255,255,0)DRAWPOINT(OpenBarX,OpenPrice,2)Coloured(0,255,255)Bordercolor(0,255,255)DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(255,0,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(255,0,0)Style(Line,2)DRAWPOINT(UpGapCloseX,ClosePrice,2)Coloured(255,0,0)Bordercolor(255,0,0)DRAWSEGMENT(OpenBarX, ClosePrice, UpGapCloseX, ClosePrice)Coloured(255,0,0)Style(Line,2)EndIfEndIfIf UpGap = 1 ThenIf (DisplayMod = 1) Or (DisplayMod = 3) ThenDRAWPOINT(CloseBarX,ClosePrice,2)Coloured(255,255,0)Bordercolor(255,255,0)DRAWPOINT(OpenBarX,OpenPrice,2)Coloured(0,255,255)Bordercolor(0,255,255)DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(255,0,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(255,0,0)Style(Line,2)DRAWSEGMENT(OpenBarX, ClosePrice, BarIndex+5, ClosePrice)Coloured(255,0,0)Style(Dottedline,2)EndIfEndIfEndIfIf ((ClosePrice - OpenPrice) > MinGap*PointSize) ThenDownGap = 1For DownGapCSx = Max(1,(LBX2-1)) DownTo 0 DoIf High[DownGapCSx]+Spread*PointSize >= ClosePrice ThenDownGapCloseX = BarIndex[DownGapCSx]DownGap = 2BreakEndIfNextIf DownGap = 2 ThenIf (DisplayMod = 2) Or (DisplayMod = 3) ThenDRAWPOINT(CloseBarX,ClosePrice,2)Coloured(255,255,0)Bordercolor(255,255,0)DRAWPOINT(OpenBarX,OpenPrice,2)Coloured(0,255,255)Bordercolor(0,255,255)DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(0,255,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(0,255,0)Style(Line,2)DRAWPOINT(DownGapCloseX,ClosePrice,2)Coloured(0,255,0)Bordercolor(0,255,0)DRAWSEGMENT(OpenBarX, ClosePrice, DownGapCloseX, ClosePrice)Coloured(0,255,0)Style(Line,2)EndIfEndIfIf DownGap = 1 ThenIf (DisplayMod = 1) Or (DisplayMod = 3) ThenDRAWPOINT(CloseBarX,ClosePrice,2)Coloured(255,255,0)Bordercolor(255,255,0)DRAWPOINT(OpenBarX,OpenPrice,2)Coloured(0,255,255)Bordercolor(0,255,255)DRAWSEGMENT(OpenBarX, ClosePrice, OpenBarX, OpenPrice)Coloured(0,255,0)Style(Line,2)DRAWSEGMENT(CloseBarX, ClosePrice, OpenBarX, ClosePrice)Coloured(0,255,0)Style(Line,2)DRAWSEGMENT(OpenBarX, ClosePrice, BarIndex+5, ClosePrice)Coloured(0,255,0)Style(Dottedline,2)EndifEndIfEndifEndifNextEndIfReturn2 users thanked author for this post.
09/01/2021 at 8:41 AM #176567Ich habe diese Zeilen zwischen Zeile 93 (Next) und Zeile 94 (Endif) hinzugefügt, um die Lückengröße zu zeichnen:
1234Difference = abs(ClosePrice - OpenPrice)Offset = max(close,max(ClosePrice,OpenPrice)) + (range * 2)PlotBar = max(CloseBarX,OpenBarX)DrawText("Gap size = #Difference#",PlotBar,Offset,Dialog,Bold,12) coloured(0,128,0,155)1 user thanked author for this post.
09/01/2021 at 8:53 AM #176570Guten Morgen Roberto,
super Idee. Danke nochmals.
Liebe Grüße
Rainer -
AuthorPosts
Find exclusive trading pro-tools on