|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Zitat:
Wenn du die Verbindung noch mit OBJ_TREND machen willst, hier deine Antwort: Code:
//+------------------------------------------------------------------+ //| Create a trend line by the given coordinates | //+------------------------------------------------------------------+ bool TrendCreate(const long chart_ID=0, // chart's ID const string name="TrendLine", // line name const int sub_window=0, // subwindow index datetime time1=0, // first point time double price1=0, // first point price datetime time2=0, // second point time double price2=0, // second point price const color clr=clrRed, // line color const ENUM_LINE_STYLE style=STYLE_SOLID, // line style const int width=1, // line width const bool back=false, // in the background const bool selection=true, // highlight to move const bool ray_right=false, // line's continuation to the right const bool hidden=true, // hidden in the object list const long z_order=0) // priority for mouse click { //--- set anchor points' coordinates if they are not set ChangeTrendEmptyPoints(time1,price1,time2,price2); //--- reset the error value ResetLastError(); //--- create a trend line by the given coordinates if(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)) { Print(__FUNCTION__, ": failed to create a trend line! Error code = ",GetLastError()); return(false); } //--- set line color ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- set line display style ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); //--- set line width ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); //--- display in the foreground (false) or background (true) ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- enable (true) or disable (false) the mode of moving the line by mouse //--- when creating a graphical object using ObjectCreate function, the object cannot be //--- highlighted and moved by default. Inside this method, selection parameter //--- is true by default making it possible to highlight and move the object ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); //--- enable (true) or disable (false) the mode of continuation of the line's display to the right ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right); //--- hide (true) or display (false) graphical object name in the object list ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- set the priority for receiving the event of a mouse click in the chart ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- successful execution return(true); } |
|
|||
@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"
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
@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.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
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. 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. |
|
|||
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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
@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 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 ). Aber ok, ich weiß nun die Richtung. Danke.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Zitat:
Das finde ich jetzt echt witzig. 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.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
@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.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
Lesezeichen |
|
|