Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1166
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
Können Sie mir bitte sagen, wie ich die Auftragsauswahl nach Symbol für OrdersTotal() festlegen kann?
Wenn derzeit ein Auftrag für ein Paar offen ist, wird er nicht für andere geöffnet.
Können Sie mir bitte sagen, wie ich die Auftragsauswahl nach Symbol für OrdersTotal() festlegen kann?
Wenn nun ein Auftrag für ein Paar offen ist, wird er nicht für andere Paare geöffnet.
Schauen Sie sich kodobase an, es gibt ein Beispiel in jedem EA
Schauen Sie in kodobase nach, dort gibt es für jeden Berater ein Beispiel
Ich bin kein Programmierer(
Das ist ein bisschen kompliziert für mich.
Ich bin kein Programmierer(
Das ist ein bisschen kompliziert für mich.
Es ist nicht kompliziert.
um einen einfachen EA zu schreiben, hier ist die gesamte Funktionalitäthttps://www.mql5.com/ru/forum/131859
Für Ihre Zwecke ist OrdersTotal() die Gesamtzahl der offenen Aufträge (nummeriert von 0) im Terminal, dann müssen Sie sie einzeln auswählen (durch die Schleife gehen), indem Sie OrderSelect() verwenden und die erforderlichen Aufträge bearbeiten
Können Sie mir bitte sagen, wie ich die Auftragsauswahl nach Symbol für OrdersTotal() festlegen kann?
Wenn derzeit ein Auftrag für ein Paar offen ist, wird er nicht für andere Paare geöffnet.
Ich muss meine Bestellungen regelmäßig überprüfen (mich selbst zählen), je nach Bedarf.
Ich habe in jedem EA eine Schleife (eine große Methode), die vor wichtigen Aktionen aufgerufen wird:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
Prüfung auf einen Auftrag für das Symbol ist hervorgehoben
in regelmäßigen Abständen, je nach Bedarf, ihre Aufträge zu überprüfen (Selbstkontrolle).
Ich habe eine Schleife (eine große Methode) in jedem EA, die vor wichtigen Aktionen aufgerufen wird:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
Prüfen Sie die Reihenfolge, indem Sie das Symbol hervorheben
Nebenbei bemerkt, verstehe ich, dass die Ticker von historischen Aufträgen verloren gehen können. Die Frage ist, ob sich die Auftragsticker(SELECT_BY_TICKET) in MT4 und die Ticker der Geschäfte und Positionen in MT5 ändern können.
Und auch, ob die Reihenfolge nach dem OrderSelect auf dem Ticket geändert werden kann. Zum Beispiel am nächsten Tag. Der EA ist nicht deaktiviert.
Wenn der schwebende Auftrag ein Marktauftrag geworden ist, können Sie ihn nach seinem Typ anzeigen. Wenn die Marktorder geschlossen wurde, wird der Zeitpunkt des Orderschlusses betrachtet, der nicht gleich Null ist OrderCloseTime()!=0
Wenn der schwebende Auftrag während seiner Lebensdauer abgeschlossen wurde, wie können wir ihn dann über das Auftragsticket verfolgen?
Und eine Frage, die Lebensdauer ist auch in Marktaufträge (MT4), funktioniert es?
Können Sie mir bitte sagen, wie ich die Auftragsauswahl nach Symbol für OrdersTotal() festlegen kann?
Wenn nun ein Auftrag für ein Paar offen ist, wird er nicht für andere Paare geöffnet.
Die Frage ist bereits gelöst. Ich danke Ihnen allen.
Guten Tag, meine Damen und Herren! Ich verstehe nicht, warum er Alert: time3-time1 = wrong datetime schreibt?
weil die Zahl negativ ist :-)
nach dieser Logik ist Zeit1 __immer __mehr als Zeit3
weil die Zahl negativ ist :-)
nach der gegebenen Logik ist Zeit1 __immer __mehr als Zeit3
Danke! Manchmal schaltet das Gehirn ab.