|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Order mit Objekten markieren
Hallo.
Hab mal ein bißchen über Objekte gelesen. Um besser zu verstehn, was meine EAs eigentlich machen, bzw. um besser durch zu sehn, würde ich gerne Objekte bei Order-Öffnung, OrderModify und OrderClose im Chartfenster setzen (lassen). Und zwar möglichst genau an den Stellen, wo die entsprechenden Aktionen vom EA gemacht wurden. Ich dachte mir, wenn er die Order gesendet hat, soll er sie danach raussuchen und dann erst mal OrderOpenPrice() und OrderOpenTime() mit Pfeil hoch für Buy und Pfeil runter für Sell machen. Möglichst genau da, wo geöffnet wurde, also auf Höhe der Punkte-Skale und an entsprechender Stelle der Zeit-Skala. https://docs.mql4.com/objects/objectcreate https://docs.mql4.com/constants/obje...ts/enum_object Muss ich irgendwas beachten? Gibts irgendwelche Fallstricke oder Fettnäpfchen? Oder brauch ich einfach nur entsprechende Befehle und Deklarationen in meinen EA schreiben? Nach dem Öffnen noch mal ne Order-Suche gleich darunter, "Kooardinaten" auslesen und Pfeile setzen lassen. Das Selbe nach dem Trailing-Stop nach ziehn und nach Order schließen. Dachte ich mir. |
|
|||
Hallo.
Wär wohl einfacher, die letzte(n) geschlossene(n) Orders raus zu suchen und mit entsprechenden Pfeilen für die jeweilige Einstieg-Richtung zu markieren. Ein X da, wo sie geschlossen wurden. Code:
for(i=OrdersTotal()-1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){ if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MN&&OrderSymbol()==Symbol()) { ObjectCreate( NULL, "Open_Buy_2MA_EA", OBJ_ARROW_UP, 0, OrderOpenTime(), OrderOpenPrice() ) ; ObjectCreate( NULL, "Clos_Buy_2MA_EA", OBJ_ARROW_STOP, 0, OrderClosePrice(), OrderCloseTime() ) ; } if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MN&&OrderSymbol()==Symbol()) { ObjectCreate( NULL, "Open_Sel_2MA_EA", OBJ_ARROW_DOWN, 0, OrderOpenTime(), OrderOpenPrice() ) ; ObjectCreate( NULL, "Clos_Sel_2MA_EA", OBJ_ARROW_STOP, 0, OrderClosePrice(), OrderCloseTime() ) ; } } } Die Pfeile können ja irgendwie noch verschiedene Eigenschaften haben, wie Dicke, Farbe und so. Kann man diese Eigenschaften in dem ObjectCreate Befehl einfach in Klammern neben den Objekt-Typ schreiben? Also z.B. ... OBJ_ARROW_UP ( Dicke, Farbe,...) ... weiter-mit-den-Koordinaten-und-so.... ); ? |
|
|||
Zitat:
Unter Index kannst Du OBJ_ARROW_DOWN eingeben, darauf erscheint rechts die Seite mit all den Objekten. Nun klickst Du dort auf OBJ_ARROW_DOWN, darauf erscheint ein Beispiel. Wie Du siehst kannst Du die Eigenschaften nicht einfach mit dem ObjectCreate() erzeugen, sondern mußt - nachdem das Objekt erzeugt wurde - ihm Eigenschaften zuweisen. Welche möglichen Eigenschaften das bei dem Arrow Down sind, siehst Du in den Funktionsparametern der Beispiel Funktion zum Erzeugen von Runter-Pfeilen, hier also "const color clr" die Farbe, "const ENUM_LINE_STYLE style" die Art des Randes, "const int width" die Größe. Innerhalb der Beispielfunktion siehst Du - zuerst wird ObjectCreate gemacht - dann Farbe mit ObjectSetInteger(...OBJPROP_COLOR,clr) - dann der Rand mit ObjectSetInteger(...OBJPROP_STYLE,style) - dann die Größe mit ObjectSetInteger(...OBJPROP_WIDTH,width) So, nachmachen AVT |
Lesezeichen |
|
|