MT4 iMAOnArray und iBandsOnArray Auswirkungen der Anzahl der Elemente auf die Berechnungen - Seite 7
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
Heißt das, dass die Funktion iMAOnArray() nach if(rates_total-i >= rates_total-100);, wenn nur noch 100 Balken zu berechnen sind, zunächst das ALL-Array neu berechnet?
Heißt das, dass die Funktion iMAOnArray() nach if(rates_total-i >= rates_total-100);, wenn nur noch 100 Balken zu berechnen sind, zunächst das GANZE Array neu berechnet?
iMAOnArray
Gibtden Wertdestechnischen Indikators Gleitender Durchschnittzurück, der anhand der im Array gespeicherten Daten berechnet wurde.
doubleiMAOnArray(
doublearray[],// array
inttotal,// Anzahl der Elemente
intma_period,//Zeitraum
intma_shift,// Verschiebung des Durchschnitts
intma_method,// Mittelungsmethode
int shift//shift
);
Parameter
array[]
[in] Array mit Daten.
insgesamt
[in]Anzahl der zu berechnenden Elemente. 0 bedeutet alle Elemente des Arrays.
Das ist richtig, der erste Aufruf von iMAOnArray mit 0 in der Größe Wert bedingungslos berechnet das gesamte Array, und dann scheint es, dass nur die letzten oder höchstens die letzten 2 Werte berechnet werden, obwohl wer weiß, kann es alles neu berechnen... Deshalb verlangsamt sich die Entwicklung. Deshalb spielt es keine Rolle, wie viele Balken Sie durch Offset erhalten wollen, es wird sowieso das gesamte Feld gezählt.
iMAOnArray
Gibtden Wertdestechnischen Indikators Gleitender Durchschnittzurück, der anhand der im Array gespeicherten Daten berechnet wurde.
doubleiMAOnArray(
doublearray[],// array
inttotal,// Anzahl der Elemente
intma_period,//Zeitraum
intma_shift,// Verschiebung des Durchschnitts
intma_method,// Mittelungsmethode
int shift//shift
);
Parameter
array[]
[in] Array mit Daten.
insgesamt
[in]Anzahl der zu berechnenden Elemente. 0 bedeutet alle Elemente des Arrays.
Das ist richtig, der erste Aufruf von iMAOnArray mit 0 in der Größe Wert wird sicherlich das gesamte Array zu berechnen, und dann scheint es, dass nur die letzten oder höchstens die letzten 2 Werte berechnet werden, obwohl wer weiß, kann es alles neu berechnen... Deshalb verlangsamt sich die Entwicklung. Deshalb spielt es keine Rolle, wie viele Balken Sie durch Offset erhalten wollen, es wird sowieso das gesamte Feld gezählt.
Dann habe ich mich geirrt. Warum gibt es dann keine Verzögerung ohne Ihre komplizierten Berechnungen?
Das ist die Frage, warum es sich verzögert, wenn man es vom Code aus aufruft, aber nicht, wenn man es einfach über das Diagramm legt. Nun, nur die Entwickler wissen, wo sie die Antwort suchen müssen. Ich habe eine Menge komplizierter Indikatoren in meinen Charts, und einige von ihnen verwenden sogar rekursive Schleifen, und sie sollen "lange denken", aber dies ist eine einfache Aufgabe, die so lange dauert, um berechnet zu werden.
Ich spreche hier nicht von einem einfachen Diagramm-Overlay. Ich spreche von diesem Testcode. Es wird dort genannt, nicht eingeblendet.
Trotzdem glaube ich, dass ich mich durch das Kopieren eines Teils des Arrays durchgekämpft habe. Und auch MODE_LWMA berechnet auf die gleiche Weise neu, als würde man das gesamte Feld zählen.
Rot wird für die gesamte Historie berechnet. Grün sind die letzten 50 Takte.
...
Trotzdem glaube ich, dass ich mich durch das Kopieren eines Teils des Arrays durchgekämpft habe. Und auch MODE_LWMA berechnet auf die gleiche Weise neu, als würde man das gesamte Feld zählen.
...
Er hat sie auch besiegt.
Ich spreche hier nicht von einem einfachen Diagramm-Overlay. Ich spreche von diesem Testcode. Es wird dort genannt, nicht überlagert.
Trotzdem glaube ich, dass ich mich durch das Kopieren eines Teils des Arrays durchgekämpft habe. Und auch MODE_LWMA berechnet auf die gleiche Weise neu, als würde man das gesamte Feld zählen.
Rot zählt die gesamte Geschichte. Grün sind die letzten 50 Takte.
Ich habe den Eindruck, dass Sie meine Beiträge Wort für Wort oder sogar Satz für Satz lesen. Was zu gewinnen? Ich schrieb, dass ich eine solche Idee (ähnlicher Code mit Einschränkung der Balkenberechnung) sofort hatte, und ich habe es sofort ausprobiert und keine Leistungssteigerung erhalten, weil Das Array wird immer noch vollständig berechnet (total=0), die Tatsache, dass man nur die letzten 100 Elemente kopiert (in den Puffer füllt), macht die Berechnungen nicht langsamer, es geht nicht darum, Elemente in den Puffer zu bekommen, es geht um die Berechnung eines durchschnittlichen Arrays, das entweder vollständig berechnet wird (total=0) oder nur Ergebnisse für die ersten N Elemente liefert (total=N), und die letzten werden benötigt, eine Änderung der Richtung der Indizierung bringt nicht den gewünschten Effekt.
Offenbar werden meine Nachrichten auch gelesen... Der vorherige Code passt nicht, ich habe herausgefunden, wo der Fehler gemacht wurde. Der letzte Screenshot zeigt einen anderen Ansatz, obwohl nur die letzten 50 Balken gezählt werden.
Ich habe den Code nicht sofort gepostet, weil ich Reaktionen wie "das funktioniert sowieso nicht" erwartet habe, denn... Der Code ist nicht geheim, wenn Sie prüfen wollen, wie er mit Ihrem Indikator funktioniert, lassen Sie es mich wissen.
Er hat auch gewonnen.
...
Alles, was Sie tun können, ist, einen Aufstand zu machen. Zählen Sie mal, mit wie vielen Forumsteilnehmern Sie in diesem Tonfall reden, so wie Sie jetzt mit mir reden. Verschwinde, Satan.So habe ich mit Leuten wie Ihnen gesprochen. Ich weiß, dass es hier eine Koalition von Ihnen gibt.
Bereits gestern haben Sie hier über das Scheitern des Array-Kopieransatzes geschrieben. Sie war auf die LWMA gerichtet - es hat funktioniert. Sie sind nicht faul genug, um es mit der EMA und der Heerschar der heiligen Macht zu überprüfen? Hast du eine Kerze in der Kirche aufgestellt?
Du jammerst und jammerst, und jedes Mal sagst du: "Oh, ich verstehe, ich habe einen Fehler gemacht.
Ein Kampf. Wenn Sie ein wenig Verstand hätten, hätten Sie längst gesehen, dass das Problem dieses Themas gelöst ist.
Du wolltest wieder einmal angeben, aber man hat dir die Hörner abgeschossen und du hast dich sofort bei Satan beklagt. Mann!
Offenbar werden meine Nachrichten auch gelesen... Der vorherige Code passt nicht, ich habe herausgefunden, wo der Fehler gemacht wurde. Der letzte Screenshot zeigt einen anderen Ansatz, obwohl nur die letzten 50 Balken gezählt werden.
Ich habe den Code nicht sofort gepostet, weil ich Reaktionen wie "das funktioniert sowieso nicht" erwartet habe, denn... Der Code ist nicht geheim, wenn Sie prüfen wollen, wie er mit Ihrem Indikator funktioniert, sagen Sie es mir.