Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43251
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 12 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 433
Gesamt: 434
Team: 0
Team:  
Benutzer:  murkel
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 14.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard 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.
  #2 (permalink)  
Alt 16.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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.... ); ?
  #3 (permalink)  
Alt 17.01.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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 AVT
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------