Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verwaltung von offenen Trades als Positionen

Geschrieben

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.

 

Featured Replies

Geschrieben

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? :biggrin:

Geschrieben
  • Autor

Ja genau. Ich habe nur wenige Lieder in meinem Camtasia. Da habe ich auf diese Alternative zugegriffen.

Klingt doch ganz Cool. band.gif

 

Oder zu kitschig? hrhrhr.gif

Geschrieben

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! :palomitas:

Geschrieben
  • Autor

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. Schritt

Metatrader 5: öffnet 0.2 lot BUY EURUSD , Zusammenfassung der offenen Position 0.2 Lot BUY EURUSD

Metatrader 4: synchrone Kopie offen 0.2 lot BUY EURUSD.

2. Schritt

Metatrader 5: fügt 0.3 Lot BUY EURUSD hinzu, Zusammenfassung der offenen Position 0.5 Lot BUY EURUSD

Metatrader 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. Schritt

Metatrader 4: schließt 0.1 lot von der BUY EURUSD Position, Zusammenfassung der offenen Position 0.4 Lot BUY EURUSD

Metatrader 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)

  • 3 Wochen später...
Geschrieben
  • Autor

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. Schritt

Metatrader 5: öffnet 0.2 lot BUY EURUSD , Zusammenfassung der offenen Position 0.2 Lot BUY EURUSD

Metatrader 4: synchrone Kopie offen 0.2 lot BUY EURUSD.

2. Schritt

Metatrader 5: fügt 0.3 Lot BUY EURUSD hinzu, Zusammenfassung der offenen Position 0.5 Lot BUY EURUSD

Metatrader 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. Schritt

Metatrader 4: schließt 0.1 lot von der BUY EURUSD Position, Zusammenfassung der offenen Position 0.4 Lot BUY EURUSD

Metatrader 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

 

 

top.gif

  • 1 Jahr später...
  • 5 Monate später...
Geschrieben

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.

Geschrieben
  • Autor

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

Geschrieben

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?

  • 1 Jahr später...
Geschrieben

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

Geschrieben

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

Geschrieben

Dear Mr. Kleinerbroker,

 

Nice rofl2.gif

Ich stelle mir die Antwort grade beim Username "fuc* the broker" vor...

Geschrieben
  • Autor

Ich habe mal Recherchiert...

 

MAGIC ist die ID für den Expert Advisor

Comment 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

Geschrieben

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?

Geschrieben

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 , Howdy.gif , arbeite Code aus und poste Lösung hier .

Geschrieben

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 wink.png 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_IDENTIFIER

der 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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.