Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.224
Aktive Benutzer: 74
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Stunden
- Sundaytrad...
vor 9 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 422
Gesamt: 422
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 16.07.17
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 21
exergon befindet sich auf einem aufstrebenden Ast
Standard Funktion für löschen von Aufträgen im Orderbuch

Hallo zusammen,

als Anfänger habe ich eine Funktion für das identifizeren von speziellen Währungen im Orderbuch geschrieben. Sinn: Sollten im Orderbuch noch Aufträge zur aktuellen Währung sein - egal ob aktiv oder Pending - dann sollen diese um 20 Uhr (ist ja echt 19 Uhr) geschlossen werden.

Die Funktion geht aber es werden nicht alle Aufträge gelöscht. Immer nur ein paar....die Closefunktion scheint mir hier von mir vielleicht nicht richtig angewendet zu sein. Habe die Funktion dann zweimal hinterienander reingesetzt - bringt aber nix.

Hat jemand eine Idee wo der Fehler liegen könnte?

Anbei Code - wie kann man den Code hier einfügen dass die Tabs usw. gezeigt werden? Sieht so ja nicht toll aus...Danke an alle!

//Start Durchsuchen Orderbuch nach möglichen Ordern dieser Währung sofern es nach 19 Uhr ist!!!
if((Hour() >= 20) && (OrdersTotal()>0) && (VerriegelungClose == 0))
{
//VerriegelungClose wieder schließen da nur einmal laufen lassen bis nächster Trade eröffnet wird
VerriegelungClose = 1;


//Orderbuch durchsuchen nach Orders dieser Währung
for(int a=0;a<odzahlALL;a++)
{
if(OrderSelect(a, SELECT_BY_POS, MODE_TRADES)==true)
{
//Ordersymbol, Ticketnummer und Zusatnd - ob Pending oder Aktivorder spreichern
BHilfsstring = OrderSymbol();
BHilfsticketnummer = OrderTicket();
BHilfslots = OrderLots();
BHilfstype = OrderType();

//Prüfen ob Währung passt
if(BHilfsstring == Basiswert)
{
//Prüfen ob gefundene Order eine aktive Order OP_BUY ist - dann kommt OrderClose zum Einsatz
if((BHilfstype == 0))
{
bool Bax1 = false;
while(Bax1 != true)
{
//Order löschen
Bax1=OrderClose(BHilfsticketnummer,BHilfslots,Bid, 5,Red);
}
Print("Orderbuch löschen weil nach 19/20 Uhr: Aktive Order Nr. ", BHilfsticketnummer, " wurde aus Orderbuch gelöscht! Währung war: ", Basiswert);
}

//Prüfen ob gefundene Order eine aktive Order OP_SELL ist - dann kommt OrderClose zum Einsatz
if((BHilfstype == 1))
{
bool Bax2 = false;
while(Bax2 != true)
{
//Order löschen
Bax2=OrderClose(BHilfsticketnummer,BHilfslots,Ask, 5,Red);
}
Print("Orderbuch löschen weil nach 19/20 Uhr: Aktive Order Nr. ", BHilfsticketnummer, " wurde aus Orderbuch gelöscht! Währung war: ", Basiswert);
}

//Prüfen ob gefundene Order eine Pending Order ist - dann kommt OrderDelete zum Einsatz
if((BHilfstype == 2) || (BHilfstype == 3) || (BHilfstype == 4) || (BHilfstype == 5) )
{
bool Bax3 = false;
while(Bax3 != true)
{
//Order löschen
Bax3=OrderDelete(BHilfsticketnummer);
}
Print("Orderbuch löschen weil nach 19/20 Uhr: Pending Order Nr. ", BHilfsticketnummer, " wurde aus Orderbuch gelöscht! Währung war: ", Basiswert);
}
}
}
}
}
  #2 (permalink)  
Alt 16.07.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Beim Schreiben von Posts befindet sich darüber ein # und zwischen den Tags wird dann der Code geschrieben.

Wenn Basiswert nicht mit dem Handelsinstrument übereinstimmt, auf welchem der EA läuft, dann wird es mit Ask und Bid in der Close-Funktion auch kein Schließen geben. Es wäre dann zu benutzen:

OrderClose(BHilfsticketnummer,BHilfslots,MarketInf o(Basiswert,MODE_ASK),5,Red);

bzw.

OrderClose(BHilfsticketnummer,BHilfslots,MarketInf o(Basiswert,MODE_BID),5,Red);

Ansonsten, was steht denn in den Log-Dateien bzgl. der mißlungenen Closeversuche?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 16.07.17
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 21
exergon befindet sich auf einem aufstrebenden Ast
Standard

Hallo traderdoc,

vielen Dank für Deine rasche Antwort!!!!

In den Journal steht kein Fehler weil die Order im Strategietest einfach irgendwann mit Stop.loss oder Take-Profit verkauft wird. Meinst Du das?

Der EA läuft immer nur in dem Chart, aus dem der Basiswert ist. Weil sich der EA beim Start den EA aus dem aktuellen Chart holt. Das dürfte nicht zu Problemen führen.

Die Bid und Ask Problematik für die Close-Funktion habe ich versucht über die ersten beiden if-Abfragen abzufangen. Reicht das nicht?

Wie gesagt, so wirklich einen Fehler spuckt mir der EA nicht aus oder muss ich außer im Journal nhoch woanders schauen?

Danke Dir nochmals....echt klasse die Unterstützung!
  #4 (permalink)  
Alt 16.07.17
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 21
exergon befindet sich auf einem aufstrebenden Ast
Standard

Weißt Du zufällig, ob man das Strategiefenster-Chart vom Layout hier irgendwo definieren kann? Ich habe im Netz nichts gefunden...das normale kann man ja mit default als Vorgabe setzen. Aber im Strategiefenster finde ich nix....
  #5 (permalink)  
Alt 16.07.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Für den Strategietester speicherst du die Vorlage (Template) 'Tester'
Für den Debug-Modus die Vorlage 'Debug'
  #6 (permalink)  
Alt 17.07.17
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 21
exergon befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Info Kronenchakra
Thema geschlossen

Lesezeichen

Stichworte
close, close-funktion, mql4, order löschen, orderclose, programmierung, programmierung metatrader, programmierung mql4


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 +2. Es ist jetzt 21:23 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.
-----------------------------------------------------------------------------------------------------------------------------