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: 4862
Beiträge: 42973
Benutzer: 7.164
Aktive Benutzer: 79
Links: 83
Wir begrüßen unseren neuesten Benutzer: Shyam
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- Shyam
vor einer Woche
- Nobby2000
vor einer Woche
- Wacked1
vor 3 Wochen
- Util
vor 4 Wochen
- Hardy61

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 29
Gesamt: 29
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 12.06.22
Neues Mitglied
 
Registriert seit: Nov 2013
Ort: Wolfsburg
Beiträge: 2
Casch befindet sich auf einem aufstrebenden Ast
Standard Senkrechte Linie oder Pfeil bei Positionseröffnung zeichnen

Hallo,

ich möchte gerne meinen EA mit dem Abschicken eines OrderSend Befehls eine Senkrechte Linie in den Chart zeichnen lassen. Gerne aber auch einen Pfeil in Richtung der Position (also long oder short) einzeichnen lassen. Gerne aber auch beides.

Irgendwie bekomme ich das nicht hin und wäre für Hilfe dankebar!

Danke und Tschüß
Casch
Mit Zitat antworten
  #2 (permalink)  
Alt 23.06.22
Mitglied
 
Registriert seit: Jun 2011
Ort: Minsk, Weißrussland
Beiträge: 87
Bobs befindet sich auf einem aufstrebenden Ast
Standard

Schematisch könnte es so aussehen:
if(OrderSend(...)>0) ObjectCreate(...);
Mit Zitat antworten
  #3 (permalink)  
Alt 26.06.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 584
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Casch Beitrag anzeigen
ich möchte gerne meinen EA mit dem Abschicken eines OrderSend Befehls eine Senkrechte Linie in den Chart zeichnen lassen. Gerne aber auch einen Pfeil in Richtung der Position (also long oder short) einzeichnen lassen. Gerne aber auch beides.
Der MT kann von sich aus schon kleine Pfeile setzen (sieht aus wie WingDings Nummer 240, nur halt kleine Größe von ca. Arial/7). Dazu definierst Du einfach die Farbe, z.B grün für buy und rot für sell und setzt das in die OrderSend() Funktion mit ein, etwa so:
Code:
// ===== Benutzereingabe, damit man es ändern kann
extern color ARROWGREENCOLOR = clrLime;    // green arrow
extern color ARROWREDCOLOR   = clrMagenta; // red arrow
// ===== Prefix für all unsere Objekte festlegen
string PFX = "MyEA_";                      //ForVerticalLine

// ===== Order aufgeben
int op_tkt = 0;    // opening position ticket number
op_tkt=OrderSend(Symbol(),OP_BUY,LotSize,
                 Ask,3,             //OpenPrice,Slippage
                 0,0,               //SL,TP
                 "",0,0,            //Comment,Magic,Expire
                 ARROWGREENCOLOR);  //ArrowColor

// ===== nach erfolgreicher Order
if(op_tkt>0)                                 //OrderSendSuccess
{  
   if(OrderSelect(op_tkt,SELECT_BY_TICKET) ) //SelectTicket
   {
      MarkCreate(OrderTicket(),              //ForUniqueName
                 OrderOpenTime(),            //LineData
                 ARROWGREENCOLOR);           //LineColor
   }
}

// ===== Markierung erzeugen (hier vertikale Linie)
bool MarkCreate(int TckNo, datetime time, color dircol)
{
   string name   = PFX+"#"+IntegerToString(TckNo); //expl:MyEA_#123456
   string vistxt = "";                             //VisibleTextAtLine
   if(dircol==ARROWGREENCOLOR) vistxt="long";
   if(dircol==ARROWREDCOLOR  ) vistxt="short";

   ResetLastError();
   if(ObjectFind(0,name)!=0)
      if(!ObjectCreate(0,name,OBJ_VLINE,0,time,0))
         { Print(__FUNCTION__," failed, Code=",_LastError); return(false); }

   ObjectSetInteger(0,name,OBJPROP_COLOR,dircol);        //LineColor
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_DASHDOT); //SameAsOrderLines
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);             //SameAsOrderLines

   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);         //KeepObjectListClean
   // ===== hat Vor- und Nachteile
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);    //CanUserDeleteLine?
   ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
   // ===== true geht auch über alle Unterfenster
   ObjectSetInteger(0,name,OBJPROP_BACK,false);          //TimeStampVisible?
   // ===== sichtbare Hilfe
   ObjectSetString(0,name,OBJPROP_TEXT,vistxt);          //DescriptionOnLine
   // ===== unsichtbare Hilfe
   ObjectSetString(0,name,OBJPROP_TOOLTIP,vistxt);       //Tooltip
   return(true);
}
Wenn Du die Linien behalten willst, solltest Du SELECTABLE,true machen, damit Du sie wenigstens schnell manuell löschen kannst. Sollen die Linien verschwinden, sobald Du die Order geschlossen hast, machst Du umgekehrt dasselbe wie bei der Aufgabe:
Code:
// === .... OrdersSelect ....
if( OrderClose(OrderTicket(),OrderLots(),                 //CloseSuccess
               OrderClosePrice(),0,clrNONE) )             //NoArrow
{
   ObjectDelete( PFX+"#"+IntegerToString(OrderTicket() ); //DeleteLine
}
else                                                      //CloseError
{
    Print("OrderClose failed, Code=",_LastError);
}
Hoffentlich ist bei dem Copy&Paste nix daneben gegangen.
AVT
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 06:20 Uhr.





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