Quellcode für Fibo-Ausdehnung (Extension)
Forums › ProRealTime Deutsch forum › ProBuilder Support › Quellcode für Fibo-Ausdehnung (Extension)
- This topic has 14 replies, 3 voices, and was last updated 6 years ago by sergoj.
-
-
01/04/2018 at 9:41 PM #57301
Hallo zusammen,
ich habe in den Forum und bei Indikatoren Quellcode für Fibo-Ausdehnnung gesucht und nicht gefunden.
ich möchte versuchen auf Basis von Fibo-Ausdehnung Quellcode einen Indikator zu schreiben.
Hat jemand den Quellcode von Fibo-Ausdenung oder kann mir jemand helfen?
Ich bedanke mich im Voraus.
Gruß.
Serge
01/04/2018 at 10:27 PM #57307Hier ist alles ganz gut erklärt, damit solltest Du es hinbekommen:
01/04/2018 at 11:32 PM #57310Hallo AVT!
danke für schnelle Antwort. Fibo-Extensioncode habe ich gebraucht damit ich mal Beispiel habe wie es man schreibt.
Ich habe Problem siehe den Bild http://joxi.net/LmGW30SePxqvml.
Wie kann ich Punkt 1 zu Punkt 2 und dann Punkt 2 zu Punkt 3 verbinden = coden?
Etwas verstehe ich von programmieren wenn es Beispiele gibt. Deswegen brauche ich Hilfe von Quellcode oder direkt von Beispielcode.Danke im Voraus.
Gruß
01/05/2018 at 12:28 PM #5734601/05/2018 at 6:50 PM #57419Als Basis für die Berechnungen nimmt man einen ZigZag Indikator
https://www.prorealcode.com/prorealtime-indicators/fractals-zigzag/
https://www.prorealcode.com/prorealtime-indicators/multi-fractals-zigzag-highlow/
Die Hoch-/Tiefpunkte sind die Werte, die Du nehmen mußt. Dann ist A->B=100% und ausgehend davon kannst Du die anderen Prozente berechnen.
Ich hoffe, das hilft Dir weiter.
01/05/2018 at 8:24 PM #57434Hallo zusammen,
Danke für ihre Hilfe.
Ich habe jetzt meine Idee und Frage dazu neu Formuliert. Meine Frage sieht so aus http://joxi.net/Q2KZxBS4PNgWmj
Ich hoffe dass ich es verständlich erklärt habe. Wenn ihr mir hilft zu coden was ich auf den Screen beschrieben habe, währe ich überglücklich.@ AVT Danke ich schau mir Beispiele an.
Danke im VorausGruß
Serge.
01/06/2018 at 2:09 PM #57498Ich habe mal ein Beispiel gemacht wie es im Quellcode aussehen könnte (nur mit a, b, c) basierend auf dem ZigZag mit einstellbarer Länge. Kommentare sind englisch, ich hoffe das ist ok (dann verstehen andere das auch).
a/b/c calc nach zigzag123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101// https://www.prorealcode.com/prorealtime-indicators/fractals-zigzag/// credits: Nicolas @ prorealcode.com//---external parameterscp = 10 // candle period// === added beginCmultiplier = 2 // multiplier for user adjustment// === added endonce lastpoint = 0// === added beginonce Atop = 0 // define starting values for calconce Bbottom = 0 // we need at least A and Bonce Ctop = 0 // for further calc we need moreonce NeedNewA = 0 // starting values for value markersonce NeedNewB = 0 // 0=0 1=1once NeedNewC = 0x = cp*3 // the x, assuming a simple calc// === added endif high[cp] >= highest[2*cp+1](high) thenLH = 1elseLH = 0endifif low[cp] <= lowest[2*cp+1](low) thenLL = -1elseLL = 0endifif LH = 1 thenTOPy = high[cp] // value of HighTOPx = barindex[cp] // barindex of Highendifif LL = -1 thenBOTy = low[cp] // value of LowBOTx = barindex[cp] // barindex of Lowendifif LH>0 and (lastpoint=-1 or lastpoint=0) then // last one was a LowDRAWSEGMENT(lastX,lastY,TOPx,TOPy) COLOURED(200,0,0,255) // red line// DRAWTEXT("■",TOPx,TOPy,Dialog,Bold,20) coloured(200,0,0,255) // red squarelastpoint = 1 // set marker that last one was a HighlastX = TOPx // postion on time axislastY = TOPy // value on price axis// === added beginIF Atop=0 OR NeedNewA=0 THENAtop=TOPy // == save calc value for the A topAtopIndex=TOPx // == for exact drawing positionDRAWTEXT("Atop",AtopIndex,Atop,Dialog,Bold,10) coloured(200,0,0,255)NeedNewB=0 // == marker that we need a new B bottom value nextNeedNewC=0 // == marker that we need a new C top value after thatNeedNewA=1 // == marker that the next top will not be A (but C)ELSIF Ctop=0 OR NeedNewC=0 THENCtop=TOPy // == save calc value for the C topCtopIndex=TOPxDRAWTEXT("Ctop",CtopIndex,Ctop,Dialog,Bold,10) coloured(200,0,0,255)NeedNewB=0 // == marker that we need a new B bottom value nextNeedNewA=0 // == marker that the next top will be A (and not C)NeedNewC=1 // == marker that we are done with C// === now we might have all A,B,C valuesIF Atop<>0 AND Bbottom<>0 AND Ctop<>0 THEN // we have all 3 values we need for calcAval=ABS(Atop-Bbottom) // the range aBval=ABS(Bbottom-Ctop) // the range b// === calculating some c stuff valueCval=Ctop+(Aval+Bval*Cmultiplier)DRAWSEGMENT(CtopIndex-6,Cval,CtopIndex,Cval) COLOURED(0,0,255)// // calculationg somd d stuff valueDval=Cval-x*CmultiplierDRAWSEGMENT(CtopIndex-3,Dval,CtopIndex,Dval) COLOURED(255,0,255)ENDIFENDIF// === added endendifif LL<0 and (lastpoint=1 or lastpoint=0) then // last one was a HighDRAWSEGMENT(lastX,lastY,BOTx,BOTy) COLOURED(0,200,0,255) // green line// DRAWTEXT("■",BOTx,BOTy,Dialog,Bold,20) coloured(0,200,0,255) // green squarelastpoint = -1 // set marker that last one was a LowlastX = BOTx // postion on time axislastY = BOTy // value on price axis// === added beginIF Bbottom=0 OR NeedNewB=0 THENBbottom=BOTyBbottomIndex=BOTxDRAWTEXT("Bbottom",BbottomIndex,Bbottom,Dialog,Bold,10) coloured(0,200,0,255)NeedNewB=0 // == marker that the next bottom will also be a B valueENDIF// === added endendifRETURNHilft das nun?
01/07/2018 at 1:26 PM #57591Hallo AVT!
Danke für dein Quellcode ich werde es später „studieren“, zurzeit habe ich neue Indikator nur erstellt und so sieht es http://joxi.ru/J2bz5asX786O26 aus.
Punkte setzen oder was markieren auf den Chart geht nicht. Indikator sieht so aus http://joxi.net/D2PnB0upPM5er3.meine Fragestellung überarbeitet. http://joxi.net/krDQ90CEjMMOmp
Danke noch mal.
Gruß
01/07/2018 at 2:42 PM #57606- Exel und ProRealtime sind zwei völlig voneinander unabhängige Programme. Was Du in dem einen machst, hat mit dem anderen nichts zu tun.
- Entweder Du malst etwas von Hand in den Chart ein oder Du läßt einen Indikator auf Basis der Daten malen, die er hat/bekommt.
- Es geht also nicht, daß Du zwei Punkte in den Chart setzt und dann erwartest, daß der Indikator Dir eine Verbindungslinie malt. Wenn Du einen Indikator einschaltest, dann tut er das, was im Code steht – und da steht eben nicht warte bis ich mit der Maus einen Punkt auf den Chart gesetzt habe …. so was geht nur auf höherer Programm-Ebene, die komplett alles überwachen muß (wie groß ist der Chart, wann erfolgt ein Mausklick im Chart und wo genau, bleibt die Maustaste gedrückt und fährt eine Strecke ab, bis wohin …)
In dem Beispiel bekommt der Indikator seine Daten (die Hoch- und Tiefpunkte) aus der Zigzag Berechnung. Die einzige Möglichkeit, die wir haben wäre, die genauen Kurse von Hand in das Indikatormenü einzutragen (sozusagen die Werte für Punkt1, Punkt2 und Punkt3 für die Basislinien) und dann die restlichen Linien nach Deinen Exelformeln berechnen zu lassen. (Aber da ist es schneller, Du siehst in Deiner Exeltabelle den Wert für die Resultatlinie und malst ne Horizontale mit dem Wert.)
01/08/2018 at 7:55 PM #57806HAllo AVT
Danke für deine Hilfe. Ich denke mit Zigzag wird es schwierig meine Idee zu umsetzen, da:
1. Zigzag setzt automatisch auf die Hoch und Tiefpunkte. Da kommt deine Idee “Die einzige Möglichkeit, die wir haben wäre, die genauen Kurse von Hand in das Indikatormenü einzutragen (sozusagen die Werte für Punkt1, Punkt2 und Punkt3 für die Basislinien) und dann die restlichen Linien nach Deinen Exelformeln berechnen zu lassen.” sehr gut zum umsetzen.
2. Punkte 1;2;und 3 SOLLEN entweder per Hand oder per Menü wählbar seien. Zigzag setzt zwischen Hoch/Tief aus wie hier http://joxi.net/DrlWO9SvgvnpAP.Ich hatte mal im ProBuilder versucht mit den Befehl DrawSegment oder mit Point zu zeichnen leider ohne erfolg.
Danke im Voraus.
Gruß
01/09/2018 at 1:31 PM #58593Ich habe eine einfache Version gemacht. In ProRealTime importieren, zum Chart hinzufügen und unter Indikator verändern kannst Du dann sehen, wie ich es gemacht habe.
Entweder Du nimmst den mit der RETURN e AS “e” … Zeile oder Du nimmst die Kommentare aus dem vorherigen Block raus und dafür kommentierst Du die letzte Zeile.
01/13/2018 at 5:47 PM #59368Hallo AVT!
so ungefär habe ich es mir vorgestellt! Super! ich denke ein bisschen Feintuning und “dann läuft des Teil”.Sorry dass so lange gedauert hat, ich war unterwegs.
Ich habe dein Code unverändert gerade importiert und so ein Resultat http://joxi.net/EA4YpZuwEnMLrb bekommen,
noch paar klammer eingesetzt und schon alles wie seien http://joxi.net/8Anl09sjJwgYmO sollte.
Meine Fragen dazu:
a) wie kann ich den Indikator direkt an den Chart (nicht als extra Fenster) anwenden, wie gerade mit Fibo-Ausdehnung http://joxi.net/krDQ90CEjw6Nmp gemacht habe (100 level nicht betrachten).
b) da ich noch paar Level hinzufüge, es ist wahrscheinlich logischer, weiter mit “drawsegmet” zu arbeiten?
C) kann man Levels Darstellung einzeln in Menü http://joxi.net/EA4YpZuwEn6prb “ein-ausschalten” hinzufügen?
ich denke es ist genug mit Fragen, werde dann weiter testen und erweitern.Danke im Voraus
Gruß
01/14/2018 at 12:02 AM #5939601/14/2018 at 12:34 PM #59424CalcMenu3123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263// extern, all type real//WertP1=86.66//WertP2=75.05//WertP3=82.48//Multiplikator1=1//Multiplikator2=0.01// type boolean//Level1=true//Level2=true//Level3=true//Level4=trueDEFPARAM DrawOnLastBarOnly=truea=ABS(WertP1-WertP2)b=ABS(WertP2-WertP3)c=(a+b)*Multiplikator1// x Wertex=382x1=500x2=618x3=740d=(x-c)*Multiplikator2d1=(x1-c)*Multiplikator2d2=(x2-c)*Multiplikator2d3=(x3-c)*Multiplikator2f=WertP3-df1=WertP3-d1f2=WertP3-d2f3=WertP3-d3e=WertP3+de1=WertP3+d1e2=WertP3+d2e3=WertP3+d3IF BarIndex>2 THENIF Level1 THENDRAWSEGMENT(barindex-2,f,barindex,f) COLOURED(255,0,0)DRAWSEGMENT(barindex-2,e,barindex,e) COLOURED(0,255,0)ENDIFIF Level2 THENDRAWSEGMENT(barindex-2,f1,barindex,f1) COLOURED(255,0,0)DRAWSEGMENT(barindex-2,e1,barindex,e1) COLOURED(0,255,0)ENDIFIF Level3 THENDRAWSEGMENT(barindex-2,f2,barindex,f2) COLOURED(255,0,0)DRAWSEGMENT(barindex-2,e2,barindex,e2) COLOURED(0,255,0)ENDIFIF Level4 THENDRAWSEGMENT(barindex-2,f3,barindex,f3) COLOURED(255,0,0)DRAWSEGMENT(barindex-2,e3,barindex,e3) COLOURED(0,255,0)ENDIFENDIFRETURN//RETURN e AS "e", e1 AS "e 1", e2 AS "e 2", e3 AS "e 3", f AS "f", f1 AS "f 1", f2 AS "f 2", f3 AS "f 3"a) Im Kursfenster neben “Kurs” auf den Schraubenschlüssel klicken, dann “Indikator hinzufügen” (Bild 1)
b) Ich bevorzuge “DrawSegment”, weil man damit die Länge der Linien selber bestimmen kann und nicht den ganzen Chart zumüllt. Wenn man diese dann aus- und einschalten will, wäre es taktisch besser, die “DrawSegment” Zeilen in Level zu gruppieren (anstatt wie anfangs in die positiven und negativen Linien).
c) Externe, das heißt vom Benutzer veränderbare Variablen fügst Du im Programmierfenster so hinzu (Bild 2): ganz oben bei “Variable” auf den Schraubenschlüssel daneben klicken und Namen der Variable eingeben. Vorsicht: Wenn Du einen neuen Indikator planst, überlege vorher gut die spätere Reihenfolge im Menü. Wenn Du einen Fehler machst und die Variable löscht um sie neu einzutragen, dann wird sie am Ende angefügt. Beispiel: Wenn ich “Levl2” geschrieben hätte und beim Testen im Menü feststelle, daß da ein “e” fehlt, und ich diese Variable lösche und neu hinzufüge als “Level2”, dann steht nachher im Menü plötzlich Level1, Level3, Level4, Level2 (nicht gerade so wie man es als Benutzer logisch erwarten würde).
Hier noch die Links zu Dokumentationen:
https://www.prorealtime.com/de/pdf/probuilder_c1486047630c.pdf
https://www.prorealcode.com/prorealtime-documentation/
https://www.prorealtime.com/de/pdf/proscreener_c1416313647c.pdf
https://www.prorealtime.com/de/pdf/probacktest_c1504281788c.pdf
Ich hoffe, damit kannst Du loslegen. Gruß AVT
01/14/2018 at 12:41 PM #59428 -
AuthorPosts