Wednesday 4 January 2017

Gleitender Mittelwert Algorithmus

Moving Average - MA Was ist ein Moving Average - MA Eine weit verbreitete Indikator in der technischen Analyse, die glätten Preisaktion durch Ausfiltern des Lärms aus zufälligen Preisschwankungen hilft. 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 der 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 gefolgt von Investoren und Händlern, 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. Abwärts-Impuls wird mit einem bärischen Übergang bestätigt, der auftritt, wenn ein kurzfristiges MA-Kreuz unter einer längerfristigen MA. I Notwendigkeit, die letzten 7 Tage Arbeitsstunden in einer flachen Datei lesen Schleife zu halten. Seine verwendet werden, um die Ermüdbarkeit von Arbeitsplänen zu messen. Im Moment habe ich etwas, das funktioniert, aber es scheint ziemlich ausführlich und Im nicht sicher, ob theres ein Muster, das mehr prägnant ist. Derzeit habe ich eine Java-Klasse mit einem statischen Array, um die letzten x-Tage-Daten halten, dann, wie ich durch die Datei zu lesen, hacke ich das erste Element und verschieben die anderen 6 (für eine Woche rollen insgesamt) zurück um eins. Die Verarbeitung dieses statischen Arrays erfolgt in seinem eigenen Verfahren, dh. Meine Frage: ist dies eine vernünftige Design-Ansatz, oder gibt es etwas blendend offensichtlich und einfach, diese Aufgabe zu tun Danke Jungs gefragt Aug 30 11 at 14:33 Vielen Dank Jungs: I39ve bekam die Nachricht: Verwenden Sie ein übergeordnetes Objekt und nutzen die Relevante Methoden oder einen Ringpuffer. Große Antworten, alle von ihnen. Wenn Sie darüber nachdenken, benötigen Sie immer Zugriff auf das gesamte Array, so können Sie loswerden, dass erste Eintrag - die ich warn39t 100 sicher von meiner eigenen. I39m erleichtert, dass ich hadn39t verpasste einige 1 Liner und war im Grunde auf eine vernünftige, wenn nicht effizient und knapp Track Dies ist, was ich liebe über diese Website: qualitativ hochwertige, relevante Antworten von Menschen, die ihre sht kennen. Ndash Pete855217 Aug 11, 2010, um 15:05 Uhr Warum initialisieren Sie runningTotal auf null Was ist der Typ, wo es deklariert Es wäre gut, wenn Sie einige Code-Beispiele, die tatsächlichen Java-Code ähneln setzen. Im Übrigen wäre meine Kritik die folgende: Ihre Funktion hat zu viel. Eine Funktion oder Methode sollte zusammenhängend sein. Entsprechend sollten sie eine Sache und eins nur tun. Schlimmer noch, was passiert in Ihrer for-Schleife, wenn x 5 Sie kopieren runningTotal6 in runningTotal5. Aber dann haben Sie zwei Kopien des gleichen Wertes an Position 5 und 6. In Ihrem Design, Ihre Funktion movesshuffles die Elemente in Ihrem Array berechnet die Gesamtausdruck Zeug auf Standard-Fehler liefert die Summe Es tut zu viel. Mein erster Vorschlag ist nicht zu bewegen Zeug um in der Array. Stattdessen implementieren Sie einen kreisförmigen Puffer und verwenden Sie es statt des Arrays. Es vereinfacht Ihren Entwurf. Mein zweiter Vorschlag ist, Dinge in Funktionen zusammenzufassen, die zusammenhängen: haben Sie eine Datenstruktur (ein zirkularer Puffer), der Ihnen erlaubt, sie hinzuzufügen (und dass der älteste Eintrag sinkt, wenn er seine Kapazität erreicht hat) Interator haben eine Funktion, die die Summe auf dem Iterator berechnet (Sie dont care, wenn Sie die Summe aus einem Array, Liste oder kreisförmigen bufer.) Dont nennen es insgesamt. Nennen Sie es Summe, die ist, was Sie berechnen. Das ist, was Id tun :) That39s große info luis, aber denken Sie daran, diese Funktion ist ein kleiner Teil der Funktionalität der Klasse, und es wäre Overkill zu viel Code hinzufügen, um es perfekt. Sie sind technisch korrekt, und ich verstehe, dass mein Code zu viel 39 macht, aber gleichzeitig ist es manchmal besser, auf der Seite des kleineren, klareren Codes zu irren als für Perfektion zu gehen. Angesichts meiner Java-Fähigkeiten, auch die Herstellung der Pseudocode Sie beschreiben kompilieren würde ich blasen mein Budget auf diese (), aber danke für die klare Beschreibung. Ndash Pete855217 Aug 31 11 at 2:23 Hmmm, es geht nicht um Perfektion, sondern um etablierte industrielle Praktiken, die wir seit den letzten 3 Jahrzehnten kennen. Sauberer Code ist immer einer, der partitioniert ist. Wir haben jahrzehntelange Evidenz, die zeigen, dass dies der Weg ist, um in den allgemeinen Fall zu gehen (in Bezug auf Kosteneffizienz, Defektverkleinerung, Verständnis usw.). Es sei denn, es ist Wegwerf-Code für eine einmalige Art der Sache. Es ist niemals teuer, dies zu tun, wenn man auf diese Weise eine Problemanalyse startet. Codierung 101, brechen das Problem und der Code folgt, weder Overkill noch schwierig) ndash luis. espinal Ihre Aufgabe ist zu einfach und die Vorgehensweise Sie angenommen haben, ist sicherlich gut für den Job. Allerdings, wenn Sie ein besseres Design verwenden möchten, müssen Sie loszuwerden, dass alle die Anzahl der Bewegung Sie besser eine FIFO-Warteschlange und machen gute Verwendung von Push-und Pop-Methoden, die Art und Weise der Code reflektiert keine Datenbewegung, nur die beiden logischen Aktionen Von neuen Daten und entfernen Sie Daten, die älter als 7 Tage sind. Beantwortet Aug 30 11 at 14:49


No comments:

Post a Comment