Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 553
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
Anstelle von Close[2] setzen Sie den Indikatorwert auf den zweiten Balken (z.B. iRSI(.......,2) ) und anstelle von Close[1] setzen Sie den Indikatorwert auf den ersten Balken. Und uroven ist der Wert des Levels.
Und den Rest haben Sie bereits oben erfahren.
Voraussetzung:
ProfitSellDBL wird hier berechnet
Gewinn_Upgr = 0,01
Tral_Start__Upgr wird mit einer externen Variablen vom Typ int gleichgesetzt und ist gleich 5.
Tral_Size__Upgr ist ebenfalls gleich 4
TV - Tick-Wert, =10
SummeLotSellDBL = 0,04
Lesen. Ich sah, wie es funktionieren würde, wenn Tral_Start__Upgr, Tral_Size__Upgr und ihre externen Variablen als double definiert wären. D.h. wenn alles vom gleichen Typ ist, ohne Konvertierung und Datenverlust. Das Ergebnis ist das gleiche. Was habe ich falsch gemacht?
Ein Blinder spricht mit einem Gehörlosen. Wenn Sie wollen, dass jemand es testet, brauchen Sie so wenig Code wie möglich, der auf einem anderen Rechner kompiliert und getestet werden kann. Kein Code - nichts, worüber man reden könnte.
Hinzugefügt: Debugging verwenden(Debugging):
-Vorkonfiguration
-Haltestellen
-Start derFehlersuche
-ObservierbareAusdrücke
-Stapelansicht aufrufen
-SchrittweiseFehlersuche
-Anhalten, Fortsetzen und Beenden der Fehlersuche
-HistorischeFehlersuche
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
comp, 2016.04.03 18:21
Laufzeitfehler
In vier Fällen hat es gut funktioniert! In fünf Fällen ist es eine Katastrophe. Ist dies eine weitere architektonische Einschränkung im Vergleich zu Quad? Geben Sie mir einen Link zu einer Diskussion über dieses Thema, ich konnte ihn selbst nicht finden.
Verstehe ich das richtig, dass den Indikatorpuffern erst nach dem ersten Aufruf des Terminals (nicht manuell) OnCalculate etwas zugewiesen werden kann?
Auf Indikatorpuffer kann zugegriffen werden, nachdem OnCalculate() aufgerufen wurde. Gleichzeitig sollte der Indikatorpuffer selbst im Bereich der globalen Variablen deklariert werden:
Ich glaube, ich habe gefunden, wonach ich gesucht habe, aber die Altertümlichkeit des Codes gibt einen Fehler
Helfen Sie mir, es zu reparieren ......, wenn es nicht zu viel Mühe macht.
und wenn Sie mir helfen können, es auf die rechte Seite des Bildschirms zu drehen, wäre das großartig.
Auf die Indikatorpuffer kann zugegriffen werden, nachdem OnCalculate() aufgerufen wurde.
Wie sich herausstellt, liegen Sie falsch. Sie können sich nur bewerben, wenn das Terminal OnCalculate aufruft. In diesem Fall ist die Bedingung in MT4 flexibler, da es genügt, OnCalculate nur einmal aufzurufen. Aber in MT5, müssen Sie für den Aufruf von OnCalculate durch das Terminal selbst jedes Mal nach dem SetIndexBuffer warten. Proof
In MT4 funktioniert dieser Indikator ohne Probleme, in MT5 stürzt er mit einem Fehler ab. Wie sich herausstellte, müssen Sie in MT4 nur auf den ersten Aufruf von OnCalculate durch das Terminal warten und mit den Puffern tun, was Sie wollen, einschließlich ihrer Neudefinition mit SetIndexBuffer. Aber in MT5 muss man nach JEDEM SetIndexBuffer auf den ersten Aufruf von OnCalculate durch das Terminal warten.
Diese Funktion ist nirgends dokumentiert. Und es scheint nicht der Definition eines "Anfängers" zu entsprechen.
Können wir davon ausgehen, dass dieses Verhalten in MT5 genauso sein wird wie in MT4? D.h. nach dem ersten Aufruf von OnCalculate durch das Terminal selbst wäre es möglich, SetIndexBuffer ohne Probleme aufzurufen?
Wie sich herausstellt, liegen Sie falsch. Sie können ihn nur aufrufen, wenn OnCalculate vom Terminal selbst aufgerufen wird. In diesem Fall ist die Bedingung in MT4 flexibler, da Sie OnCalculate nur einmal aufrufen müssen. Aber in MT5, müssen Sie für den Aufruf von OnCalculate durch das Terminal selbst jedes Mal nach dem SetIndexBuffer warten. Proof
In MT4 funktioniert dieser Indikator ohne Probleme, in MT5 stürzt er mit einem Fehler ab. Wie sich herausstellte, müssen Sie in MT4 nur auf den ersten Aufruf von OnCalculate durch das Terminal warten und dann mit den Puffern tun, was Sie wollen, einschließlich ihrer Neudefinition mit SetIndexBuffer. Aber in MT5 muss man nach JEDEM SetIndexBuffer auf den ersten Aufruf von OnCalculate durch das Terminal warten.
Diese Besonderheit ist nirgends dokumentiert. Und es scheint nicht der Definition eines "Anfängers" zu entsprechen.
Können wir davon ausgehen, dass dieses Verhalten im MT5 genauso sein wird wie im MT4? D.h. nach dem ersten Aufruf von OnCalculate durch das Terminal selbst wird es möglich sein, SetIndexBuffer ohne Probleme aufzurufen?