![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
Meine Frage ist schon weggeflogen.) Ich sage es noch einmal.
tol64:
Почему то между 2001 и 2006 годом не тестируются эксперты. Смотрел по евро и фунту. Закрыл терминал, удалил историю. Закачалась заново. Всё равно. До 2001 сделки открываются. А начиная с 2001 по 2006 при наличии сигналов пропуск. Почему?
---
Дополнительная информация. Это происходит только, если в настройках тестера выбран таймфрейм D1. Если выбрать таймфрейм D1 в настройках эксперта, а в настройках тестера меньший ТФ, то пропуска нет. Это баг или есть какое-то этому объяснение?
Schauen Sie sich den vom Autor angegebenen Code an. Und in welchem Fall PositionGetDouble aufgerufen wird :)
Nun, ja, wir erhalten die Daten, nachdem wir festgestellt haben, dass es im Prinzip keine Positionen gibt und die Auswahl einer bestimmten Position fehlgeschlagen ist...
Es ist irgendwie seltsam.
An Vedelkin.
Noch einmal. In der Referenz heißt es, dass zur Gewährleistung frischer Positionsdaten empfohlen wird, die Funktion PositionSelect( Symbol() ) kurz vor dem Aufruf aufzurufen. Der Code, den ich hier bereitgestellt habe, widerlegt diese Aussage. Logisch gesehen ist der Code selbst unsinnig, aber er unterstreicht die Unrichtigkeit der Aussage in der Hilfe.
Jetzt:
Und der Fehler ist, dass die Funktion PositionGetDouble(POSITION_VOLUME) Null zurückgeben sollte, wenn es keine Position gibt. Das war's. IMHO.
Nein,Sie sind falsch....
Null zurückgeben, wenn Es gibt(PositionSelect() ) Position mit Volumen=0.
Odersind Sie der Meinung, dass Sie, wenn es keine Position gibt, Null und den Eröffnungskurs =0 zurückgeben sollten?!?
Und der Fehler ist, dass die Funktion PositionGetDouble(POSITION_VOLUME) Null zurückgeben sollte, wenn es keine Position gibt.
:) Der "Fehler" besteht darin, dass es in Ermangelung einer offenen Position keinen Sinn macht, deren Daten anzufordern und auf der Grundlage dieser Daten weitere Berechnungen anzustellen.
Nehmen wir an, Sie wissen mit Sicherheit, dass es keine Position gibt. Warum also sollten Sie die Daten anfordern (um zusätzliche Schritte zu unternehmen), wenn Sie bereits wissen, dass es keine Position gibt? Es ist einfacher, den Code ein wenig umzuschreiben.
Noch einmal. In der Referenz heißt es, dass die Funktion PositionSelect( Symbol() ) kurz vor dem Aufruf der Funktion aufgerufen werden sollte, um die garantierte Erfassung neuer Positionsdaten zu gewährleisten. Der Code, den ich hier bereitgestellt habe, widerlegt diese Aussage. Logisch gesehen ist der Code selbst unsinnig, aber er unterstreicht die Unrichtigkeit der Aussage in der Hilfe.
Der obige Code besagt nur, dass der Autor "zur Gewährleistung frischer Daten" die Funktion PositionSelect() aufruft, die Funktion meldet ihren Misserfolg, aber der Autor verlangt trotzdem frische Positionsdaten. Ist das richtig?
Aber dann bekommen wir folgendes:
Mit anderen Worten, die Entwickler empfehlen, die Funktion aufzurufen, um mit frischen Positionsdaten weiterzuarbeiten, wenn die Funktion erfolgreich abgeschlossen wurde, und sie versprechen überhaupt nichts, wenn die Funktion false zurückgibt. ...Wenn false empfangen wird, empfehlen die Entwickler eine etwas andere Vorgehensweise :)
2. außerdem betrachten wir eine neue Version des Codes:
Wenn die Funktion PositionSelect() fehlschlägt, werden wir aufgefordert, "den Betrag der Position zu berechnen , wenn es keine Position gibt". Aber wer sagt, dass das Scheitern der Funktion PositionSelect() automatisch bedeutet, dass es keine Position gibt? Die Gründe für das Scheitern der Funktion PositionSelect() können unterschiedlich sein.
Ich möchte die Entwickler noch einmal belästigen...
Ich möchte mit der Zeichnung darauf hinweisen, dass es von entscheidender Bedeutung ist,schwebende Aufträge löschen zu können, wenn ein bestimmter Preis erreicht ist. Ich bin viel mehr daran interessiert, als MT4-Händler ohne eine solche Option. Bitte sagen Sie mir, was Ihre zukünftigen Pläne in dieser Richtung sind. Ich danke Ihnen.
Bei der Arbeit mit dem Tester stürzt das Terminal sehr oft ab.
Bei der Arbeit mit dem Tester stürzt das Terminal sehr oft ab.
Bei der Arbeit mit dem Tester stürzt das Terminal sehr oft ab.
Beschreiben Sie dem Service Desk Ihre Situation im Detail und geben Sie an
Terminal-Absturzberichte scheinen regelmäßig automatisch bei den Entwicklern einzutreffen. Wenn Sie möchten, können Sie jedoch einen Antrag an die zuständige Behörde stellen, in dem Sie alle Einzelheiten angeben und die Protokolle anhängen.
Beschreiben Sie dem Service Desk Ihre Situation im Detail und geben Sie an