Diskussion zum Artikel "Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5" - Seite 17
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
Ich habe die Datei heruntergeladen und den Code debugged, und es zeigte diese Warnung könnte jemand mir helfen mit diesem?
Rückgabewert von'OrderSend' sollte überprüft werden
Hallo, ich bin ein Neuling und ich teste auch den Roboter
Versuchen Sie dies:
// OrderSend(mrequest,mresult);
bool res=OrderSend(mRequest,mResult);
// Erhalte den Ergebniscode
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //Anfrage ist abgeschlossen oder Bestellung aufgegeben
{
Alert("Eine Kaufbestellung wurde erfolgreich mit Ticket#:",mresult.order,"!");
}
sonst
{
Alert("Die Kaufauftragsanfrage konnte nicht abgeschlossen werden - Fehler:",GetLastError());
ResetLastError();
zurück;
}
Wenn ich falsch liege, korrigieren Sie mich bitte!
Forschungsquelle: https://www.mql5.com/en/forum/23663
Bei der Fehlersuche erhalte ich immer einen Fehler, wenn ich die Bestellung abschicke. Ich dachte, es war mein Code, aber auch wenn ich die mql5-Datei für das Herunterladen testen gibt es auch mir einen Fehler.
Bei der Fehlersuche erhalte ich immer einen Fehler, wenn ich die Bestellung abschicke. Ich dachte, es war mein Code, aber auch wenn ich die mql5-Datei für das Herunterladen testen gibt es auch mir einen Fehler.
Ich denke, das Beispiel ist in Währungen, so dass die Lot-Variable, die 0,1 ist nicht geeignet für Ihren Test, versuchen Sie es so zu ändern (Änderung der mrequest.volume Variable):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // sofortige Orderausführung
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // letzter Briefkurs
mrequest.sl = NormaliseDouble(letzter_Preis.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormaliseDouble(letzter_Kurs.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // Währungspaar
mrequest.volume = minSymbolLot; // Anzahl der zu handelnden Lots
mrequest.magic = EA_Magic; // Magische Auftragsnummer
mrequest.type = ORDER_TYPE_BUY; // Kaufauftrag
mrequest.type_filling = ORDER_FILLING_FOK; // Ausführungsart der Order
mrequest.deviation=100;
Weiß jemand, ob ich diesen EA für Mini-Indizes oder Mini-Dollars verwenden kann?
Haben Sie die Strategie verstanden? Sind Sie sich der Risiken bewusst? Haben Sie die SL- und TP-Niveaus analysiert? Kennen Sie die verwendeten technischen Indikatoren? Wissen Sie, wie Sie diese parametrisieren können? Wissen Sie, wie Sie die Variablen für jeden Vermögenswert (WIN und WDO) anpassen können?
Der Code selbst wurde für jeden Vermögenswert entwickelt und Sie können dies durch das "_Symbol" und für jede Chartzeit "_Period" erkennen.
Jetzt ist es wichtig, dass Sie wissen, was Sie tun, wenn Sie den EA ausführen. Wenn Sie sich dafür entscheiden, schlage ich vor, dass Sie nur auf Demokonten arbeiten, bis Sie das Tool beherrschen und ein besseres Verständnis des Aktienmarktes haben.
[ ]'s
Leute,
Dies ist ein einfacher, schnell geänderter Code, wenn Sie einen Fehler mit mehreren Aufträgen zur gleichen Zeit öffnen haben.
Ersetzen Sie diesen Code: von Zeile 167 -177
mit diesem:
Danke @Samuel Olowoyo
Bitte beraten Sie mich, wie das Problem zu lösen ist. Der Expert Advisor öffnet mehrere Positionen in einer Reihe zu kaufen, das gleiche für den Verkauf.
Der Expert Advisor sieht nicht, dass es bereits offene Kauf- und Verkaufspositionen gibt und eröffnet neue, obwohl es eine Prüfung im Code gibt.
für bereits offene Positionen. Die Prüfung funktioniert aus irgendeinem Grund nicht.
Da die Troll-Moderatoren hier nicht helfen können, kopiere ich die Antwort aus dem englischen Forum:
Leute, dies ist ein einfacher, schnell modifizierbarer Code, wenn ihr einen Fehler mit mehreren gleichzeitig geöffneten Aufträgen habt. Ersetzen Sie diesen Code: von Zeile 167 -177
Mit diesem:
Da ich von den Troll-Moderatoren hier keine Hilfe bekommen kann, kopiere ich die Antwort aus dem englischen Forum:
Leute, dies ist ein einfacher, schnell modifizierbarer Code, wenn Sie einen Fehler mit mehreren gleichzeitig geöffneten Aufträgen haben. Ersetzen Sie diesen Code: von Zeile 167 -177
mit diesem: