Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Orders mit Objekten markieren (http://www.expert-advisor.com/forum/showthread.php?t=6313)

MA-EA 14.01.19 18:27

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. :rolleyes:

MA-EA 16.01.19 10:32

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() ) ; } } }

Das müsste soweit erst mal richtig sein.

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.... ); ?

AVT 17.01.19 15:09

Zitat:

Zitat von MA-EA (Beitrag 42058)
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.... ); ?

Dein Metaeditor hat unter Hilfe ein MQL4 Referenz.
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 :D AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:01 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