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.
Rainer
For i = BarIndex downto 0 do
If (Close[i] Crosses Over Average[Perioden](Close)[i]) Then
Y = Close[i] //High[0] //highest[1](high)
X1 = barindex[i]
For x = X1+1 to BarIndex do
If barindex[x] > X1 Then
If (Close Crosses Under Close[i]) Then
X2=barindex[x]+5
Else
x2=barindex+1000
Endif
EndIf
Next
DRAWSEGMENT(X1,Y,X2,Y) coloured(200,20,200)
EndIf
Next
Return
If (Close Crosses Over Average[Perioden](Close)) Then
Y = Close
X1 = BarIndex
DRAWVLINE(X1) Coloured(200,20,200)
DRAWTEXT(Y, X1, close+20)
If (BarIndex > X1) And (Close < Y) Then
X2 = BarIndex
Else
x2 = BarIndex+1000
Endif
DRAWSEGMENT(X1,Y,X2,Y) Coloured(200,20,200)
EndIf
Return
Verwenden 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 🙂
Beginnt ein neuer Indikator nach Zeile 17?
Sie müssen getrennt werden, nur Kommentare sind nach RETURN zulässig.
Hallo und Danke.
Nach Zeile 17 war einfach eine weitere Variante aufgeführt.
Bin mal auf Vorschläge gespannt.
Nochmals Danke.
For i = BarIndex downto 0 do
If (Close[i] Crosses Over Average[Perioden](Close)[i]) Then
Y = Close[i]
X1 = barindex[i]
For x = X1+1 to BarIndex do
If barindex[x] > X1 Then
If (Close[x] Crosses Under Y) Then
X2=barindex[x]+5
Else
x2=barindex+300
Endif
EndIf
Next
DRAWSEGMENT(X1,Y,X2,Y) coloured(200,20,200)
EndIf
Next
Return
Fügen Sie in Bezug auf Ihren ersten Beitrag im ersten Indikator die Zeile hinzu
Break
Nach 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?
Hallo 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
Rainer
Hallo 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
Rainer
If (Close Crosses Over Average[Perioden](Close)) Then
YD = Close
X1 = BarIndex
X2 = CALL "RWFI_XD2"[Perioden, YD]
IF X2 = 0 Then
X2 = BarIndex+300
EndIf
DRAWVLINE(X1) coloured(200,20,200)
DRAWSEGMENT(X1,YD,X2,YD) coloured(200,20,200)
Endif
Return
If (Close Crosses Under YD) And (Barindex > XD1) Then
XD2 = BarIndex
EndIf
Return
Es 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.
YD, XD1 = CALL "RWFI_XD_1"[15]
If (Close Crosses Under YD) And (Barindex > XD1) Then
XD2 = BarIndex
Else
XD2 = XD1 + 300
EndIf
DRAWVLINE(XD2) Coloured(255,255, 255)
DRAWSEGMENT(XD1,YD,XD2,YD) Coloured(200,20,200)
Return
Nochmals 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.
Rainer
Nachsatz:
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?
Ergä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?