|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Auslesen von Objekten
Hallo zusammen,
habe da nochmal eine Frage. Ich habe hier einen Indikator, welchen ich in einen EA einbinden möchte. Jedoch lässt sich das hier nicht mit iCustom bewerkstelligen, da dieser keine Werte ausgibt, sondern mit Farben arbeitet. Dieses Gebiet betrete ich dann aber zum ersten Mal... Ich habe mir schonmal sagen lassen, dass man Objekte "auslesen" kann. Denke ich habe in der MQL4 Reference, das richtige gefunden, komme aber nicht so weit damit. Vielleicht habe ich auch ein Verständnisproblem. Diese Zeile Code:
color oldColor=ObjectGet("hline12", OBJPROP_COLOR); Nach meinem Verständnis müsste sie dann für meinen Inidi wie folgt aussehen Code:
color T1=ObjectGet("FXVTF1", OBJPROP_COLOR); Wollte das nun durch einen Print anzeigen lassen, sprich ob die Farbe nun auch ausgegeben wird (um dann damit weiter arbeiten zu können), doch es passiert nichts. Wo liegt mein Fehler? Bin für jede Hilfe dankbar. Grüße |
|
|||
Wenn das Object u.a. so heisst, dann wäre
Code:
color T1=ObjectGet("FXVTF1", OBJPROP_COLOR); traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ja, richtig.
Visuell sind die Drei mit T1, T2 und T3 bezeichnet. Wenn man jedoch mit der Maus darüber zeigt, dann wird einem FXVTF1, FXVTF2 und FXVTF3 angezeigt. Ja, man sieht dann auch Werte dabei stehen, die sich jedes Mal verändern, wenn man den Mauszeiger wieder drüber hält. Scheinen wohl Werte aus anderen Timeframes zu sein. Sollte mir denn bei einem Print nun die "ausgelesene" Farbe angezeigt werden? Code:
Print(T1); Geändert von Gondiego (03.09.19 um 20:09 Uhr) |
|
|||
Nein, Werte anderer TFs sind das nicht.
Was gibt er denn aus bei Print(T1)? Was stehen nach dem Drücken von Strg + b für Objekte in der Liste? traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Nichts. Das ist ja mein Problem, bzw. kann da noch nicht nachvollziehen warum.
Auf dem Bild ist zu sehen, was die Tabelle so hergibt. |
|
|||
Ok und wenn Du jetzt in dieser Tabelle mit der Maus z.B. auf eines der drei Objekte klickst und dann bei "Bearbeiten" danach auf den Reiter "Allgemein" gehst, was siehst Du da für eine Farbe rechts?
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
geht hier:
Code:
string Rect1Name="FXVTF1"; //these are colored letters Wingdings "n" string Rect2Name="FXVTF2"; string Rect3Name="FXVTF3"; color TestBlue=clrBlue, TestRed=clrRed; Print(" Blue="+IntegerToString(TestBlue)+" Red="+IntegerToString(TestRed) ); //Get values long T1Color=ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR); //16711680 =Blue 255 =Red Print(" color "+Rect1Name+"="+IntegerToString(T1Color) ); long T2Color=ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR); //16711680 =Blue 255 =Red Print(" color "+Rect2Name+"="+IntegerToString(T2Color) ); long T3Color=ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR); //16711680 =Blue 255 =Red Print(" color "+Rect3Name+"="+IntegerToString(T3Color) ); |
|
|||
Erstmal eine Danke @traderdoc und @AVT für die Hilfe.
Werde heute wahrscheinlich nicht mehr dazu kommen, das auszuprobieren bzw. muss erst mal sehen, was da in dem Code genau passiert bzw. wie ich damit jetzt weiter arbeiten kann. Wollte aber zumindest schonmal einen Dank dalassen. Grüße |
|
|||
Danke nochmal für den Code @AVT
Mich irretieren jetzt noch was die Zahlen in den Kommentaren. Muss ich diese nutzen wenn ich eine if-Abfrage der Farbe starte oder kann ich da mit TestBlue und TestRed arbeiten? Letztendlich ist mein Ziel, immer alle drei in betracht zu ziehen, spriche wenn alle drei blau sind, soll es ein UP-Trend sein, wenn alle rot, dann ein DOWN-Trend. Grüße |
|
|||
Zitat:
Um die Farbe eines Objektes zu auszulesen, nimmt man ObjectGetInteger(...), man erfragt also eine Integer-Zahl (genau gesagt sind die "Farbzahlen" vom Typ long integer). Da es aber keine (jedenfalls ist mir so was nicht bekannt) Umwandlung von IntegerToColor oder sowas gibt, ist das einfachste mit dem Zahlwert zu arbeiten. Zitat:
Code:
long UpColor=16711680; // Blue long DnColor=255; // Red if( ObjectGetInteger(0,FXVTF1,OBJPROP_COLOR)==UpColor && ObjectGetInteger(0,FXVTF2,OBJPROP_COLOR)==UpColor && ObjectGetInteger(0,FXVTF3,OBJPROP_COLOR)==UpColor ) { //dann kaufen } |
Lesezeichen |
|
|