FinGeR Posted January 3, 2011 Report Share Posted January 3, 2011 Die wohl größte Veränderung beim Wechsel von Metatrader 4 zu MetaTrader 5 ist die Verwaltung von offenen Trades als Positionen. Zu jeder Zeit kann es nur eine offene Position pro Symbol geben, und die Größe dieser Position wird vom Broker angepasst beim hinzufügen oder entfernen weiterer Aufträge des Symbols. Dies deckt sich mit der NFA 2-43 (b) FIFO-Regel die in den USA eingeführt wurde und passt auch mit der Art des Handel in vielen anderen Märkten wie Futures, Rohstoffe und CFDs. Auf MQL5.com gibt es ein Artikel mit Beispielen wie man trotzdem mit Hilfe eines Virtual Order-Manager mehrere Positionen verwalten kann. Diese Klassenbibliothek kann in eine MT5 Expert Advisor benutzt werden. Der Artikel ist in Englisch hier zu finden. http://www.mql5.com/en/articles/88 Ich habe eine Beispiel Video erstellt für ein besseres Verständnis. 4 Quote Link to comment Share on other sites More sharing options...
RAiNWORM Posted January 6, 2011 Report Share Posted January 6, 2011 Ich habe eine Beispiel Video erstellt für ein besseres Verständnis.Sehr gut!Aber mal nebenbei eine Frage: die Musik kommt doch vom C64, oder? Quote Link to comment Share on other sites More sharing options...
FinGeR Posted January 6, 2011 Author Report Share Posted January 6, 2011 Ja genau. Ich habe nur wenige Lieder in meinem Camtasia. Da habe ich auf diese Alternative zugegriffen. Klingt doch ganz Cool. Oder zu kitschig? Quote Link to comment Share on other sites More sharing options...
RAiNWORM Posted January 6, 2011 Report Share Posted January 6, 2011 Oder zu kitschig?Kitschig? Nein, das ist Nostalgie! Ohne Scherz: früher damals habe ich die ganzen Sounds auf Kassette aufgenommen und dann gehört! Quote Link to comment Share on other sites More sharing options...
FinGeR Posted January 7, 2011 Author Report Share Posted January 7, 2011 Das füge ich mal dazu, weil es zum Thema passt. Die BJF Trading Group entwickelte, nicht ganz billig aber ein sehr Interessant, das Tool MetaTrader MT5 to MT4 account copier. Es handelt sich dabei um ein MetaTrader orientierte Forex-Software, die es ermöglicht, Handel-Operationen vom MetaTrader 5 Terminal zu MetaTrader 4 Terminals synchrone zu kopieren. Diese Forex-Software ist für die gleichzeitige Verwaltung von mehreren Konten, also hilfreich für diejenigen, die Investoren Konten verwalten und für Händler die mit viele Konten gleichzeitig arbeiten. MetaTrader 5 vereint alle offenen Aufträge in einer Position.MetaTrader 4 dagegen listet jeden Auftrag als Position.BJF Trading Group haben das folgende Verhalten implementiert. Es werden alle Aufträge von Metatrader 5 synchrone zu einen oder mehreren Metatrader 4 Terminals kopiert. Beispiel:1. SchrittMetatrader 5: öffnet 0.2 lot BUY EURUSD , Zusammenfassung der offenen Position 0.2 Lot BUY EURUSDMetatrader 4: synchrone Kopie offen 0.2 lot BUY EURUSD. 2. SchrittMetatrader 5: fügt 0.3 Lot BUY EURUSD hinzu, Zusammenfassung der offenen Position 0.5 Lot BUY EURUSDMetatrader 4: synchrone Kopie offen 0.3 Lot BUY EURUSD, jetzt haben wir 2 Positionen in Metatrader 4 offen (0.2 Lot und 0.3 Lot) 3. SchrittMetatrader 4: schließt 0.1 lot von der BUY EURUSD Position, Zusammenfassung der offenen Position 0.4 Lot BUY EURUSDMetatrader 5: synchrone Kopie schließt 0.1 Lot BUY EURUSD, Zusammenfassung der offenen Position wir haben jetzt 2 Positionen in Metatrader 4 offen (0.1 und 0.3 Lot) 2 Quote Link to comment Share on other sites More sharing options...
FinGeR Posted January 26, 2011 Author Report Share Posted January 26, 2011 Das füge ich mal dazu, weil es zum Thema passt. Die BJF Trading Group entwickelte, nicht ganz billig aber ein sehr Interessant, das Tool MetaTrader MT5 to MT4 account copier. Es handelt sich dabei um ein MetaTrader orientierte Forex-Software, die es ermöglicht, Handel-Operationen vom MetaTrader 5 Terminal zu MetaTrader 4 Terminals synchrone zu kopieren. Diese Forex-Software ist für die gleichzeitige Verwaltung von mehreren Konten, also hilfreich für diejenigen, die Investoren Konten verwalten und für Händler die mit viele Konten gleichzeitig arbeiten. MetaTrader 5 vereint alle offenen Aufträge in einer Position.MetaTrader 4 dagegen listet jeden Auftrag als Position.BJF Trading Group haben das folgende Verhalten implementiert. Es werden alle Aufträge von Metatrader 5 synchrone zu einen oder mehreren Metatrader 4 Terminals kopiert. Beispiel:1. SchrittMetatrader 5: öffnet 0.2 lot BUY EURUSD , Zusammenfassung der offenen Position 0.2 Lot BUY EURUSDMetatrader 4: synchrone Kopie offen 0.2 lot BUY EURUSD. 2. SchrittMetatrader 5: fügt 0.3 Lot BUY EURUSD hinzu, Zusammenfassung der offenen Position 0.5 Lot BUY EURUSDMetatrader 4: synchrone Kopie offen 0.3 Lot BUY EURUSD, jetzt haben wir 2 Positionen in Metatrader 4 offen (0.2 Lot und 0.3 Lot) 3. SchrittMetatrader 4: schließt 0.1 lot von der BUY EURUSD Position, Zusammenfassung der offenen Position 0.4 Lot BUY EURUSDMetatrader 5: synchrone Kopie schließt 0.1 Lot BUY EURUSD, Zusammenfassung der offenen Position wir haben jetzt 2 Positionen in Metatrader 4 offen (0.1 und 0.3 Lot) Es gibt eine kostenlose Anleitung. Wie man so etwas auch selbst programmieren könnte. How to Copy Trading from MetaTrader 5 to MetaTrader 4 http://www.mql5.com/en/articles/189 3 Quote Link to comment Share on other sites More sharing options...
FinGeR Posted July 29, 2012 Author Report Share Posted July 29, 2012 up. Quote Link to comment Share on other sites More sharing options...
Forex1+ Posted July 29, 2012 Report Share Posted July 29, 2012 Genial das Thema hattest du schon Anfang 2011. Kannte den Thread noch nicht sehr cool ! Quote Link to comment Share on other sites More sharing options...
Henrik Posted January 25, 2013 Report Share Posted January 25, 2013 Speichert MT5 zu jedem Trade auch eine Magicnumber? Das wäre doch das einfachste für alle. So kann der EA anhand der Magicnumber seine letzte Position ermitteln und entsprechend handeln, unabhängig davon, die die Gesamtposition zu diesem Instrument ausieht. Quote Link to comment Share on other sites More sharing options...
FinGeR Posted January 25, 2013 Author Report Share Posted January 25, 2013 Speichert MT5 zu jedem Trade auch eine Magicnumber? Das wäre doch das einfachste für alle. So kann der EA anhand der Magicnumber seine letzte Position ermitteln und entsprechend handeln, unabhängig davon, die die Gesamtposition zu diesem Instrument ausieht. Ja. Schau mal hier http://www.mql5.com/en/articles/112 Quote Link to comment Share on other sites More sharing options...
Henrik Posted January 25, 2013 Report Share Posted January 25, 2013 Mh, na dann verstehe ich jetzt ganz ganze Geschrei nicht wegen dem Hedgingverbot. OK, für manuelles Handeln ist das unübersichtlicher. Aber für EAs? Die könnte man vom Prinzip genauso bauen wie früher, basierend auf der Magicnumber? Quote Link to comment Share on other sites More sharing options...
Kleinerbroker Posted July 2, 2014 Report Share Posted July 2, 2014 Brauche Hilfe : Für mein System muss ich analysieren , ob eine Position komplett geschlossen wurde . Dann beginnt ein neuer Handelszyklus des Systemes . Bislang versucht :1.) Was scheinbar nicht geht, ist die Magic Nummer im laufenden Betrieb des EA zu ändern . Also das ich nach jedem abgeschlossenen Trade durch den EA eine neue Magic vergebe (dMagic++;) . 2.) Leider komme ich auch mit Ordercomment nicht weiter, denn der Broker (Activetrades) überschreibt die Comments in der Historie mit dem SL-Wert (Anfrage ob abstellbar läuft gerade) . 3.) Die Suche nach der Ticketnummer der Posi habe ich auch nicht hinbekommen, wird die verändert , wenn von Order nach Deal nach SL in die History geht ? KB PS.: Und diese MQL5 : Superlösung des Trademanagment hat mir viel weitergeholfen, nur der Knoten blieb halt leider ... ein Knoten ;) Quote Link to comment Share on other sites More sharing options...
Kleinerbroker Posted July 2, 2014 Report Share Posted July 2, 2014 Eben eingetroffen :Dear Mr. Kleinerbroker,Thank you for contacting us earlier.Unfortunately we are unable to deactivate inserting comments on pending orders (like SL).Apologies for the inconvenience.Klasse, wenn alles so schnell ginge , wie Absagen einsammeln Service : Activetrades Quote Link to comment Share on other sites More sharing options...
Vola Posted July 2, 2014 Report Share Posted July 2, 2014 Dear Mr. Kleinerbroker, Nice Ich stelle mir die Antwort grade beim Username "fuc* the broker" vor... 1 Quote Link to comment Share on other sites More sharing options...
FinGeR Posted July 2, 2014 Author Report Share Posted July 2, 2014 Ich habe mal Recherchiert... MAGIC ist die ID für den Expert AdvisorComment wäre eine Möglichkeit, aber da hat dein Broker seine Hände drüber... (finde ich persönlich nicht gut.) POSITION_IDENTIFIER diese müsste dein Problem lösen. http://www.mql5.com/en/docs/trading/historyselectbyposition 3 Quote Link to comment Share on other sites More sharing options...
oldschuren Posted July 2, 2014 Report Share Posted July 2, 2014 Da wir gerade bei Positionen und Stopps sind. Wie stehen Die Chance folgendes zu realisieren: Kann man einen EA coden der automatisch erkennt, dass eine Position ohne SL und TP geöffnet wurde und anschließend nach welchen Regeln auch immer SL und TP setzt? Sind die Order in einer Art Orderliste drin oder haben diese eine Bezug zum Objekt "Position"? Gibt es Befehle, um Infos über bestehende Positionen einholen zu können? Quote Link to comment Share on other sites More sharing options...
Kleinerbroker Posted July 3, 2014 Report Share Posted July 3, 2014 Da wir gerade bei Positionen und Stopps sind. Wie stehen Die Chance folgendes zu realisieren: Kann man einen EA coden der automatisch erkennt, dass eine Position ohne SL und TP geöffnet wurde und anschließend nach welchen Regeln auch immer SL und TP setzt? Sind die Order in einer Art Orderliste drin oder haben diese eine Bezug zum Objekt "Position"? Gibt es Befehle, um Infos über bestehende Positionen einholen zu können? Erkennen ob TP/SL fehlen und ggfs nachziehen auf vorher definierte Werte //+------------------------------------------------------------------+ //| Check position for missing Limits SL/TP | //+------------------------------------------------------------------+ void CheckForLimit() { double lots=0; for(int i=PositionsTotal()-1;i>=0;i--) { if(PositionSelect(Symbol())) { double takeprofit=PositionGetDouble(POSITION_TP); double stoploss= PositionGetDouble(POSITION_SL); long currPosId = PositionGetInteger(POSITION_IDENTIFIER); if(takeprofit!=0 && stoploss!=0) break;// Limit // buy order type if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY // ) // { lots=PositionGetDouble(POSITION_VOLUME); if(stoploss==0) stoploss=dBid-Std_SL*PipFaktor*Point();// if(takeprofit==0) takeprofit=dAsk+Std_TP*PipFaktor*Point();// if(SL_limit!=0) stoploss=SL_limit;// Zielpreis übernehmen if(TP_Limit!=0) takeprofit=TP_Limit;// Zielpreis übernehmen mytrade.SetDeviationInPoints(4); mytrade.PositionModify(Symbol(), stoploss , takeprofit); // check the result IsError(mytrade,__FUNCTION__); Print("SL_TP : Buy Order #",currPosId," : Missing Limits set to Std"); } // sell order type if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL // ) { lots=PositionGetDouble(POSITION_VOLUME); if(stoploss==0) stoploss=dAsk+Std_SL*PipFaktor*Point();// if(takeprofit==0) takeprofit=dBid-Std_TP*PipFaktor*Point();// if(SL_limit!=0) stoploss=SL_limit;// Zielpreis übernehmen if(TP_Limit!=0) takeprofit=TP_Limit;// Zielpreis übernehmen mytrade.SetDeviationInPoints(4); mytrade.PositionModify(Symbol(), stoploss , takeprofit); // check the result IsError(mytrade,__FUNCTION__); Print("SL_TP : Sell Order #",currPosId," : Missing Limits set to Std"); } } } } Hoffe hilft . KB @ FinGeR : vielen Dank , , arbeite Code aus und poste Lösung hier . 3 Quote Link to comment Share on other sites More sharing options...
Kleinerbroker Posted July 5, 2014 Report Share Posted July 5, 2014 POSITION_IDENTIFIER diese müsste dein Problem lösen. Yap ! Vielen Dank nochmal ...allerdings anders als vermutet : Mein erster Ansatz war mit der History : (!HistorySelectByPosition(Trade_ID_Current))// wenn die Position NICHT in der History ist Trade_ID_Current == POSITION_IDENTIFIER In der History finde ich keine Posi,nachdem diese geschlossen wurde, das Volumen 0.00 ist . Sehr wohl finde ich mit dem POSITION_IDENTIFIER die zugehörigen Order und Deals .Nachdem ich die Posi nicht finden konnte, wollte ich das Volumen abfragen, aber das geht ebenfalls nicht, da ich die Posi nicht mehr selektieren kann . Interessant dazu auch dieser Link Ich habe also sehr sehr lange gesucht und bin gespannt, ob doch jemand eine Lösung unter Nutzung der History kennen sollte . Aber ich habe eine alternative Lösung gefunden : //+------------------------------------------------------------------+ //| Überprüft , ob Posi geschlossen wurde und ggfs Reset | //+------------------------------------------------------------------+ void CheckPositionClosure() { if(!PositionSelect(Markt) && Trade_ID_Current != 0) // wenn es keine offene Position gibt { // aber vorher eine vorhanden war // Reset Routinen GlobalVariableSet(VarName,0.0) ;// TradeLevel = 0 ;// TradeRemaining = MaxNumberOfEntry ;// Print (" Altes Grid begonnen bei: ",GridMG[1][0]);// WriteGrid() ;// neues Grid anlegen Print (" Neues Grid beginnt bei: ",GridMG[1][0]);// if (TradeHelp) Alert ("Grid was Reset") ;// Info Trade_ID_Current = 0 ;// GetPositionPropertiesReset() ;// } return; } 1.) Ich prüfe ob in diesem Markt (z Bsp EURUSD) eine Posi offen ist . Wenn nicht, dann =>2.) Prüfe ich, ob in der Variablen Trade_ID_Current irgendein Wert hinterlegt ist, der nicht "0" ist . Wenn das der Fall ist, dann wurde eben eine Posi geschlossen, denn in der regelmäßigen Routine des EA beschreibe ich die Variable bei jedem neuen Bar mit dem POSITION_IDENTIFIERder offenen Posi ...wenn denn eine offen ist . Ok, wenn nun also keine Posi seit eben mehr da ist, dann wurde diese geschlossen und ich durchlaufe die zugehörige Routine, resette alle möglichen Variablen, "zeichn mein Grid neu und setze die Variable Trade_ID_Current wieder auf "0" . KB Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.