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
Versetzen Sie sich in seine Lage. Das Leben in einem fremden Land, weit weg von der Heimat, geht nicht vorbei. Ich bin gereizt, wütend auf mich selbst, weil ich einen nicht wieder gutzumachenden Fehler gemacht habe, als ich Gastarbeiter wurde.)
Ich habe if(OrderSelect(i,SELECT_BY_POS)) absichtlich zu einem separaten Block gemacht. Um den Fehlerwert während der Fehlersuche zurückgeben zu können. else {/// Schreiben Sie den Selektionsfehler nach Belieben und geben Sie ihn zurück, zum Beispiel EMPTY}.
Stellen wir uns eine Situation vor, in der ein Fehler bei der Auswahl eines auf dem Markt zu erteilenden Auftrags vorliegt. Lassen Sie uns darüber diskutieren. Ich bin noch nicht auf eine gestoßen.
Und nennen Sie mindestens einen Grund, warum eine korrekt erstellte Auftragsschleife "falsch" zurückgeben kann.
Ups, ich habe nicht bemerkt, dass Artem bereits gefragt hat, oops. Und doch.
Welchen Unterschied macht das?
Im allgemeinen Fall kann sie zurückkehren. Was also, wenn die Beobachtung einiger Bedingungen oder sogar einer Reihe verschiedener Bedingungen zeigt, dass sie nicht falsch ist?
Wir kennen die Einzelheiten der Implementierung dieser Funktion nicht und die Dokumentation enthält keine diesbezüglichen "Vermutungen". Was ist, wenn die Funktion bei der nächsten Bedingungsreihe beim nächsten Makler plötzlich falsch zurückgibt?
Ich werde die Frage nach dem Grund bzw. der Situation trotzdem beantworten, denn es ist ganz einfach: Der Grund könnte ein Implementierungsfehler dieser Funktion sein, den das Entwicklungsteam bei der Veröffentlichung der nächsten Version von MT gemacht hat. Ich hoffe, dieses Ereignis ist wahrscheinlich genug, um ernsthaft in Betracht gezogen zu werden.
Nehmen wir an, dass die Funktion aufgrund dieses hypothetischen Fehlers nach dem Zufallsprinzip, aber im Durchschnitt nur bei jeder fünften Anfrage anfängt, falsch zurückzugeben.
Normalerweise kann man sich nicht im Voraus Dinge ausdenken, die man nicht weiß. Es hat also wenig Sinn zu fragen, woran es liegen könnte. Wenn dies geschieht, können Sie leicht erklären, warum.
Aber nicht zu wissen, was in der Zukunft passieren könnte, hindert Sie nicht daran, sich dagegen zu wehren. Es kann sich herausstellen, dass einige High-Level-Algorithmen wegen eines empfangenen falschen Wertes eine Menge Ärger machen werden. Sie werden nicht wissen, dass der Wert falsch ist.
Aber wenn sie wissen, dass es keinen Wert gibt, und wenn es einen gibt, dann ist er wahr, dann werden sie kein Chaos anrichten, wenn es keine eigenen Fehler gibt. Deshalb sollte die Information über die Unmöglichkeit, den Wert zu berechnen, nicht nur im Debugging-Modus, sondern auch im Kampfmodus gegeben werden.
Ist es möglich, externe Daten in den Indikator zu laden, beispielsweise aus einer Textdatei?
Gibt es z.B. einen Tagespreis und es muss eine Linie auf einem beliebigen Zeitdiagramm erstellt werden?
DATE Preis
04.12.2014 100.00
03.12.2014 101.12
02.12.2014 102.45
01.12.2014 103.23
28.11.2014 102.43
27.11.2014 101.90
Beispiele für die Verwendung der Funktion OpenPosition().
1. 0,1 Lot des aktuellen Instruments kaufen
2. Verkaufe 0,2 Lots EURUSD
3. Verkaufen Sie 0,12 Lots USDCAD mit einem Stopp von 20 Pips
4. Kaufen Sie 0,15 Lot USDJPY mit 40 Pips Stopp
5. Verkaufe 0.1 Lot GBPJPY mit Stop 23 und Takeaway 44 Pips
Im Anhang finden Sie das Skript zum Testen der Funktion OpenPosition(). Die ersten 4 Beispiele sind auskommentiert.Ich weiß nicht, ob Sie mir antworten werden oder nicht. Ich sitze hier und weiß nicht, wie ich meinen EA mehrwährungsfähig machen kann!
Und nennen Sie mir einen Grund, warum eine korrekt erstellte Auftragsschleife "falsch" zurückgeben könnte.
Ups, ich habe nicht bemerkt, dass Artem bereits gefragt hat, oops. Und doch.
Vorsicht!
Nach einer weiteren Aktualisierung startete das Terminal neu und zeigte nur noch die Aufträge vom letzten Tag an. Die Bestellhistorie wird nicht angezeigt. Die Funktion sollte etwas zurückgeben - z. B. keinen Verlauf.
Der Makler hat einige Aufträge gelöscht.
Es gibt ein Loch im Hauptspeicher. Ihr Speicher ist abgestürzt, und die Funktion belegt eine minderwertige Speicherzelle. Sie kann auf dem Monitor angezeigt werden. Sie kann erscheinen oder auch nicht. Möglicherweise liegen andere Hardwareprobleme vor.
Das Terminal wird neu gestartet und "verliert" die Kommunikation mit dem Server. Ich habe Mt3 mit einem Proxyserver verwendet. Früher hatte ich eine Einwahlverbindung mit sehr begrenzter Bandbreite und Zeit, und die Qualität des Internets war grauenhaft. Ich sehe Ticks kommen und das Diagramm ist in Bewegung. Als ich versuchte, eine Bestellung zu öffnen, meldete das Terminal "keine Verbindung mit dem Server".
Ich stand vor einem Problem in MT4 und es besteht immer noch: Ich bekam einen Tick und einen schwarzen (leeren) Chart-Bildschirm. Wenn ich das Diagramm mit der Maus ziehe oder der Roboter einen Fehler meldet, erhalte ich eine Fehlermeldung und der Roboter stürzt ab. Wenn ich den Chart mit der Maus ziehe oder ein neuer Tick kommt, ist alles normal. Deshalb prüfe ich beim Dividieren zuerst, durch was ich dividieren soll, und wenn es nicht gleich Null ist, mache ich weiter!
Lieber KimIV, ich verwende Ihre Funktion, um alle Positionen zu schließen, wenn ein bestimmter Gewinn erreicht wurde, und ich bin auf eine Situation gestoßen, in der ein schwebender Auftrag eine andere Position ausgelöst hat, die noch nicht geschlossen wurde. Ich habe jetzt eine zusätzliche Überprüfung einer solchen Situation und einen wiederholten Aufruf Ihrer Funktion implementiert. Sind Sie der Meinung, dass diese Verbesserung innerhalb der Funktion implementiert werden sollte, nachdem der Hauptabschlusszyklus beendet ist?
Dies sind die Funktionen ClosePosBySortLots() und ClosePositions();
Es gibt Funktionscodes zum Entfernen von ausstehenden Aufträgen sowohl für Online- als auch für History-Tests - https://forum.mql4.com/ru/38949#434195
Können Sie den Unterschied zwischen Tests und Online erklären?