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: 43253
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.01.21
Neues Mitglied
 
Registriert seit: Mar 2019
Beiträge: 12
RollsReus befindet sich auf einem aufstrebenden Ast
Standard Manueller Entry => EA als TradeVerwaltung

Hallo zusammen,
habe nun seit einiger Zeit keine EAs mehr geschrieben, möchte aber nun einen aufsetzen, der meinen Trade nach meinem manuellen Eingang verwaltet. Ich habe in Erinnerung, dass ich mit der magic Number arbeiten muss, aber meine Kenntnisse sind zu eingerostet, um mein Vorhaben umzusetzen. Der EA soll idealerweise auch mehrere trades gleichzeitig bedienen, wodurch ich vermutlich unterschiedliche magic Numbers benötige bzw vergeben muss. Kann mir jemand auf die Sprünge helfen, welcher Code Schnipsel mir diesbezüglich weiterhilft?

Vielen Dank vorab für Eure Hilfe.
  #2 (permalink)  
Alt 05.01.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RollsReus Beitrag anzeigen
...der meinen Trade nach meinem manuellen Eingang verwaltet.
Was heißt "verwaltet"?


Die MN kann man nach OrderSend nicht mehr ändern. Jedenfalls nicht für die Order, die bereits raus ist. Das muss man vorher Alles managen.
  #3 (permalink)  
Alt 05.01.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Bei einem Manuell geöffneten Trade wirst du die MagicNumber des Trades nicht kennen. Das einfachste ist es einfach alle offenen Orders durchzugehen und diese dann durch den EA zu managen, also den SL z.B. mit einem Tralingstop zu versehen oder einen Trade im Gewinn/Verlust zu schließen
  #4 (permalink)  
Alt 05.01.21
Neues Mitglied
 
Registriert seit: Mar 2019
Beiträge: 12
RollsReus befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,
erstmal vielen Dank für Eure Antworten.
Mit „Verwalten“ meine ich, dass insbesondere der Stop automatisch nachgezogen werden soll nachdem ich die Position manuell eingegangen bin. Das zu coden traue ich mir noch zu. Wofür ich aktuell noch keine Lösung habe ist, wie der EA erkennt dass er zB im Fx-Paar EUR/USD den Trade 1 erkennt und verwaltet und in einem anderen FX-Paar den Trade 2 verwaltet ohne sich gegenseitig in die Quere zu kommen.

Nachtrag: Die Magic Number ins Spiel zu bringen, war nur eine Idee meinerseits. Ich bin für andere Lösungen/Ideen offen und hänge diesbezüglich nicht an der MN
  #5 (permalink)  
Alt 05.01.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Du brauchst OrdersTotal() um alle offenen Orders durchgehen zu können
Mit OrderSelect wählst du die jeweilige Order aus und kannst Sie dann mit allen anderen OrderFunktionen bearbeiten.

Code:
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      // Hier kommt dann ein Teil, welcher die Order verändert

     }
  #6 (permalink)  
Alt 06.01.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Prinzipiell:
1. Eine manuell geöffnete Order besitzt keine MagicNumber.
2. Orders, die nur auf verschiedenen Handelsinstrumenten basieren, benötigen keine MagicNumber.
3. Orders, die auf verschiedenen TimeFrames ein und desselben Handelinstrumentes basieren, benötigen unbedingt eine MagicNumber.
4. D.h. bzgl. 1., sollten manuell geöffnet, mehrere Orders ein und desselben Handelsinstrumentes auf verschiedenen TimeFrames existieren, dann können die nur unterschieden werden, indem beim Öffnen die dort nicht vergebbare MagicNumber in das Kommentarfeld des Auftragsfenster geschrieben wird und später nach OrderSelect() das Kommentarfeld mit OrderComment() ausgelesen wird.
Das Unterscheiden funktioniert aber auch dann nur so lange, die Ursprungsorder nicht teilgeschlossen wurde, weil dann der Inhalt des OrderComments geändert wird. Auch bei geschlossenen Order, die per SL oder TP geschlossen wurden, wird der Comment überschrieben und somit wäre die ursprüngliche Information verloren. Dann hilft nur noch die Orderkennzahlen, wie OpenPrice, OpenTime; Timeframe usw. zur Wiedererkennung in Globale Variablen zu schreiben, die im MT4 unangetastet 30 Tage erhalten bleiben, auch wenn zwischenzeitlich der PC ausgeschaltet oder auf anderem Wege die Verbindung gekappt wurde.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 06.01.21
Neues Mitglied
 
