Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 683
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
Sie haben sie nicht am Anfang oder irgendwo anders initialisiert, sondern nur deklariert
Ich habe vor der Verwendung geschrieben, d.h. wenn Sie die Variablen SredRazmax, SredRazmin, Sredn als Summen von Array-Werten haben, dann müssen Sie, um die Summe korrekt zu berechnen, die Variable auf Null setzen und dann die Array-Werte addieren und sie in dieser Variablen speichern
d.h.
und die zweite, was Sie eine Frage haben, in der Indikator jeder Tick wirdOnCalculate() aufrufenund es bedeutet, dass Sie ständig zählen Tops von ZigZag bei jedem Tick, d.h. etwa 40-60 mal pro Sekunde.
Danke, aber ich habe versucht, sie auf Null zu setzen und versucht,OnStart anstelle vonOnCalculate() zuverwenden, dieWerte springen immer noch und es ist nicht klar für mich, wenn ww=0 (Array-Wert wird immer angezeigt), warum Werte in der Mitte springen, wie man es nicht jeden Tick zählen und nur Werte aus Array zählen lassen?
Danke, aber ich habe versucht, sie auf Null zu setzen undOnStart anstelle vonOnCalculate() zuverwenden.
Ich glaube, ich kann nicht erklären, warum es so passiert, die Sache ist, dass OnStart() in Skripten und OnCalculate() in Indikatoren verwendet wird. Sie sollten den Unterschied zwischen Skripten und Indikatoren in MQL verstehen.
Ich bin nicht ganz klar, was Ihre Aufgabe ist? Sie wollen die Werte von was ausgeben? in den Code, Sie addieren die Preise, bei denen die ZigZag Spitzen auf dem gesamten Chart befinden, in der Ausgabe schreiben Sie "Average Spread" und drucken Sie den Wert(SredRazmax-SredRazmin)/nn, und die Berechnung wird für alle Bars durchgeführt
Wozu brauchen Sie den Indikator, wenn Sie keine Indikatorpuffer zum Zeichnen verwenden? Im Indikator sind die Puffer an die Balken angehängt, und ihre Werte verschieben sich, sobald ein neuer Balken erscheint.
Ich denke, ich kann nicht erklären, warum es passiert, der Punkt ist, dass OnStart() in Skripten verwendet wird, und OnCalculate() in Indikatoren, müssen Sie verstehen, wie Skripte von Indikatoren in MQL unterscheiden
Ich bin nicht ganz klar, was Ihre Aufgabe ist? Sie wollen die Werte von was ausgeben? in den Code, addieren Sie die Preise, bei denen die ZigZag Spitzen auf dem gesamten Chart befinden, in der Ausgabe schreiben Sie "Average Spread" und drucken Sie den Wert(SredRazmax-SredRazmin)/nn, und die Berechnung wird für alle Bars durchgeführt
Wozu brauchen Sie einen Indikator, wenn Sie keine Indikatorpuffer zum Zeichnen verwenden? Im Indikator sind die Puffer mit den Balken verbunden und ihre Werte verschieben sich, sobald ein neuer Balken erscheint.
Um ehrlich zu sein, habe ich das Problem vereinfacht (die ursprüngliche Formel sieht ein wenig anders aus), ich dachte, ich könnte verstehen, warum die Werte des Durchschnitts springen, wenn der Nullwert in der Matrix konstant bleibt. Ich habe zwei Schleifen, eine für das Füllen des Arrays, und die andere für die Berechnung des Durchschnitts, gibt es eine Grenze von nn, und ich wollte eigentlich ein Diagramm ausgeben - es ist ein Standard-Zickzack, aber iCustom ist die Hölle aus ihm heraus zu zeichnen, und der Durchschnitt... Vom Nullknoten, wenn er größer ist als der vorherige, subtrahiert man den vorherigen Knoten und vom vorherigen subtrahiert man den vorherigen (er hat ein Minuszeichen, also muss er mit minus 1 multipliziert werden) und all dies wird summiert und durch eine bestimmte Anzahl von nn geteilt. Wir erhalten die durchschnittliche Spannweite der Scheitelpunkte. Außerdem wollte ich andere Durchschnittswerte für Zickzack ermitteln, aber ich blieb bei "springenden" Werten hängen.
Dies ist in etwa der ursprüngliche Zustand:
Um ehrlich zu sein, habe ich das Problem nur vereinfacht (ursprünglich sieht die Formel etwas anders aus), ich dachte, ich könnte verstehen, warum die Werte des Durchschnitts springen, wenn der Nullwert im Array konstant bleibt. Ich habe zwei Schleifen, eine für das Füllen des Arrays, und die andere für die Berechnung des Durchschnitts, gibt es eine Grenze von nn, und ich wollte eigentlich ein Diagramm als auch ausgeben - es ist ein Standard-Zickzack, aber iCustom zeichnet die Hölle aus ihm heraus, und der Durchschnitt... Vom Nullknoten, wenn er größer ist als der vorherige, subtrahiert man den vorherigen Knoten und vom vorherigen subtrahiert man den vorherigen (er hat ein Minuszeichen, also muss er mit minus 1 multipliziert werden) und all dies wird summiert und durch eine bestimmte Anzahl von nn geteilt. Wir erhalten die durchschnittliche Spannweite der Scheitelpunkte. Außerdem wollte ich andere Durchschnittswerte für Zickzack ermitteln, aber ich blieb bei "springenden" Werten hängen.
Das ist in etwa der ursprüngliche Stand der Dinge:
Ich verstehe es nicht wirklich, es ist spät, ich bin müde, ich habe es so verändert, wie ich es gesehen habe, ich habe Zweifel, wie sich der Indikator bei einem Null-Balken verhält (ich habe es nicht überprüft), aber er zeichnet und zeigt Kommentare gemäß Ihrer Formel an
Können Sie mir helfen, ein solches Problem zu lösen? (Wenn möglich.)
Der Expert Advisor gibt unter bestimmten Bedingungen eine Warnung aus. Ist es möglich, das Fenster, das den Alarm ausgelöst hat, ebenfalls aktiv werden zu lassen?
Können Sie mir helfen, ein solches Problem zu lösen? (Wenn möglich.)
Der Expert Advisor gibt unter bestimmten Bedingungen eine Warnung aus. Ist es möglich, das Fenster, das den Alarm ausgelöst hat, ebenfalls aktiv werden zu lassen?
Ich habe einige Zweifel, wie sich der Indikator bei einem Null-Balken verhält (ich habe es nicht überprüft), aber er zeichnet und verwendet Ihre Formel, um den Kommentar auszugeben.
Ja, danke für Ihre Zeit, es funktioniert, ich muss etwas falsch gemacht haben. Aber es ist nicht die Ausgabe ein Array in den Kommentar (es sollte nur Scheitelpunkte, richtig?) und zählt falsch mit Minus und Zahl..., die Zickzack hat eine andere Verteilung zwischen Scheitelpunkten. Die Idee ist, den vorhergehenden kleineren Scheitelpunkt vom letzten größeren Scheitelpunkt (der gerade gebildet wird) zu subtrahieren, und vom vorhergehenden kleineren Scheitelpunkt auch den größeren zu subtrahieren, und die Zahl wird mit Minuszeichen sein, wir multiplizieren sie mit (-1) und so weiter, und all dies wird nn-mal summiert und durch nn geteilt, wir erhalten die durchschnittliche Abfahrt. Ungefähr auf 4 Uhren würde dies 1,69 (von bis) auf USDJPY sein. Außerdem wollte ich die durchschnittliche Anzahl der Balken zwischen den Höchstständen berechnen. Ich werde nun versuchen, Ihren Code zu verstehen, was ich falsch gemacht habe, warum er nicht gezeichnet hat und warum er nicht richtig berechnet...
Ja, vielen Dank für Ihre Zeit, es funktioniert wirklich, ich muss etwas falsch gemacht haben. Aber es gibt nicht das Array im Kommentar aus (es sollte nur Scheitelpunkte haben, richtig?) und zählt falsch mit Minus und Zahl..., der Zickzack hat eine andere Verteilung zwischen Scheitelpunkten. Die Idee ist, den vorhergehenden kleineren Scheitelpunkt vom letzten größeren Scheitelpunkt (der gerade gebildet wird) zu subtrahieren, und vom vorhergehenden kleineren Scheitelpunkt auch den größeren zu subtrahieren, und die Zahl wird mit Minuszeichen sein, wir multiplizieren sie mit (-1) und so weiter, und all dies wird nn-mal summiert und durch nn geteilt, wir erhalten die durchschnittliche Abfahrt. Ungefähr auf 4 Uhren würde dies 1,69 (von bis) auf USDJPY sein. Außerdem wollte ich die durchschnittliche Anzahl der Balken zwischen den Höchstständen berechnen. Ich werde nun versuchen, Ihren Code zu verstehen, was ich falsch gemacht habe, warum er nicht gezeichnet hat und warum er nicht richtig berechnet...
Die Tops im Kommentar werden nicht ausgegeben, weil IndikatorpufferHZZ[] kopierte Werte des Indikatorpuffers ZigZag enthält, sonst können wir nicht zeichnen, ich habe bewusst in 2 Bedingungen der Vertex-Erkennung nach oben und unten aufgeteilt:
Wenn Siemehrere Tops in ZZ benötigen, müssen Sie ein weiteres Array erstellen, um diese Daten zu speichern. Der neue Indikatorpuffer erschwert dies, da alle Arrays, die mit Indikatorpuffern verbunden sind, zusammen mit dem Chart "rutschen", wenn ein neuer Balken erscheint.
ZS: der Code ist mein Beispiel, und ich denke, dass es braucht, um die Schleife zum 1. bar, und nicht auf 0, wird ständig neu berechnen die Werte der SredRazmax, kann ich nicht überprüfen, jetzt kein Terminal in den PC
Die Tops im Kommentar werden nicht ausgegeben, weil IndikatorpufferHZZ[] kopierte Werte des Indikatorpuffers ZigZag enthält, sonst können wir nicht zeichnen, ich habe bewusst in 2 Bedingungen der Vertex-Erkennung nach oben und unten aufgeteilt:
Wenn Sieein paar Tops in ZZ benötigen, müssen Sie ein weiteres Array erstellen, um diese Daten zu speichern. Der neue Indikatorpuffer erschwert dies, da alle Arrays, die mit Indikatorpuffern verbunden sind, zusammen mit dem Diagramm "rutschen".
ZS: der Code ist mein Beispiel, und ich denke, dass es brauchen, um die Schleife zum 1. bar, und nicht auf 0, wird ständig neu zu berechnen den Wert der SredRazmax, kann ich nicht überprüfen, jetzt kein Terminal in den PC