Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 545
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
Was für eine Aufnahme? Sie können denselben Indikator mit völlig anderen Parametern aufrufen
Wie erkennt der Indikatorcode die übermittelten Parameter, deren Namen unterschiedlich sind?
Aber alles ist so, wie Sie gesagt haben. Ich habe es noch einmal mit dem Skript überprüft)
Wenn im Indikator selbst im Expert Advisor
Wie erkennt der Indikatorcode die übermittelten Parameter, wenn die Namen unterschiedlich sind?
Aber alles ist so, wie Sie gesagt haben. Erneut mit dem Skript geprüft)
Die Variable(n) im aufrufenden Programm kann/können beliebig benannt werden und ihr Name steht in keinem Zusammenhang mit dem Variablennamen im Indikator, es handelt sich um unterschiedliche Variablen und sie werden von unterschiedlichen Terminal-Threads aufgerufen.
Der Indikator wird anhand seines Namens aufgerufen, die Parameter dafür werden bei jedem Aufruf ab der 4. Position und dann die iCustom()-Parameter übergeben.
Wenn die Variable per1=9; deklariert wird und iCustom() auf Position 4 steht, wird der Indikator mit einer Periode von 9 berechnet, wenn Sie eine andere Variable setzen, wird deren Wert bei der Berechnung verwendet. Die Variable, die als erster Parameter des Indikators übergeben wird (ihre Referenz) - an vierter Stelle iCustom() des zweiten und so weiter.
Die Variable(n) im aufrufenden Programm können beliebig benannt werden, ihr Name steht in keinem Zusammenhang mit dem Variablennamen im Indikator, es handelt sich um unterschiedliche Variablen, und sie werden von unterschiedlichen Terminal-Threads aufgerufen.
Der Indikator wird über seinen Namen aufgerufen, die Parameter werden ihm bei jedem Aufruf ab der 4. Position übergeben, und dann die iCustom()-Parameter.
Wenn die Variable per1=9 deklariert wird und iCustom() auf 4 steht, wird der Indikator mit einer Periode von 9 berechnet; wenn Sie eine andere Variable setzen, wird ihr Wert bei der Berechnung verwendet, und dies gilt für alle Parameter des Indikators, wobei es darauf ankommt, sie in der richtigen Reihenfolge zu setzen, wie im Indikator selbst. Die Variable, die als erster Parameter des Indikators übergeben wird (ihre Referenz) - der vierte iCustom() des zweiten und so weiter.
Ich dachte, ich sollte das Forum nicht überfrachten und ein separates Thema eröffnen, aber ich hoffe wirklich auf ein konstruktives Feedback zu meinem Problem, ohne das ich nicht weiterkomme :(.
Ich habe versucht, verschiedene Indikatoren zu schreiben, alles scheint OK zu sein, jetzt habe ich alles in meinen EA mit iCustom() Funktion importiert. Der Code im Expert Advisor:
Der Indikator selbst (ich habe ihn zu Testzwecken geschrieben)
Als nächstes die EMPTY_VALUE-Sache beim Testen.
D.h., wenn wir anfangen zu testen, haben wir das Startdatum des EA und alles vor diesem Datum gibt iCustom die richtigen Indikatorwerte, alles danach wird direkt getestet - EMPTY_VALUE. :(
Ich bin schon müde, Google und Forum, sie schreiben über "nicht in die Zukunft schauen", aber ich sehe nicht, dass in den Code. Wo bin ich ein Narr?)
Ich dachte, ich sollte das Forum nicht vermüllen und ein separates Thema eröffnen, aber ich hoffe wirklich auf ein konstruktives Feedback zu meinem Problem, ohne das ich nicht weiterkomme :(.
Ich habe versucht, verschiedene Indikatoren zu schreiben, alles scheint OK zu sein, jetzt habe ich alles in meinen EA mit iCustom() Funktion importiert. Der Code im Expert Advisor:
Der Indikator selbst (ich habe ihn zu Testzwecken geschrieben)
Als nächstes die EMPTY_VALUE-Sache beim Testen.
D.h., wenn wir anfangen zu testen, haben wir das Startdatum des EA und alles vor diesem Datum gibt iCustom die richtigen Indikatorwerte, alles danach wird direkt getestet - EMPTY_VALUE. :(
Ich bin schon müde, Google und Forum, sie schreiben über "nicht in die Zukunft schauen", aber ich sehe nicht, dass in den Code. Wo bin ich ein Narr?)
Der Fehler scheint im Code des Expert Advisors zu liegen, warum verwenden Sie nicht einen Debugger? Setzen Sie Kontrollpunkte, sehen Sie Variablenwerte, und sehen Sie, ob der Indikator aufgerufen wird, was vor und nach Ihrem Datum ist
Der Debugger kann nur im Demokonto-Modus verwendet werden, nicht in der Testphase, außerdem habe ich geschrieben - der Indikator wird aufgerufen, funktioniert und gibt Werte zurück, sogar korrekt, aber nur vor dem angegebenen Datum (Startdatum der Testphase). Ich gebe die Werte der Variablen im EA aus, deshalb sage ich, dass zunächst alles gut ist, und dann EMPTY_VALUE
Der Debugger kann nur im Demokontomodus verwendet werden, nicht im Testmodus, außerdem habe ich geschrieben - der Indikator wird aufgerufen, funktioniert und liefert Werte, sogar korrekte, aber nur bis zum angegebenen Datum (Teststartdatum). Ich gebe die Werte der Variablen im EA aus, deshalb sage ich, dass zunächst alles gut ist, und dann EMPTY_VALUE
Haben Sie sorgfältig gelesen, wie man neue Balken in benutzerdefinierten Indikatoren verfolgt?
[QUOTE]Der erste Parameter rates_total enthält die Anzahl der Balken, die dem Indikator zur Berechnung zur Verfügung stehen, und entspricht der Anzahl der im Chart verfügbaren Balken.
Beachten Sie die Verbindung zwischen dem von OnCalculate() zurückgegebenen Wert und dem zweiten Eingabeparameter prev_calculated. Der Parameter prev_calculated im Funktionsaufruf enthält einen Wert, der von OnCalculate() beim vorherigen Aufruf zurückgegeben wurde. Dies ermöglicht sparsame Algorithmen für die Berechnung des benutzerdefinierten Indikators, um wiederholte Berechnungen für die Balken zu vermeiden, die sich seit dem letzten Aufruf dieser Funktion nicht verändert haben.
Dazu reicht es in der Regel aus, den Wert des Parameters rates_total zurückzugeben, der die Anzahl der Takte im aktuellen Funktionsaufruf enthält. Wenn sich seit dem letzten Aufruf von OnCalculate() die Preisdaten geändert haben (eine tiefere Historie wurde gepumpt oder Historienleerstellen wurden aufgefüllt), dann wird der Wert des Eingabeparameters prev_calculated vom Terminal auf Null gesetzt. [/QUOTE]
Sie müssen den Durchschnitt der Ein-Tages-Momente über 20 Tage ermitteln und dann den Durchschnitt der 20-Tages-Momente über fünf Tage.
Es war kein Problem, den 20-Tage-Durchschnitt zu finden. Aber ich weiß nicht, wie manaus diesem Durchschnitt den Fünftagesdurchschnitt ermitteln kann.
Sie müssen den Durchschnitt der Ein-Tages-Momente über 20 Tage ermitteln und dann den Durchschnitt der 20-Tages-Momente über fünf Tage.
Es war kein Problem, den 20-Tage-Durchschnitt zu finden. Aber ich weiß nicht, wie manaus diesem Durchschnitt den Fünftagesdurchschnitt ermitteln kann.
Hilfe
Timer funktioniert nicht, liefert Fouls und Fehler 4051
Oder sollte es im Testgerät nicht funktionieren?