Registriert seit: Mar 2019
Beiträge: 12
RollsReus befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

danke auch für die letzten beiden hilfreichen Antworten. Im aktuellen Szenario würde ich nur ein Closing des gesamten Geschäftes vornehmen. Darüber hinaus würde ich je Währungspaar auch nur einen (einzigen) Trade eingehen wollen und nicht in verschiedenen TimeFrames dasselbe FX-Paar handeln.
So wie ich die Antwort von Traderdoc verstanden habe, würde ich dadurch ein Stück weit Komplexität herausnehmen, die ich vermutlich auch mit dem derzeitigen Wissen nicht abbilden könnte.
Ich würde mein Glück jetzt zunächst mit dem Schnipsel von "Indikator-Trading" versuchen und drauf aufbauend die weiteren Punkte (Stop Loss etc) einbauen.

Vielen Dank bis hierin.
  #8 (permalink)  
Alt 06.01.21
Neues Mitglied
 
Registriert seit: Mar 2019
Beiträge: 12
RollsReus befindet sich auf einem aufstrebenden Ast
Standard

Nach dem ersten Erfolgserlebnis, dass ich beim Kompilieren keine Warnungen erhalten habe, kam in der tatsächlich Nutzung dann leider erstmal die Ernüchterung.

Habe den EA auf einen Trade angewendet, bei dem ich 40 Pips vorne war und habe den Stop Loss händisch auf 20Pips vom Einstand hinbewegt. Da ich bei 1zu1 auf Breakeven möchte (also in dem konkreten Beispiel ab 20 Pips plus), hätte der EA den Stop idealerweise auf Breakeven stellen sollen. Tat er jedoch nicht. Kann ein geneigter Leser auf meinen Code schauen und mir Unterstützung leisten: Vielen Dank vorab!

Code:
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
   return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void deinit()
  {
   
  }
//-------------------------------------------------------------+

int start()

{
for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;

//Trademanagement                               



   //Closing-Information
{
   if(Ask == OrderTakeProfit())
  {  
   SendNotification("TP erreicht");
  }

   return(0);
}
 
 

             
   // BreakEven         
     
      {
       if(OrderType() == OP_BUY && OrderOpenPrice() > OrderStopLoss() && ((Bid - OrderOpenPrice()) >= OrderStopLoss()))
  	     
  	      {
  	       OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	       SendNotification("SL = Break Even");
  	      }
  		
    	if(OrderType() == OP_SELL && OrderOpenPrice() < OrderStopLoss() && ((OrderOpenPrice() - Ask) >= OrderStopLoss()))
  	      {
  	      OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	      SendNotification("SL = Break Even");
 	      } 
      }
}

return(0);
}
  #9 (permalink)  
Alt 06.01.21
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Ich will nochmal anmerken, dass man Orders manuell durchaus mit MagicNumber versehen kann indem man die Orders über ein Button eines mql Programms öffnet. Die Order wird über den Button per Hand geöffnet/geschlossen aber dies wird dann per mql Programm ausgeführt. Hat auch den Vorteil, dass man zB die Ausführungszeit messen und weitere Statistiken speichern kann. Würde ich manuell traden, dann würde ich die Orders immer über ein mql Programm öffnen und schließen da neben definieren einer MagicNumber so auch noch weitere mehr Möglichkeiten bestehen die man sonst nicht hat.
  #10 (permalink)  
Alt 07.01.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das rein manuelle Öffnen bezieht sich exakterweise gesehen auf die Betätigung der Taste F9. In diesem Auftragsfenster existiert keine Möglichkeit des Vergebens einer MagicNumber, aber der Eingabe eines Kommentars.
Auch über die Möglichkeit des One-Click-Trading per Alt+T wäre eine zweite Möglichkeit des manuellen Tradings gegeben, aber ohne MagicNumber.
Bei beiden Methoden geht es einzig und allein darum, kein!! mql-Programm zum Öffnen von Market- bzw. Setzen von PendingOrders zu benutzen.

Das Öffnen oder Setzen von Order per Button, welcher zwangsweise mit einem Script oder EA verküpft sein muss, ist eine andere Möglichkeit. Nur hierbei kann jederzeit eine MagicNumber vergeben werden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
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 19:16 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.
-----------------------------------------------------------------------------------------------------------------------------