PO über expiration gelöscht und noch immer in OrdersTotal()?
Liste der Anhänge anzeigen (Anzahl: 1)
seit gegrüßt;),
Ich habe in meinem EA eine Funktion die zum Tagesende alle Positionen löscht/schließt. Jetzt bekommen ich immer die Fehlermeldung 'Unknown Ticket 1 for OrderDelete Function'. Das Ticket 1 ist eine Pending Order die über expiration gelöscht wurde. Mit 'index = OrdersTotal()' bekomme ich die Anzahl der offenen Orders und der Pending Orders. Soweit klar. Aber wenn gelöscht (deleted due expiration) sollte diese Order nicht mehr unter OrdersTotal() auftauchen!? Code:
void CloseAllOpenPositions(string f, int intMaxSlippage) { VG stoffel MT4 build 1260 24.01.2020 |
Liste der Anhänge anzeigen (Anzahl: 1)
habe mal eine Durchlaufzähler für die Funktion eingefügt. Bei jedem Aufruf wird der Zähler um 1 erhöht.
OrdersTotal() = 1 !! Also nur eine Position. Trotzdem findet die F. bei gleichem index eine weitere Pos. (BuyStop mit Ticket 1).:eek: |
Nach kurzem Überfliegen fallen mir 2 Sachen auf:
Code:
bool checkOrderClose=true; Code:
index--; |
Hallo, in dem Code, welchen du geschrieben hast, werden ja nur PendingStop Orders behandelt. Das passt dann nicht zu dem Log den du als letztes angehängt hast.
Pendingorders mussen gelöscht werden OrderDelete(), MarketOrders müssen geschlossen werden OrderClose() Hier meine CloseAllOrders Funktion, allerdings ohne gutes Error Handling: Code:
void CloseAllOrders(int Slippage_local,int MagicNumber_local) |
Zitat:
|
hallo MA-EA,
wenn ich eine bool Variable deklariere ist sie automatisch true? ok. @ Indikator-Trading du hast völlig recht.Ich habe den Code etwas eingekürzt weil noch ein paar andere Dinge über diese Funktion geregelt werden. Es ist aber nur der Teil den ich kopiert habe fehlerhaft. Leider habe ich kein Idee woran es liegen kann. hier noch der Teil für die Market Orders. Und Danke für eure Bemühungen. Code:
void CloseAllOpenPositions(string f, int intMaxSlippage) { |
Liste der Anhänge anzeigen (Anzahl: 1)
moin @ all,
ich habe jetzt den Code von Indikator-Trading probiert. Keine Fehlermeldung :D. Anschließend habe ich nach und nach den Rest meiner Funktion hinzugefügt und festgestellt das der Fehler NICHT bei OrderDelete zu suchen ist ! Sondern schon vorher beim Schließen der offenen Orders. In dem Teil hatte ich bei erfolgreichem schließen zwei weitere Funktionen aufgerufen. Code:
if(!OrderClose(OrderTicket(),OrderLots(),Bid,intMaxSlippage,White)) { Vielleicht kann mal jemand über diese Funktion schauen und mir sagen was ich falsch mache :confused: Code:
void ProfitLable(string f) Schon mal vielen Dank an alle. VG stoffel |
iBarShift() benötigt eigentlich noch ein true/false als letzten Parameter, der angibt wie exakt die Suche sein soll.
Ansonsten kann es wohl am ehesten an deiner drawLabel Funktion liegen. Welche Fehlermeldung sagt die der Compiler bzw. MT beim ausführen des EAs? |
Code:
for(int y=OrdersHistoryTotal()-1; y>=0; y--) { Code:
if(Optimizer) { Im Coder für das Closen fragst du allerdings direkt wieder die OrderTicket() usw. ab ohne genau zu wissen, ob die letzte Orderselect auch noch die Order ausgewählt hat, welche du erwartest. |
Zitat:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:47 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum