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: 43248
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: 259
Gesamt: 259
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By naranjoe
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 13.02.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Question höchste/größte Lotgröße bei offenen Trades auslesen

Hallo Zusammen

ich möchte gerne unter den geöffneten Trades den T/P vom Trade mit der größten Lotgröße auslesen und bekomme es nicht hin.

Der Trade mit der größsten Lotgröße ist auch der letzte geöffnete Trade, es wird immer ein Trade gesetzt mit einer größeren Lotgröße, daher ist auch immer der letzte Trade der Trade mit der größsten Lotgröße. Man könnte also auch den T/P von letzten geöffneten Trade auslesen, wie auch immer, ich bekomme es nicht hin. Die Daten vom dem gesuchten Trade sollen als BasisDaten gelten.

Ich habe es versucht folgendermaßen zu machen:

// erst die letzte geöffnete aktive-orderNR(ticketnr) abfragen, um diese als BASISORDER festzulegen

// erst NUR Buy-Trades prüfen

if(OrdersTotal()>0)
{
int x = 100; // durch x kann die schleife beendet werden
for (int i = OrdersTotal() - 1 ; i > OrdersTotal() - x; i--)
{
// evtl. MODE_TRADES
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderMagicNumber() == MagicNumber ) // nur meine MagicNumber
{

if ( OrderType() == OP_BUY ) // nur OP_BUY
{

// Print("BasisOrderRauf: ",OrderTicket());
int BasisOrderRauf = OrderTicket();

if ( OrderTakeProfit() == 0 ) // nur wenn TP =0
{

double BasisOrderRauf_TP = OrderOpenPrice() + (Point * 10);

}else{

BasisOrderRauf_TP = OrderTakeProfit();

}

x = 2;
}
}
}
} // ENDE if ( OrderMagicNumber() == Ma

// ENDE erst die letzte geöffnete aktive-orderNR(ticketnr) abfragen, um diese als BASISORDER festzulegen


Durch die Änderung von X = 100 auf X = 2 wird NUR der letzte Trade ausgelesen, da die Schleife sofort stoppt, wenn es einen Trade gibt mit entspechender Magicnummer.

Es hat schon so funktioniert, aber auf einmal bekomme ich nicht mehr den Wert den ich benötige, sondern einen anderen Wert, vermutlich eines Trades der davor geöffnet wurde. Kann es sein das mein Script so wie es jetzt ist, davon beeinträchtigt wird, wie die Sortierung der Anzeige bei meinem geöffneten MT4 ist. z.B. entweder ORDER aufwärts oder ORDER abwärts? Bekomme ich dadurch den falschen Wert?

Daher denke ich, es wäre doch besser gleich nach dem Trade mit der größsten Lotgröße zu suchen, oder?

Aber das bekomme ich nicht hin, denn dann müsste ich doch per Array suchen, oder? Kann mir da einer von Euch helfen? Da stehe ich echt im Wald....

Bin Euch sehr dankbar für eine schnelle Hilfe. Danke
  #2 (permalink)  
Alt 16.02.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Standard War wohl zu viel Info

Hallo nochmal

ich habe mich beim Öffnen des Themas nicht sauber genugt ausgedrückt glaube ich, wahrscheinlich habe ich zu viel gelabert daher versuche ich es nochmal mit einfachen Worten:

Wer kann mir helfen und einen kurzen Codeschnipsel für folgendes Problem posten?

Beispiel: Es sind NUR BuyTrades geöffnet mit verschiedenen Lotgrößen. Die Anzahl der Trades kann varieren.

Frage: Wie kann man jetzt den Trade mit der größsten/höchsten Lotgröße rausbekommen?

Sorry, aber machmal drücke ich mich einfach zu kompliziert aus

Und, weiß jetzt einer von Euch wie ich es machen kann?
  #3 (permalink)  
Alt 16.02.17
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Daher denke ich, es wäre doch besser gleich nach dem Trade mit der größsten Lotgröße zu suchen, oder?
Richtig!

Zitat:
Aber das bekomme ich nicht hin, denn dann müsste ich doch per Array suchen, oder?
Viel zu kompliziert!


Folgender Code findet die BUY-Order mit dem größten Lot incl. Ticket und TakeProfit:
Code:
double LotSize = 0;
double TP;
int Ticket;
 
 for(int i = OrdersTotal() - 1; i >= 0; i--)
    {
     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
  	{
         if (OrderType() == OP_BUY && OrderSymbol() == Symbol())
           {
            if (OrderLots() > LotSize)
              {        
               LotSize = OrderLots();
               Ticket = OrderTicket();
               TP = OrderTakeProfit();
              }                   
          }
       }
   }
Print ("Order Ticket: ", Ticket, ",  Lot Größe: ", LotSize, ",  Take Profit: ", TP);
Drehrumbumm likes this.
  #4 (permalink)  
Alt 17.02.17
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 20
13500 befindet sich auf einem aufstrebenden Ast
Thumbs up Super Danke

Vielen Dank naranjoe,

ja, machmal denke ich einfach zu kompliziert um die Ecke!

Es kann so einfach sein....danke....passt....super
Thema geschlossen

Lesezeichen

Stichworte
höchste lotgröße, mql4, programmierung, programmierung metatrader, programmierung mql4, trades, trades auslesen

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 13:47 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.
-----------------------------------------------------------------------------------------------------------------------------