Ihre innere für iteriert alle Array so thats, warum Sie immer den gleichen Durchschnitt (die für die gesamte Array), sollten Sie iterieren von 0 auf die aktuelle Zahl der äußeren für statt. Ihr gleitender Durchschnitt wird aktualisiert, basierend auf j Ihrer inneren für das bedeutet, dass es vorherige Werte überschreibt jede neue Schleife, sollte dies innerhalb der äußeren für statt der inneren mit i als Index sein. Sie teilen sumj, um Mittelwerte zu berechnen, jede neue innere Schleife j Sie teilen durch 0 die erste Summe. Ich glaube, Sie wollten j1 verwenden, Index ist nicht das gleiche wie aktuelle Länge Tipps zur Fehlerbehebung: Vermeiden Sie die Verwendung von Variablen zu Loop-Arrays, sollten Sie array. length stattdessen verwenden. Für eine Frage der Reproduktion Ihres Problems könnten Sie uns das isolierte Problem anstelle des aktuellen Codes. Dh: Stellen Sie sich vor, wenn der Fehler in Ihren Eingaben ist, wie könnten wir glauben, dass Sie wirklich verwendet sie beantwortet werden Sie sind Looping über alle Daten jedes Mal. Sie sollten für (int j (igtaverageLengthi-averageLength2: 0) jlt iaverageLength2 ampamp jltnumDataPoints j) (oder etwas ähnliches) für Ihren innersten Durchschnitt haben. Auch MovingAverageisumj sollte modifiziert werden, um den Fall zu behandeln, wenn j 0 ist. Insbesondere sollte es wahrscheinlich movingAverageisumaverageLength sein und es sollte auf den movingAveragei-Slot außerhalb der Mittelungsschleife angewendet werden. Antwortete Oct 4 13 am 20:42 Nächstes Mal, nehmen Sie die Kommentare über die Zuweisung aus der Frage, bevor Sie es. Aber da Sie scheinen ziemlich neu in diesem, darüber nachzudenken, wie würden Sie durch die Daten gehen, und machen es tun. Sie sollten sicherstellen, dass jede Schleife an dem richtigen Punkt stoppt, und denken Sie daran, dass wenn Sie stoppen würden, wenn es keine Zahlen mehr gibt (wie wenn Sie die innere Schleife machen und nur 3 weitere Zahlen anstelle von 4 erhalten können) Muss das Programm auch stoppen. Stellen Sie sicher, dass Ihr Code für diese Überprüfung ist. Antwortete ohne weitere Details, benötigen Sie wahrscheinlich einen ungewichteten gleitenden Durchschnitt. An einem beliebigen Punkt Ai im Eingabefeld A der Länge N (mit 0ltiltN) ist das einfach der Mittelwert der vorherigen K Einträge des Arrays, bis zu und einschließlich Ai. Wenn es arent K solche Werte, dann die durchschnittlichen (i1) Werte von A0 bis Ai. Einschließlich. Ein wenig Gedanke zeigt Ihnen, dass Sie nicht alle K-Werte addieren müssen jedes Mal. Halten Sie einfach die Summe, und beim Bewegen zum nächsten Punkt (dies ist ein gleitender Durchschnitt), subtrahieren Sie den Wert, der ersetzt wird, und fügen Sie den neuen Wert hinzu, der es ersetzt. (Bei den ersten K-1 Punkten fügen Sie einfach den neuen Wert zur Summe hinzu und erhöhen Sie den Zähler um 1.) Der gleitende Durchschnitt ist an jedem Punkt der aktuelle Summe dividiert durch den aktuellen Zählwert. In einem gleitenden Durchschnitt, müssen Sie eine Art von Fenstergröße haben. Ihre Fenstergröße ist averageLength, so wird es etwa so aussehen: Die for-Schleife startet bei den aktuellen Daten und geht zurück AverageLength Datenpunkte und fügt sie hinzu. Sie haben nur einen gleitenden Durchschnitt, wenn Sie haben, wenn Sie genügend Datenpunkte haben und der Durchschnitt wird die Summe geteilt durch die durchschnittliche Länge haben. Hinweis: Nicht getestet nur Sudo-Code, aber das ist die Idee. Antwort # 1 am: Mai 23, 2010, 05:03:25 pm »Antwort # 1 am: Mai 12, 2010, um 12:05 Uhr Antwort auf Ihre Antwort 2017 Stack Exchange, IncMoving Durchschnitt - MA Ein weit verbreitetes Indikator in der technischen Analyse, die glätten Preisaktion durch Ausfiltern des Lärms aus zufälligen Preisschwankungen. Ein gleitender Durchschnitt (MA) ist ein Trend - oder Nachlaufindikator, da er auf vergangenen Preisen basiert. Die zwei grundlegenden und allgemein verwendeten MAs sind der einfache gleitende Durchschnitt (SMA), der der einfache Durchschnitt einer Sicherheit über eine definierte Anzahl von Zeitperioden ist, und der exponentielle gleitende Durchschnitt (EMA), der den jüngeren Preisen ein größeres Gewicht verleiht. Die häufigsten Anwendungen von MAs sind, die Trendrichtung zu identifizieren und zu bestimmen, Unterstützung und Widerstand Ebenen. Während MAs von sich aus nützlich genug sind, bilden sie auch die Basis für andere Indikatoren wie die Moving Average Convergence Divergence (MACD). Laden des Players. BREAKING DOWN Moving Average - MA Als SMA-Beispiel gilt eine Sicherheit mit folgenden Schlusskursen über 15 Tage: Woche 1 (5 Tage) 20, 22, 24, 25, 23 Woche 2 (5 Tage) 26, 28, 26, 29, 27 Woche 3 (5 Tage) 28, 30, 27, 29, 28 Eine 10-tägige MA würde die Schlusskurse für die ersten 10 Tage als ersten Datenpunkt ausrechnen. Der nächste Datenpunkt würde den frühesten Preis senken, den Preis am Tag 11 addieren und den Durchschnitt nehmen, und so weiter, wie unten gezeigt. Wie bereits erwähnt, verzögert MAs die aktuelle Preisaktion, weil sie auf vergangenen Preisen basieren, je länger der Zeitraum für die MA ist, desto größer ist die Verzögerung. So wird ein 200-Tage-MA haben eine viel größere Verzögerung als eine 20-Tage-MA, weil es Preise für die letzten 200 Tage enthält. Die Länge des zu verwendenden MA hängt von den Handelszielen ab, wobei kürzere MAs für den kurzfristigen Handel und längerfristige MAs eher für langfristige Anleger geeignet sind. Die 200-Tage-MA ist weithin von Investoren und Händlern gefolgt, mit Pausen über und unter diesem gleitenden Durchschnitt als wichtige Trading-Signale. MAs auch vermitteln wichtige Handelssignale auf eigene Faust, oder wenn zwei Durchschnitte überqueren. Eine steigende MA zeigt an, dass die Sicherheit in einem Aufwärtstrend liegt. Während eine sinkende MA zeigt, dass es in einem Abwärtstrend ist. In ähnlicher Weise wird das Aufwärtsmoment mit einem bulligen Crossover bestätigt. Die auftritt, wenn eine kurzfristige MA über einem längerfristigen MA kreuzt. Die Abwärtsmomentum wird mit einem bärischen Übergang bestätigt, der auftritt, wenn ein kurzfristiges MA unter einem längerfristigen MA liegt.
No comments:
Post a Comment