ATR graphisch abbilden
Hi,
wie so oft versuche ich mich in Grundlagen, um darauf aufzubauen. Auch wenn es sich manchmal unsinnig anhört / liest, aber der Lerneffekt ist vorhanden. Ich versuche gerade, die ATR als Channel bzw. Aquidistante im EUR-USD abzubilden. Normalerweise wird der ATR ja im Subwindow als Kurve angezeigt, ich will ihn jedoch als Channel sehen. Nun sollte zu jeder Kerze der ATR-Wert vorhanden sein bzw. berechnet werden können, was nicht mein Problem ist. ABER: Die Indexierung der Kerzen ist mein Problem, weil ich es nicht kann. Meine Idee ist, die Koordinaten der ATR-Werte mit OBJ_TREND miteinander zu verbinden, so dass es ein Channel gibt. Hat jemand hierfür bitte eine Lösung? |
Warum machst du keinen Indikator, damit bekommst du auch einen Channel. Soll dieser Channel so ähnlich sein wie die Bollinger Bands?
---Leopold--- |
Hi, ja ein Indikator schwebt mir ja vor.
Ja, wie die Bollinger Bands soll er aussehen. Nur die programmiertechnische Umsetzung hinsichtlich der X-Koordinaten (mein altes Problem) fällt mir schwer. |
Hallo,
schau mal da nach, vielleicht hilft dir das weiter: Indikatorentwicklung, Basics am praktischen Beispiel | tradimo ---Leopold--- |
... oder du nimmst mal den Code vom Moving Average und baust diesen um.
Aktuelle Kerze ist 0 vorige Kerze ist 1 usw. ---Leopold--- |
Meinst Du den Code des MA , der beim MT4 mitgeliefert wird?
|
Ja genau.
---Leopold--- |
Ok, Danke, leider ruft jetzt die Arbeit, ich sehe mir die Infos zwischendrinn mal an, vorab mal vielen Dank...!
|
So, ich habe mir den Code des bei MT4 mitgelieferten "Moving Average" angesehen.
Die Indizierung leuchtet ein, die im Code taugt jedoch nicht für die Darstellung einer Kurve / Trendlinie. Mit anderen Worten: Ich weiß wohl, wie das Open / High / Close etc. der 85ten und 84ten Kerze aussieht und wie man es ausliest, jedoch kann ich dann noch lange nicht zB das Close der 85ten mit dem der 84ten verbinden. Mal das andere (Den Link) noch lesen... |
Code:
|
Was soll das Ganze bringen? :confused:
https://admiralmarkets.de/wissen/art...den-markten-an Wie willst Du die Vola mit nem Kanal darstellen? Ansonsten nimm einfach nen MA auf High und einen auf Low und rechne die Abstände dazwischen aus, wenn die Vola angezeigt werden soll. |
JA, genau, das wollte ich mal probieren. Ob es Sinn macht, sei dahingestellt, ich will es nur optisch dastellen und nicht in einer einfachen Kurve - die der mitgelieferte Indikator darstellt.
Nochmal, es geht mir vorwiegend darum, zu erlernen, wie einzelne Kerzen miteinander mittels einer Linie verbunden werden, d.h. zB die Closes. So trivial ist das nicht, MetaTrader liefert von Haus aus nicht einfach eine Funktion "Verbinde Close[85] mit Close[84]" mit einer folgenden Linie : Farbe = Rot, Dicke = x, Linienart=y usw. Das macht das Ganze unheimlich schwer. Stattdessen muss man X- (Zeit) und Y-(Preis) Koordinaten kennen und die muss man erst mühsam ausrechnen, und zwar über Sekunden seit 01.01.1970 (?) und da frage ich mich, ob es nicht einen anderen Weg gibt... Ich bin davon überzeugt, denn es gibt ja die unglaublichsten Indikatoren und die werden graphisch dargestellt und eine Raketenwissenschaft sollte dieses Russending (MT4) ja wohl nicht darstellen... :confused:;) Es geht, aber ich frage mich nur wie :confused: Mit anderen Worten: Wenn ich mit ATR schon eine Range habe, die ich auch handeln kann indem ich den SL darauf setze, so muss ich die doch anders abbilden können als in einer Kurve... die letzten Endes ja genau so funktioniert, wie ich es haben will, nur eben nicht als Kanal sondern als Kurve.... |
Kannst Du Dein Gerät mal hoch laden? Von mir aus in ner PN.
Aber das Prinzip des ATR scheint eigentlich nicht für nen Kanal gedacht zu sein... |
.... Mein Gerät...? Was für ein Gerät....?
|
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Zitat:
Du solltest dich mit den Indikator-Buffer auseinandersetzten und die Funktionen SetIndexStyle() und SetIndexBuffer() machen nach der Übergabe der Werte an den Inikator-Buffer genau das, was du oben willst. Code:
|
Zitat:
Zitat:
|
Zitat:
|
Ähm... ich glaube, wir habe da aneinander vorbeigeredet...
Den gibt es noch gar nicht... sonst würde ich ja gar nicht die Frage stellen, wie es funktioniert.. :rolleyes: .. nämlich wie ich die Closes der Kerzen miteinander verbinden kann oder noch genauer: Wie ich die ATR-Werte der jeweiligen Kerzen miteinander verbinden kann, so dass ein Kanal entsteht / abgebildet wird.... Problem ist: Ich habe die Kerze 85 und 84 und die dazugehörigen ATR-Werte. Wie verbinde ich die dann, von mir aus mit wie folgt schematisch dargestellt: PHP-Code:
|
Liste der Anhänge anzeigen (Anzahl: 1)
Ähm... nö. :rolleyes:
Könntest vielleicht höchstens die ATR-Formeln auf Highs und Lows berechnen... Nen Breakout mit dem ATR? Wie soll das aussehen? Der misst doch nur, ob die Vola, genauer gesagt die Range zulegt... Scheint auch gar nicht für Signale gemacht zu sein, sondern nur um eben die Vola darzustellen... Wo soll die denn aus- oder einbrechen? Um klare Signale für nen EA zu bekommen, könnte man vielleicht einen ATR auf 7 und einen Weiteren auf 14 stellen. Wenn dann der Schnelle den Langsamen kreuzt... Siehe MAs :D oder MACD oder Stochastik und was es Alles gibt... Aber ich versuch zur Zeit selber nebenher nen eigenen Indi zu proggen. Versteh aber nur Bahnhof. :( |
Da verbindet man keine Kerzen miteinander, sondern lässt diese miteinander verbinden. Und das geht nur sinnvollerweise über einen Indikator.
Wie @MA-EA bereits geschrieben hatte, versteht er nur Bahnhof. Und warum? Weil er wieder den Formel1-Wagen fahren will und nicht mal die einfachste Fahrpraxis hat. @MA-EA, wie oft soll ich Dir das eigentlich noch schreiben? Schaue Dir doch einfach bestehende und funktionierende einfache!!! Indikatoren an, wie die geschrieben wurden. Nehme Dir jede Zeile vor und analysiere, was da steht und was die Funktionen und Variablen bedeuten. Nur so wird das was und nicht durch wildes Rumgefummel. traderdoc |
Ok, dann schreibe ich "Wie man die ATR-Werte der Kerzen durch einen Indikator miteinander verbinden lassen kann".
Tja - was sol ich sagen. Das Problem bzw. die Problemstellung wird hier - mal wieder - nach 2 Seiten Diskussion mal wieder hinterfragt, statt programmiertechnisch der Lösung näher zu kommen. Schade eigentich für dieses Forum.... |
Ich möchte mich hiermit höchstoffiziell dafür entschuldigen, erst jetzt eingegriffen zu haben. Ich hatte mir etwas Urlaub gegönnt.
So, nachdem wir das nun geklärt haben, bleibt es aber dabei, dass ein Indikator diese Aufgabe lösen könnte. Ich werde aber nun keinen Code dazu hier einstellen. Einen Indikator schreiben ist auch schwieriger als einen EA schreiben. Es bleibt deshalb bei dem vorher von mir beschriebenen Vorgehen. Die Problemstellung muss immer hinterfragt werden, bevor eine Lösung angeboten und erarbeitet wird. Und das hat bisher hier in diesem Forum ganz gut funktioniert. Stell Dir vor, dass wäre erst nach 10 Seiten Diskussion passiert. traderdoc |
@traderdoc Da sind wir einer Meinung, dass ein Indikator diese Aufgabe lösen könnte. Ich könnte mir auch nicht vorstellen, was diese Aufgabe sonst noch lösen könnte. Klar ein Indikator! Was schreiben wir denn hier? Indikatoren und EAs . Wobei innerhalb der EAs die Funktion auch durch einen Indikator dargestellt werden kann. Und wenn nur zur optischen Verdeutlichung / Kontrolle.
Ich frage mich nur, wieso eine Problemstellung hin- und her- und durchgekaut und die Hintergründe erfragt werden mussen, wenn ich doch nur eine einfache Frage hier stelle, nämlich wie ich die ATR-Werte von Kerzen - durch Code - miteinander verbinden lassen will. Wenn hier jemand fragt, wie eine Linie eingefärbt werden kann, so gebe ich ihm die Codeschnipsel PHP-Code:
PHP-Code:
Der Fragesteller will eine Linie einfärben und will sie nicht gestrichelt oder einen Ton hören. Insofern widerspreche ich vehement, dass die grundlegende Problemstellung hinterfragt werden soll oder muss. Und wenn: Die Problemstellung, die ATR-Werte mittels Line verbinden zu lassen, offenbarte ich bereits ganz zu Anfang. Und jetzt nach 2 bzw. 3 Seiten wird noch immer nicht auf einen konstruktiven Lösungsversuch hingearbeitet. Aber ok. Konstruktive - UND KOSTENLOSE - Antworten sind ja freiwillig. |
Siehst Du und da liegt der Unterschied. Es ist eben nicht mit einer einfachen Linie getan. Diese dafür notwendige Lösung ist ein komplexes Gebilde!
So was willst Du denn nun? Ne komplette Lösung? Wirst Du wahrscheinlich nicht bekommen. Was machen wir nun? traderdoc |
Zitat:
Du bist auf dem völlig falschen Dampfer. Du brauchst hier kein ObjectSetInteger() oder ähnliches. Informiere dich mal über Indicator-buffer und die Funktionen SetIndexBuffer() und SetIndexStyle(). |
Ne komplette Lösung wäre wohl zuviel verlangt, auch wenn sie nicht abgelehnt werden würde.
Ein komplexes Gebilde? Skizieren doch mal das Gerüst. Alleine schon, dass ich weiß , in welche Richtung ich forschen muss. Mir ist schon klar, dass es nicht mit ein, zwei , drei Zeilen Code getan ist, das zeigte mir mein durch mich erquälter Pivot-Indikator, aleine schon den Tagesanfang und das Tagesende festzulegen und das für die letzten 14 Tage. Aber das hier ist wieder was anderes. |
P.S. Pivot-Indikatoren gibt es wie Sand am Meer, dennoch wollte ich einen programmieren um ihn zu verstehen. Und ich schaffte es nach langem hin und her. Hätte auch kürzer / schneller gehen können.
|
Na dann sollte doch dieser Indikator keine so große Herausforderung darstellen.
traderdoc |
Zitat:
Zur Indexierung hab ich dir schon was geschrieben. Wie lautet deine Frage jetzt konkret?? :confused: ---Leopold--- |
Zitat:
Wenn du die Verbindung noch mit OBJ_TREND machen willst, hier deine Antwort: Code:
//+------------------------------------------------------------------+ |
@traderdoc : Also bis heute schätzte ich Deine Beiträge ja sehr... aber jetzt fehlen mir hinsichtlich der Konstruktivität Deines letzten Beitrages
Zitat:
@Leopold : Ok. So weit war ich schon. Aber wie würdest Du die time-Variablen time1,price1,time2,price2 bei zB 5 - Minuten - Kerzen mit welchen Werten "befüllen"? Für die "prices" nehme ich den Wert der jeweiligen ATR. Aber für "time", da kann ich dem MT4 ja nicht sagen "Nimm die 85te Kerze ab der aktuellen und das ist time1" |
Wenn Du bereits einen Indikator programmiert hast, dann sind doch schon Erfahrungen vorhanden. Ich sagte bereits, dass diese Aufgabe über einen Indikator gelöst werden kann.
Wo liegt denn nun das Problem? Ich verstehe zunehmenderweise nicht, was Du hier eigentlich willst. Den kompletten Code wird es wahrscheinlich nicht geben. Wieso fehlen Dir da die Worte? traderdoc |
@traderdoc Ja, es sind schon Erfahrungen vorhanden und sie reichen aus, um zu wissen, dass das für mich bestehende, angeführte Problem durch einen Indikator gelöst werden kann und nicht zB durch diskrete Rechenergebnisse, denn ich will ja, wie anfangs erwähnt, die Kurve darstellen, um sie optisch zu erfassen.
Nein, sie reichen noch nicht aus, um das für mich bestehende Problem zu lösen. Nein, ich will nicht so vermessen sein, den kompletten Code zu bekommen, sondern nur einzelne konstruktive Hinweise, aber auch wenn ich dafür im Forum "Codeschnipsel" sein sollte, dann ziehe ich mit dem Thread gerne um . Mein letzter Beitrag an @Leopold hinsichtlich time1,price1,time2,price2 ist das, was mir von Anfang an klar war, aber wie schreibe ich dem MT4 zB die "time1" - in Sekunden seit x.x.1970 oder wie sonst? Gibt es eine andere, elegantere Möglichkeit? Ich würde gerne mal so ein paar Codeschnipsel sehen, wie andere Programme das bestimmen. |
Aber irgendwie reichts nicht, zu erklären, was Du mit Kerzen verknüpfen meinst. Wenn Du irgendwelche Gaps mit einbeziehen willst: Der ATR macht das anscheinend bereits.
Wie man die Vola mit nem Kanal darstellen soll, weiß ich immer noch nicht. :confused: Hilfreich wärn vielleicht mal Skizzen oder Beispiel-Bilder, wie das Ganze aussehn soll. Und falls ich sie nicht übersehn habe, Beispiel-Formeln. Bis jetzt kapiert hier irgendwie Niemand, was Du eigentlich willst. :confused: ;) |
Dann sage ich es mal mit ganz einfachen Worten.
Der Indikator lebt von Arrays. D.h. alle auf dem Chart auszugebenden Werte (z.B. auch Linien) müssen vorher in Arrays geschrieben werden. Das ist eigentlich die ganze Kunst. Und nun musst Du Dir nur noch überlegen, welche Werte in das (die) Array(s) geschrieben werden. traderdoc |
@MA-EA: Man nehme zB einen gleitenden Durchschnitt, zB 50er eines beliebigen Timeframe und trage die zu der jeweiligen Kerze zugehörige ATR mit Faktor x in positiver und negativer Richtung auf, was als Einstieg oder Ausstieg dienen mag. Diese Werte x*ATR verbinde man zu einem Kanal.
So , jetzt bin ich von A-Backen auf Kuchenbacken gekommen :confused: Ich hätte sollen schreiben, dass ich den zu jeder Kerze gehörigen gleitenden Durchschnitt berechnen und die jeweiligen Punkte miteinander verbinden möchte. Aber dann wäre wohl der Hinweis gekommen "Dann nimm doch gleich den EA, der mitgeliefert wird" oder die Frage, ob es sich um EMA, SMA handeln soll oder sich der GD auf Close, High, Low oder elfundachtzig mal das Open oder sonstwas beziehen soll. Nun gut. @traderdoc Danke für den Hinweis. Ich muss mich also für arrays fit machen. Ich habe es befürchtet, weil ich es auf den ersten Blick furchtbar kompliziert finde (meine 14-Tage-Pivots kommen ohne arrays aus, was den Code natürlich aufbläht :confused: ). Aber ok, ich weiß nun die Richtung. Danke. |
Zitat:
Das finde ich jetzt echt witzig. :D Hast du dir den MA Indikator überhaupt angesehen?? Spätestens dort müsste dir das bewusst worden sein. Aber gut, vielleicht ist jetzt letztendlich alles geklärt. ---Leopold--- |
Wenn Dein Pivot-Indikator wirklich so funktionieren soll wie eben ein richtiger Indikator, dann geht da nur über Arrays!
Auch alle anderen Indikatoreigenschaften, die man dann über Variablen einstellen könnte bedingen die vorgegebene Programmstruktur üblicher Indikatoren. Daher würde ich Dir tunlichst empfehlen, jegliche Zeit nicht damit zu verschwenden, keine Arrays zu benutzen. Dass Arrays nicht einfach sind, davon kann z.B. @MA-EA ein langes Lied singen. Aber sie sind nun mal notwendig bei Indikatoren und auch ansonsten vereinfachen sie die Programmierung. Daher: Richtig oder gar nicht! traderdoc PS. Ich denke, nun ist für die Vorgehensweise alles geschrieben worden. Der Rest liegt an Dir, und da sind wir wieder bei dem Post, wo Dir die Worte fehlten. Evtl. hast Du sie aber nun. |
@Leopold Ich hsah mir Deinen Code an. Der brachte mich hinsichtlich der Bestimmung der X-Koordinaten nicht weiter. Dass das Format "time1, price1.." bestehen muss, war mir klar und ist auch aus der Dokumentation ersichtlich. Was nicht ersichtlich und trivial ist, ist wie "time1" , also die Zeitkomponente, angewendet wird, also was "reinkommt", ich schreibe ja nicht einfach in H1 "09.08.2019, 11:38:00" als "time1".
@traderdoc Die Arrays, da sind wir uns nun einig. Ich habe es ja befürchtet. Aber ok. Ich werde versuchen, meinen Pivot-Indikator dahingehend umzuschreiben. Nö, da wo mir die Worte fehlten, sind wir weiter, denn ich habe inzwischen von Dir auf meine Frage keine Gegenfrage oder wie zu dem Zeitpunkt keine Feststellung bekommen. Sind aber Feinheiten. Ich bin Dir ja nicht böse, wie solte ich auch, aber wenn mich jemand etwas fragt oder ich auf etwas antworte, dann bin ich so konkret und definiert wie möglich oder wenn etwas nicht verständlich ist, so hake ich im konstruktiven Sinne nach. Das bläht einen Thread nur auf. Es wäre doch schön , wenn es so laufen würde: "Frage -> Anwort" oder "Frage -> Verständnisfrage -> Antwort auf die Verständnisfrage -> Antwort auf die ursprüngliche Frage", sofern nicht weitere Verständnisfragen anfallen. Ich meine, Deine vielfältigen - wertvollen - Beiträge habe ich gelesen und weiß, dass Du davon ein Lied singen kannst, wo Du gerade auch solche Dinge angesprochen hast. Ich meine, wir sind hier zwar in einem Dialog, aber leider nicht in einem, der in 5 Minuten beendet ist, sondern sich aufgrund der Natur der Sache in der Regel über mehrere Tage hinstreckt anstelle in einem Gespräch. Da wäre es doch schön, wenn man schnell auf den Punkt kommt. Mag natürlich auch sein, dass ich zu ungeduldig bin. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum