|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Mittels Comment() geht das tatsächlich nur über Leerzeichen.
Ansonsten nur über: Code:
void CreateLabel(string labelname, color col, int xd, int yd, string font, string text, int fontsize) { ObjectCreate (0, labelname, OBJ_LABEL, 0, 0, 0); ObjectSetInteger(0, labelname, OBJPROP_COLOR, col); ObjectSetInteger(0, labelname, OBJPROP_BACK, false); ObjectSetInteger(0, labelname, OBJPROP_XDISTANCE, xd); ObjectSetInteger(0, labelname, OBJPROP_YDISTANCE, yd); ObjectSetString (0, labelname, OBJPROP_FONT, font); ObjectSetString (0, labelname, OBJPROP_TEXT, text); ObjectSetInteger(0, labelname, OBJPROP_FONTSIZE, fontsize); } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
||||
Bin Platt
Danke, Danke traderdoc!
Noch mal auch danke für deine Bücher Empfehlungen, sind echt Klasse zum lernen! Mit den Code muss ich mich erst mal beschäftigen, wenn ich es fertig habe melde ich mich wieder; Dir auch schon mal schöne Vorfeiertage oder Feiertage..... Lieben Gruß Franz _____________________________________ Erfolg ist die Kunst, unbemerkt Fehler zu machen. |
|
||||
Das war eine Geburt!
Guten Morgen
@traderdoc das war eine Nacht Aufgabe! Wenn es deine Zeit erlaubt schau doch mal über den Code was du da von hält als Profi. Andere Pogger dürfen natürlich auch. PHP-Code:
1. Wo kommt die chart_id her von Broker ? 2. if(!ObjectCreate(chart_id,obj_name,OBJ_LABEL,0,0,0 )) Wo für stehen die drei Nullen am Ende. 3. Warum muss vor ObjectCreate ein ! stehen. Zu hundert Prozent ist mir das ganze noch nicht klar. Oder kann man das ganze auch anders lösen? Den Code darf jeder verwenden , Lieben Gruß Franz _____________________________________ Wo viel verloren wird, ist manches zu gewinnen. Wolfgang Goethe |
|
|||
Ich bin mal so frei und korrigiere Kleinigkeiten.
Code:
//+------------------------------------------------------------------+ //| Ausgabe_Rechts1.mq4 | //| Copyright 2015, Franz-Josef Teutrine | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Franz-Josef Teutrine" #property link "https://www.mql5.com" #property version "1.00" #property strict extern string text1 = "Hallo traderdoc das war ein guter Tipp!"; extern int x = 350; extern int y = 10; extern int gross = 20; string obj_name; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- obj_name="label_object"; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectDelete(obj_name); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { long chart_id = ChartID(); Comment ("Chart Nummer ",chart_id); if(ObjectFind(obj_name) < 0) { if(!ObjectCreate(chart_id,obj_name,OBJ_LABEL,0,0,0)) { Print("Error: can't create label! code #",GetLastError()); return(0); } } ObjectSetInteger(chart_id,obj_name,OBJPROP_COLOR,clrWhite); ObjectSetString(chart_id,obj_name,OBJPROP_TEXT,text1); ObjectSet(obj_name,OBJPROP_XDISTANCE,x); ObjectSet(obj_name,OBJPROP_YDISTANCE,y); ObjectSet(obj_name, OBJPROP_FONTSIZE,gross); return(0); } //+------------------------------------------------------------------+ - ObjectDelete(obj_name); braucht in diesem Falle nur in OnDeinit() - extern string text1 = "Hallo traderdoc das war ein guter Tipp!"; extern int x = 350; extern int y = 10; extern int gross = 20; Als extern deklariert und initiiert, damit über F7 eine Änderung möglich ist, ohne! in den Code zu gehen und jedes mal neu zu compilieren. - if(ObjectFind(obj_name) < 0), d.h. nur wenn das Objekt noch nicht! angelegt ist, wird es über ObjectCreate(chart_id,obj_name,OBJ_LABEL,0,0,0) erzeugt zu 1.: wird automatisch von MT4 vergeben. zu 2.: Die erste 0 steht für das Hauptfenster, die zweite 0 und dritte 0 stehen für Default-Einstellungen, die dann über ObjectSet() entsprechend geändert und angepaßt werden, ohne jedesmal das Objekt zu löschen und neu zu erzeugen. zu 3. das ! an dieser Stelle steht für das logische NOT, d.h. die Funktion ObjectCreate() gibt bei erfolgreicher Generierung des Objektes ein true zurück. Wäre das Objekt nicht erzeugt worden, dann ein false. Not false wäre zusammen ein logisches true und damit springt das Programm in den Fehlerteil. Es muß da kein ! stehen, nur dann würde der EA in den Fehlerteil springen, wenn das Objekt erzeugt worden wäre, was nicht Sinn der Übung ist. Oder der Fehlerteil würde dann weggelassen. Dann wäre aber auch keine if-Abfrage notwendig oder dann als if ... else- Abfrage. Viel Spaß beim Lernen! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
||||
Immer sauber poggen!
@traderdoc, Danke für deine schnelle Antwort und deine Korrektur.
Durch dein erklären und zeigen kann ich nur lernen, und da für bin ich hier in Forum. Von den globalen variablen habe ich schon gehört. Aber das ist mir bis jetzt noch nicht ganz klar. Habe im Buch nach geschaut, ich bin Seite 105 (Schleifen) und globalen variablen kommt auf Seite 126. Also nicht mehr so lange hin. Wie ich das bis jetzt verstehe werden sie nur in Funktionen verwendet, richtig? - ObjectDelete(obj_name); braucht in diesem Falle nur in OnDeinit() Da bin ich nicht drauf gekommen. Aber das macht Sinn. Meine erste Grund Idee hatte ich auch extern deklariert, aber dann bekam ich den EA nicht ans Laufen, hatte zu viele Fehler drin. Und in der fortgeschritten Nacht wollte ich es nicht mehr um schreiben. Na klar ist das auf jeden Fall besser. Mit der F7 Taste kannte ich noch nicht. Jetzt brauche ich den EA nicht immer Entfernen und neu starten. Ganz toller Tipp traderdoc !!! zu 1.: OK, das ist mal so. zu 2.: die erste 0 das hatte ich mir auch so gedacht. - die zweite 0 und dritte 0 stehen für Default-Einstellungen, - das muss ich noch lernen. Schon mal gut zu wissen das man Objekte nicht bei jeden Tick neu erzeugen muss. zu 3.: Ja das war mein Problem, das es immer in den Fehler Teil sprang. Bei einen ! tat es das nicht und das war für mich erst mal ok. (habe ich mir anders wo ab geschaut.) Aber jetzt mit deiner Erklärung weis ich auch wo für es steht. (traderdoc du kannst super Erklären, könntest auch Beruflich einen guten Lehrer ab geben) So jetzt erst mal genug. Wünsche dir traderdoc und allen anderen hier von mir ein frohes und gesegnetes Weihnachtsfest. Last es euch richtig gut gehen! Lieben Gruß Franz _____________________________________ Lernen macht Spaß, wenn man merkt das man seinen Ziel immer einen Schritt näher kommt! (Von mir) |
Lesezeichen |
Stichworte |
befehl, befehl comment, comment, mql4, programmierung, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|