Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 494
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
Bis gestern hat mein EA jeweils nur einen Auftrag geöffnet und der nächste wird erst geöffnet, wenn ich einen Auftrag erteile. Wie kann ich nun erreichen, dass mein EA Aufträge öffnet, wenn der vorherige Balken über (unter) dem Kanal geöffnet hat?
Wenn Sie dieses Codefragment analysieren, dann wird nach diesem Code, wenn die FunktionCountTrades() Null zurückgibt, die Bedingung if (CountTrades()==0) CheckForOpen()ausgeführt und die FunktionCheckForOpen() aufgerufen.Beim nächsten Tick, wenn die Order eröffnet wurde,solltedie FunktionCountTrades() den Wert 1 zurückgeben, und dann ist die else-Bedingung erfüllt
Wenn sich herausstellt, dass CountTrades()<max_trades ist, wird die FunktionCheckForOpen() erneut ausgeführt. DemCode zufolge istder Wert der Variablen max_trades gleich 3. Sie haben also 4 offene Aufträge.
Wenn der EA Aufträge nicht korrekt öffnet, dann überprüfen Sie die Logik, in der Sie in der Funktion CheckForOpen() die Bedingungen definieren, unter denen Positionen geöffnet werden sollen. Überprüfen Sie auch die Zeitbedingungen, wenn (CurrTime < EaStartTime || CurrTime >= EaEndTime). An Ihrer Stelle würde ich die Funktion if (TimeHour(TimeCurrent()) = Startstunde && TimeMinute(TimeCurrent()) = Startminuten ). Die Stunden und Minuten werden in Variablen vom Typ int oder uint festgelegt.
Wenn Open Bar Number 1 über/unter dem Kanal liegt.
Sie haben also 4 offene Aufträge.
Wenn der EA Aufträge nicht korrekt öffnet, überprüfen Sie die Logik, indem Sie in der Funktion CheckForOpen() die Bedingungen angeben, unter denen Positionen geöffnet werden müssen. Und prüfen Sie auch die Zeitbedingungen, wenn (CurrTime < EaStartTime || CurrTime >= EaEndTime). An Ihrer Stelle würde ich die Funktion if (TimeHour(TimeCurrent()) = Startstunde && TimeMinute(TimeCurrent()) = Startminuten ). Die Stunde und die Minute werden in Variablen vom Typ int oder uint festgelegt.
Ich wollte 3 Aufträge eröffnen, aber das war nicht das, was ich vorhatte; ich wollte bis zu drei Aufträge, aber einen Auftrag für jeden neuen Balken.
Es gibt kein Problem mit der Zeit, es funktioniert in einem genau festgelegten Zeitraum.
Ich wollte bis zu drei Aufträge, aber einen Auftrag für jeden neuen Balken. Es gibt Zeiten, in denen mehrere Balken hintereinander positive Signale geben.
Es gibt kein Problem mit der Zeit, es funktioniert in einem genau festgelegten Zeitraum.
2016.01.13_05:14 UHR. Hallo Herr Karputov! Ich schrieb in MQL4
.mq4-Datei und erhielt die .ex4-Datei. Aber im Strategietester funktioniert es nicht. Finale
war es, einen EA für MT4 zu schreiben. In MQL5 habe ich .mq5 und
.ex5-Dateien. Und .ex5-Datei geöffnete Gewerke. Die vierte Version unterscheidet sich von
Die vierte Version hat einige Unterschiede zur fünften Version, und ich bin noch kein guter MQL-Programmierer, deshalb habe ich schlechte Ergebnisse.
Ich habe nicht verstanden, was jetzt falsch ist, die Logdatei des Testers wurde gespeichert. Я
Ich werde versuchen, ihn zu übersetzen. In der Zwischenzeit bitte ich Sie, mir zu sagen
Was ist mit dem Programmcode nicht in Ordnung? Während Sie antworten, werde ich versuchen
um es herauszufinden.
Ich war überrascht, als ich in meiner vierten Version des Editors die Möglichkeit fand, zu schreiben
Ich wollte es gerade schreiben. Aber ich habe es nicht geschrieben. Ich füge bei
Tester-Protokolldateien und ein Bildschirmfoto. 05:30 MSC.
2016.01.13_05:14 UHR MOSKAUER ZEIT. Hallo Herr Karputov! Ich habe in MQL4 geschrieben
.mq4-Datei habe ich eine .ex4-Datei erhalten. Aber im Strategietester funktioniert es nicht.
Wo kann ich Fehlerbeschreibungen finden?
Ich verstehe nicht, was der Compiler nicht mag, warum er mich warnt?
Prüfen Sie den Vorrang der Operatoren auf mögliche Fehler; verwenden Sie Klammern, um den Vorrang zu verdeutlichen.
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
und hier
Ausdruck hat keine Wirkung
for(calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
Wo kann ich Fehlerbeschreibungen finden?
Ich verstehe nicht, was der Compiler nicht mag, warum warnt er mich?
Neben dem Fehlertext meldet der Compiler auch die Nummer der Codezeile, in der der Fehler gefunden wurde, und seine Position in der Zeile.