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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3690
Beiträge: 36325
Benutzer: 5.838
Aktive Benutzer: 535
Links: 80
Wir begrüßen unseren neuesten Benutzer: Tradan
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Tradan
vor 4 Stunden
- pfg
vor 16 Stunden
- Traderin
vor einem Tag
- wehu58
vor einem Tag
- chrislybar...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 38
Gesamt: 40
Team: 0
Team:  
Benutzer:  Stengah966, tomtrader
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 6 Tagen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 12
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);
}
}
}
}
}
Mit Zitat antworten
  #2 (permalink)  
Alt vor 6 Tagen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.782
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 6 Tagen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 12
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!
Mit Zitat antworten
  #4 (permalink)  
Alt vor 6 Tagen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 12
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....
Mit Zitat antworten
  #5 (permalink)  
Alt vor 5 Tagen
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 275
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'
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #6 (permalink)  
Alt vor 5 Tagen
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 12
exergon befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Info Kronenchakra
Mit Zitat antworten
Antwort

Lesezeichen

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


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 +2. Es ist jetzt 15:14 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------