Nimm PositionsTotal() und 'dreh' durch alle offenen Positionen:
while(o-->0) {
...
}
Hallo nochmal,
ich wollte fragen, wie man herausfinden kann, ob es keine offene pending order gibt. Denn wenn ich herausfinden will ob keine normale position gibt, gebe ich ein:
{
}
Durch diese abfrage weiß ich, dass wenn es keine offene position gibt, wird diese funktion ausgeführt.
Wie aber mache ich das selbe für pending orders, um herauszufinden ob es keine offenen pending orders gibt.
eine antwort würde mir sehr helfen. danke.
MfG
Du musst immer angeben für was du solche Fragen stellst ! MQL4 oder MQL5 .
Unter MQL4 wäre das ok. Auch das von Carl.
Aber unter MQL5 sieht es dann so aus :
int OrdersInMarket = OrdersTotal(); // Pending Orders
int OrderAndPositions_Total = OrdersInMarket+PositionsInMarket ;
if (OrderAndPositions_Total > 0) ActiveOrders = true;
Unter MQL5 sind die Positionen und Orders getrennt abzufragen
Vielen Dank für die Hilfe. Allerdings habe ich jetzt ein neues Problem und zwar wenn ich versuche in MQL5 das Ticket der pending order auszulesen. Denn diese Funktion funktioniert nicht.
{
long Ticket=OrderGetInteger(ORDER_TICKET);
}
Du musst schon etwas mehr mehr SELBER tun ..... Wenn du bei Google "MQL5 Order Ticket" eingibts kommst du zu ->
https://www.mql5.com/de/docs/trading/ordergetticket
Also bitte nicht jede Funktion im Forum erfragen !
Ein Forum dient der Problemlösung . Du bist nur faul :-)

- www.mql5.com
Oh - das wusste ich nicht. Dass ein und dieselbe Funktion Verschiedenes liefert, (OrdersTotal()) hätte ich jetzt mal nicht gedacht!
Das habe ich auch bereits versucht:
{
ulong Ticket=OrderGetTicket(ORDER_TICKET);
}
Und sogar auch mit der Klasse
CHistoryOrderInfo
Das habe ich auch bereits versucht:
{
ulong Ticket=OrderGetTicket(ORDER_TICKET);
}
Und sogar auch mit der Klasse
CHistoryOrderInfo
Du hast dir weder diese Seite RICHTIG durchgelesen noch das angewendet was auf der Seite Steht.
Der Beispiel Code auf der Seite wird zu 99% richtig sein.
Erfindet das Rad nicht immer neu.
OrderGetTicket() erwartet ein INT als Paramter. Und zwar ist da die INDEX Nummer der Order zu übergeben.
Du übergibst anscheinend ein ENUM . Deswegen scheitert die Funktion.
Nimm den Code und probier den aus :
Lesen und verstehen musst du selber.
{
//--- Variablen für Erhaltung der Werte aus Ordereigenschaften
ulong ticket;
double open_price;
double initial_volume;
datetime time_setup;
string symbol;
string type;
long order_magic;
long positionID;
//--- Anzahl der laufenden Warteorder
uint total=OrdersTotal();
//--- gehen wir im Zyklus durch alle Ordern
for(uint i=0;i<total;i++)
{
//--- erhalten wir Orderticket in Bezug auf seine Position in der Liste
if((ticket=OrderGetTicket(i))>0)
{
//--- erhlaten wir Ordereigenschaften
open_price =OrderGetDouble(ORDER_PRICE_OPEN);
time_setup =(datetime)OrderGetInteger(ORDER_TIME_SETUP);
symbol =OrderGetString(ORDER_SYMBOL);
order_magic =OrderGetInteger(ORDER_MAGIC);
positionID =OrderGetInteger(ORDER_POSITION_ID);
initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
type =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE)));
//--- bereiten wir die Information über Order vor und geben sie aus
printf("#ticket %d %s %G %s at %G was set up at %s",
ticket, // Orderticket
type, // Typ
initial_volume, // das gestellte Volumen
symbol, // Symbol, für das gestellt ist
open_price, // der angegebene Eroeffnungspreis
TimeToString(time_setup)// Zeit der Orderstellung
);
;}
;}
//---
;}
Das ist ein Skript Code.
Lass hören wenn du erfolg hast ....vorher nicht :-)
noch was .....nimm dir mal ein Wochende Zeit und suche bei Youtube nach c++ Tutorials und schaue dir mal eine Serie an. Dir fehlen Grundlagen.
Da sind einige mit ca 30 oder mehr Episoden. Da lernst du am besten Grundlagen. Weil du nur faul zugucken must.
MQL5 basiert auf C++ ist aber nicht das gleiche. Aber wer das eine versteht kann auch das andere gut verstehen.
Den Tip gebe ich auch allen anderen die frisch anfangen.
Danke, der Code hat geklappt. :-)

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo nochmal,
ich wollte fragen, wie man herausfinden kann, ob es keine offene pending order gibt. Denn wenn ich herausfinden will ob keine normale position gibt, gebe ich ein:
{
}
Durch diese abfrage weiß ich, dass wenn es keine offene position gibt, wird diese funktion ausgeführt.
Wie aber mache ich das selbe für pending orders, um herauszufinden ob es keine offenen pending orders gibt.
eine antwort würde mir sehr helfen. danke.
MfG