DRAWSEGMENT – Länge/2.X Koordinate dynamisch aus Kursziel ?
Forums › ProRealTime Deutsch forum › ProBuilder Support › DRAWSEGMENT – Länge/2.X Koordinate dynamisch aus Kursziel ?
- This topic has 14 replies, 2 voices, and was last updated 3 years ago by Rainer (RFW).
-
-
02/08/2021 at 11:37 AM #160650
Liebe PRTLer!
Ich dachte mal kurz meinen ersten einfachen Indikator zu machen sei einfach, denn er ist wirklich ein simpler. Aber ich schaffe es wohl ohne Hilfe nicht, bin schon am verzweifeln und bitte Euch höflich um Hilfe, oder um Lösungsansätze/Tuipps.
Im Grunde ist das Problem, wie ich die 2. X Koordinate dynamisch bei erreichen des vorherigen Kurszieles ermittele. Ich habe es schon mit rückwärtigen Schleifen, Schleifen in Schleifen usw.. versucht. Hat jemand eine Idee. Dafür wäre ich äußerst dankbar.
Nachfolgend 2 von gefühlten 100 Varianten sowie Screenshot. Womöglich habe ich auch einen totalen Denkfehler?
Liebe Grüße und DANKE vorab.
Rainer12345678910111213141516171819202122232425262728293031For i = BarIndex downto 0 doIf (Close[i] Crosses Over Average[Perioden](Close)[i]) ThenY = Close[i] //High[0] //highest[1](high)X1 = barindex[i]For x = X1+1 to BarIndex doIf barindex[x] > X1 ThenIf (Close Crosses Under Close[i]) ThenX2=barindex[x]+5Elsex2=barindex+1000EndifEndIfNextDRAWSEGMENT(X1,Y,X2,Y) coloured(200,20,200)EndIfNextReturnIf (Close Crosses Over Average[Perioden](Close)) ThenY = CloseX1 = BarIndexDRAWVLINE(X1) Coloured(200,20,200)DRAWTEXT(Y, X1, close+20)If (BarIndex > X1) And (Close < Y) ThenX2 = BarIndexElsex2 = BarIndex+1000EndifDRAWSEGMENT(X1,Y,X2,Y) Coloured(200,20,200)EndIfReturn02/08/2021 at 11:55 AM #160655Verwenden Sie immer die Schaltfläche “Insert PRT Code” , wenn Sie Code in Ihre Nachrichten einfügen, um das Lesen für andere zu erleichtern.
Danke 🙂
02/08/2021 at 11:58 AM #160656Beginnt ein neuer Indikator nach Zeile 17?
Sie müssen getrennt werden, nur Kommentare sind nach RETURN zulässig.
02/08/2021 at 4:39 PM #160708Hallo und Danke.
Nach Zeile 17 war einfach eine weitere Variante aufgeführt.
Bin mal auf Vorschläge gespannt.
Nochmals Danke.02/08/2021 at 4:53 PM #160710Eine weitere Variante mit 2 Schleifen, leider nicht optmal.1234567891011121314151617For i = BarIndex downto 0 doIf (Close[i] Crosses Over Average[Perioden](Close)[i]) ThenY = Close[i]X1 = barindex[i]For x = X1+1 to BarIndex doIf barindex[x] > X1 ThenIf (Close[x] Crosses Under Y) ThenX2=barindex[x]+5Elsex2=barindex+300EndifEndIfNextDRAWSEGMENT(X1,Y,X2,Y) coloured(200,20,200)EndIfNextReturn02/08/2021 at 6:12 PM #160721Fügen Sie in Bezug auf Ihren ersten Beitrag im ersten Indikator die Zeile hinzu
1BreakNach 11 können Sie also ausgehen, ohne auf 0 zu warten, denn bei vielen Einheiten ist es sehr langsam! Ich verstehe nicht ganz, was Sie erreichen wollen.
Worauf möchten Sie nach der Kreuzung achten? Was Sie suchen möchten, möchten Sie es vor oder nach der Kreuzung finden?
02/09/2021 at 1:37 PM #160805Hallo Roberto,
vielen Dank für Deine Antwort.
Der Break in Zeile 11 macht Sinn, dennoch funktioniert es leider nicht.
Die Frage nach dem Sinn dieses Indikators, wenn man es überhaupt so nennen kann, ist angebracht.
Ich bin leider stark sehbehindert und für mich ist es eine Erleichterung, wenn nicht viele Linien bis nach rechts gehen, obwohl der Kurs schon erreicht wurde. Ich möchte einfach den Rücklauf nach dem Durchkreuzen, wie hier im Average, indiziert bekommen.
Hast Du oder jemand eine Idee, ggf. mit Arrays oder das ganz in mehrere Indikatoren mit Call verschachtelt?
Wäre sehr dankbar.
Liebe Grüße
Rainer02/09/2021 at 3:01 PM #160821Hallo nochmal,
ich gebe nicht auf und habe versucht, die 2. X Koordinate aus einem separaten Indikator zu holen. Jedoch erhalte ich immer den Fehler das 0 zurückgegeben wird. Was mache ich beim Einbinden mit CALL falsch?
Danke vorab und liebe Grüße
Rainer02/09/2021 at 3:03 PM #160822Fehler immer 0 beim Einbinden des Indikators mit Call1234567891011If (Close Crosses Over Average[Perioden](Close)) ThenYD = CloseX1 = BarIndexX2 = CALL "RWFI_XD2"[Perioden, YD]IF X2 = 0 ThenX2 = BarIndex+300EndIfDRAWVLINE(X1) coloured(200,20,200)DRAWSEGMENT(X1,YD,X2,YD) coloured(200,20,200)EndifReturn02/09/2021 at 3:06 PM #160824Hier der mit Call einzubindende Indikator1234If (Close Crosses Under YD) And (Barindex > XD1) ThenXD2 = BarIndexEndIfReturn02/09/2021 at 4:03 PM #160828Es heißt, dass das Flag "RWFI_XD2" keine Werte zurückgibt . während Sie erwarten, dass es eins zurückgibt, um es der Variablen X2 zuzuweisen.
02/09/2021 at 4:37 PM #160838Indikatoren geprüft und gedreht.123456789YD, XD1 = CALL "RWFI_XD_1"[15]If (Close Crosses Under YD) And (Barindex > XD1) ThenXD2 = BarIndexElseXD2 = XD1 + 300EndIfDRAWVLINE(XD2) Coloured(255,255, 255)DRAWSEGMENT(XD1,YD,XD2,YD) Coloured(200,20,200)Return02/09/2021 at 4:42 PM #160839Nochmals Danke, habe die Indikatoren gedreht, erhalte immer den Fehler dass keine Werte zurückgegeben werden. Jeder für sich alleine gibt jedoch Werte zurück. Ratlosigkeit.
Ich bedanke mich jedoch für die Hilfe-Versuche, sehr nett.
Schade, dass eigentlich so was banales nicht umsetzbar erscheint, keiner eine Idee?
Liebe Grüße und Gesundheit.
Rainer02/09/2021 at 4:53 PM #160841Nachsatz:
Ich denke, dass Problem liegt darin, dass der jeweils eingebundene Indikator oder wie oben die interne Schleifen, nicht den kompletten Chart durchlaufen, sondern nur rückwirkend ab aktueller Bar?02/09/2021 at 6:01 PM #160847Ergänzung:
Auch wenn ein Indikator nur für ein Einbinden mit Call benötigt wird, muss Return mit AS “:::” ergänzt werden. Somit werden keine 0 Werte mehr zurückgegeben. Aber Problem dennoch nicht gelöst, da wie vermutet, auch der eingebundene Indikator nur rückwärtig rechnet und nicht alle Bars. Schade, wenn sich dies lösen könnte? -
AuthorPosts