- Fragen von Anfängern MQL5 MT5 MetaTrader 5
- Hilfe bei der Codierung
- [WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen.
Antwort, bitte. Wenn das der Fall ist, werde ich einfach einen Aufschub gewähren, aber ich möchte zuerst den Grund dafür wissen.
Ich wiederhole meine Frage mit einer etwas anderen Formulierung: Fehler Nummer sechs (Kurse sind verfügbar, aber der Handelsserver nicht) - liegt es daran, dass zu Beginn des Stundenbalkens der Server überlastet ist? Sollte ich das Problem in einem Expert Advisor suchen oder nur Geschäfte öffnen, sagen wir, 3 Minuten nach Beginn eines Balkens, wenn die Last auf dem Server weniger ist?
Die zweite Frage aus der gleichen Reihe: Wenn ich viele Expert Advisors auf einmal habe und alle etwas am Anfang eines Balkens tun, gibt es dann Probleme? Oder stehen die Berechnungen einfach an? Was passiert zum Beispiel, wenn der EA keine Zeit hatte, die Berechnung abzuschließen, und ein neuer Tick eingetroffen ist - wird er die Berechnung mit dem alten Preis beenden? Und wenn es einen neuen Tick gibt, werden Sie garantieren, dass die Berechnung (ich überprüfe den Anfang des Balkens mit dem Code, den Sie in Ihrem Tutorial empfohlen haben) immer noch den Anfang des Balkens zeigen wird?
Dies sind wichtige Fragen, zu denen ich gerne mehr Informationen hätte.
Herzliche Grüße,
Quark
2. experten arbeiten parallel, jeder in seinem eigenen thread. wenn ein neuer tick kommt und der experte noch arbeitet, wird der tick ignoriert. alle preisdaten, mit denen der experte arbeitet, bleiben original (der experte arbeitet mit einer kopie der daten). um die neuesten, geänderten daten zu nehmen, gibt es eine Funktion RefreshRates
Eigentlich habe ich die Frage gestellt, weil ich zweimal den Fehler 6 erhielt, als ich versuchte , eine Position am Anfang eines Balkens zu öffnen:
bool bIsBarEnd = false; if(timePrev != Time[0]) bIsBarEnd = true; timePrev = Time[0]; if(!bIsBarEnd) return(0); ....
Es bleibt die Frage, ob es an der Überlastung des Servers liegt, da ALLE zu Beginn des Balkens aktiver sind. Oder ist es auf etwas anderes zurückzuführen?
Falls jemand von Alpari diesen Beitrag liest - Konto 116122.
Dies ist der einzige meiner Expert Advisors, der bei Fehlern dieser Art eine Warnung ausgibt. Ich schlage vor, dass diejenigen, die Demo-EAs haben, Alarme setzen, wenn OrderSend -1 zurückgibt (für den Fall, dass diese Situation recht häufig auftritt). Hier ist der Code für den Kauf, das Prinzip ist das gleiche für den Verkauf:
int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 0, "Comment", nMagic, 0, Aqua); if(nResult == -1) { int nError = GetLastError(); Alert(nError); }
Außerdem zitiere ich vorsichtshalber den gesamten Sachverständigen, mit Ausnahme des Teils, in dem es um Logik geht (die hat damit sicher nichts zu tun). Schauen Sie bitte nach. Dennoch scheint es mir, dass es sich um MT handelt. Der Expert Advisor hängt nur auf dem Stundenchart von EURUSD und erzeugt regelmäßig Fehler anstelle von Trades.
Ich möchte anmerken, dass der erste Lauf (wenn EA an ein Diagramm angehängt ist oder wenn sein Code neu kompiliert wird) keine Fehler anzeigt und normal läuft. Das heißt, Sie erhalten eine Fehlermeldung, drücken nach 5 Sekunden F5 im Editor, der Expert Advisor ist gestartet und ein Handel wurde eröffnet.
Hilfe im Allgemeinen, bitte!
double dStopLoss; int nHoursToHold; datetime timePrev = 0; bool bIsFirst = true; int nSlip = 5; double dTp = 0; double dLotSize = 0.1; int nNumOfExperts = 5; int nMagic = 0; ////////////////// int init () { timePrev = 0; if(Symbol() == "EURUSD" && Period() == 60) { dStopLoss = 110 * Point; nHoursToHold = 1; nMagic = 23; } return(0); } // ------ int deinit() { return(0); } // ------ int start() { if(Bars < 5) return(0); // The previous bar just closed bool bIsBarEnd = false; if(timePrev != Time[0]) bIsBarEnd = true; timePrev = Time[0]; if(!bIsBarEnd) return(0); // ------ int nSignal = GetSignal(); if(nSignal == OP_BUY) Buy(); else if(nSignal == OP_SELL) Sell(); for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == nMagic) { if(CurTime() - OrderOpenTime() > (nHoursToHold - 1) * 60 * 60) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed); } } } return(0); } // ------ void Sell() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_SELL, dLotSize, Bid, nSlip, Bid + dStopLoss, 0, "Comment", nMagic, 0, OrangeRed); if(nResult == -1) { int nError = GetLastError(); Alert(nError); } } // ------ void Buy() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 0, "Comment", nMagic, 0, Aqua); if(nResult == -1) { int nError = GetLastError(); Alert(nError); } } // ------ double GetLotSize() { double dLot = 0.1; return(dLot); } // ------ int GetSignal() { int nSignal = OP_BUY; return(nSignal); } // ------
Was für Griffe? Wie viele Griffe haben Sie? Gibt es eine Begrenzung für die Anzahl der EAs, Diagramme usw.?
P.S. Diese Frage entkräftet nicht meinen vorherigen Beitrag :)
Ich hatte Expert Advisors geben diesen Fehler nur 5 Mal in einem halben Jahr
Über Warnungen - lästig. Ich habe ein Senden an E-Mail + Schreiben in eine Datei. Bald werde ich Bibliotheken mit entsprechenden Funktionen fertigstellen - ich werde sie veröffentlichen
Ich habe diesen Fehler in einem halben Jahr nur 5 Mal gehabt
Zu den Warnmeldungen: Sie sind lästig. Ich habe ein Senden an E-Mail + Schreiben in eine Datei. Ich werde die Bibliothek bald mit den entsprechenden Funktionen fertigstellen - ich werde sie veröffentlichen.
Im Gegenteil, es ist praktisch. Der Alarm stört nicht, MT arbeitet weiter, aber man sieht es sofort... ähm... wenn Sie an Ihrem Computer sitzen... Ja, ich habe es verstanden :)
"Mein" Experte gibt diesen Fehler in 70 % der Fälle an. Ich meine, nicht dieses, aber 2, 6, 14... kurz gesagt, nicht systematisch. Ich habe die Preise überprüft, sie scheinen korrekt zu sein... Da die MT-Quellen bei den Entwicklern und die Server bei Alpari sind, liegt es im Grunde an ihnen. Es wäre allerdings toll, wenn jemand anderes das Programm ausführen und bestätigen würde, dass das Problem auf seinem Computer reproduziert wird.
Was für Griffe? Wie viele dieser Griffe haben Sie? Gibt es eine Begrenzung der Anzahl der Experten, Grafiken usw.?
auf 98, wo die Anzahl der Handles pro Prozess eine Größenordnung kleiner ist als im Jahr 2000, trat der Fehler der Ressourcenknappheit sehr schnell auf, einschließlich der Unfähigkeit, einen Socket für den Handel zu öffnen. während langer Arbeit trat dieser Fehler auch im Jahr 2000 auf. warum dieser Fehler nur in den letzten Builds auftrat, ist ein natürliches Rätsel.
gibt es ein Limit für die Anzahl der Charts - 99. also gibt es auch ein Limit für die Anzahl der EAs
- 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.