[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 227
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo, hier ist das Problem: Der EA setzt Pending Limit Orders, dann bewegt sich der Preis und die Orders werden zu Market Orders. Alles funktioniert, aber bei einigen Aufträgen gibt es eine absolut unklare Panne, da alle Aufträge durch eine bestimmte feste Konstante "K" festgelegt sind, sollte der Abstand zwischen ihnen immer eine Konstante sein (Rn+1 = Rn + "K"). Wenn wir die Ergebnisse der arithmetischen Operationen mit den Preisen überprüfen, d.h. wenn wir einfach subtrahieren und das Ergebnis überprüfen, ist es gleich "K"; aber der logische Vergleich == zeigt immer noch falsch an und das führt dazu, dass der EA ständig Aufträge zu diesem Preis öffnet und somit "denkt", dass es keinen Auftrag gibt. Tut mir leid, wenn es zu lang ist, ich wollte es nur etwas ausführlicher erklären. Ehrlich gesagt, ich weiß nicht, was ich tun soll :(
Herzlichen Dank! Aber es gibt diesen 2011.09.30 21:26:49 TestGenerator: nicht übereinstimmende Datenfehler (Volumengrenze 13634 am 2011.07.19 20:00 überschritten)
Soweit ich verstanden habe, betrifft diese Meldung nicht den Expert Advisor, aber ich würde trotzdem gerne wissen, wie sie zu verstehen ist?
Hilfe bei der Behebung der Funktion
Ich versuche, eine Funktion zu schreiben, die den Schlusskurs der letzten Bestellung ermittelt (nach der Zeit, die der aktuellen Zeit am nächsten kommt)
Ich schreibe es so:
Aber
tun
uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int ticketDateTime=0;
int orderTicket=-1;
double closePreis = 0;
int ordTotal = OrdersTotal();
if (smb == "0") smb = Symbol();
for (int i = 0; i < ordTotal; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == smb || smb == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (cmd < OP_BUY || OrderType() == cmd) {
if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) {
if (ticketDateTime < OrderCloseTime()) {
ticketDateTime = OrderCloseTime();
orderTicket = OrderTicket();
closePrice = OrderClosePrice();
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );
return(closePrice);
}
Aber aus irgendeinem Grund gibt die Funktion die Daten der allerersten Bestellung zurück, die im Prüfgerät geöffnet wurde.
Eigentlich ist das mein Zwischenziel. Ich wollte eine Funktion schreiben, die den letzten Schlusskurs eines Teilauftrags (nicht für das gesamte Losvolumen) angibt, aber ich weiß nicht, wie ich das anstellen soll...
Stattdessen...
... Nächste ...
Hier sehe ich, dass Ihr Wissen nicht sehr gut ist. Bei der Auswahl einer Bestellung nach Ticket wird der Parameter Pool ignoriert. D.h. es ist nutzlos, MODE_HISTORY zu schreiben - dieser Parameter bezieht sich nur auf die Auswahl nach Index.
Wenn ein Auftrag per Ticket ausgewählt wurde, müssen Sie die Schließungszeit überprüfen, um sicherzustellen, dass er in der Liste der geschlossenen Aufträge ausgewählt ist. Er muss größer als Null sein - nur geschlossene Positionen haben diesen Parameter >0.
Auf dem 5-Minuten-Zeitrahmen im MT4-Handelsterminal wird die Historie nicht angezeigt. Kann dieses Problem gelöst werden?
Ich entschuldige mich für die unverblümte Frage. Ich meinte, dass der Verlauf vor November 2010 nicht angezeigt wird :)
Dann gibt es sie nicht. Sie können auch klarstellen. Versuchen Sie, in den MT4-Einstellungen mehr Balken auf dem Diagramm zu erstellen.
Das Problem wird durch das Herunterladen oder den Kauf einer längeren Geschichte gelöst.
Dann gibt es sie nicht. Sie können auch klarstellen. Versuchen Sie, in den MT4-Einstellungen mehr Balken auf dem Diagramm zu erstellen.
Dies kann durch das Herunterladen oder den Kauf einer längeren Geschichte gelöst werden.
Wie viele Takte hat die Geschichte maximal? Vielleicht ist die Geschichte ja schon zu Ende erzählt.