Einfacher verschiebender Durchschnitt Am Tag 9 gibt es einen großen Schritt in dem einfachen gleitenden Durchschnitt, aber der Preis ist konstant bei 17. Der niedrige Preis am Tag 4 verursacht nicht nur einen Rückgang des einfachen gleitenden Durchschnitts am Tag 4, sondern verzerrt auch die Bewegung Durchschnitt am Tag 9 mdash verursacht einen Sprung in Wert, wenn der niedrige Preis aus dem gleitenden Durchschnitt Zeitraum fallen gelassen wird. Das ist, was gemeinhin als Bellen zweimal bezeichnet. Lesen Sie den Colin Twiggs Trading-Tagebuch-Newsletter mit Bildungsartikeln über Handel, technische Analysen, Indikatoren und neue Software-Updates. Ich verwende PHP und habe vor kurzem mit der technischen Analyseerweiterung TA-LIB angefangen, Indikatoren auf Aktienkursdaten zu berechnen. Ich bekomme, was ich für ein seltsames Ergebnis auf einer der einfachsten Indikatoren gibt es, die einfache gleitende Durchschnitt. Und ich habe nicht herausgefunden, der Grund. Ich habe eine ähnliche Frage auf dem TA-LIB-Forum gepostet, aber die Tätigkeit dort ist sehr niedrig und ich vermute, dass ich nicht eine Antwort in einer langen Zeit erhalten würde, wenn überhaupt. Die SMA berechnet den Mittelwert basierend auf einer gegebenen Anzahl vorheriger Preisdatenpunkte. Das Problem, das ich habe, ist am besten durch ein Beispiel illustriert. Lassen Sie uns sagen, ich habe eine Reihe von 10 Preis-Datenpunkte und ich möchte die SMA berechnen. Der Einfachheit halber verwenden wir einen Durchschnitt von 4. Bei der Berechnung würden wir einen neuen Satz von 7 Mittelwerten erwarten. Allerdings liefert TA-LIB 4 wie unten zu sehen: Wie Sie sehen können, erhalten wir NULLs am Anfang des Satzes, wie erwartet. Allerdings fehlen Datenpunkte am Ende und die Anzahl der fehlenden Datenpunkte entspricht immer der Anzahl der Datenpunkte, die ich überdurchschnittlich bin. Dies verursacht eine unnatürliche Lücke am Ende, wenn ich den gleitenden Durchschnitt gegen meine Preisdaten. Irgendwelche Ideen auf, was los ist gefragt Okt 18 14 am 16:05 Stellt sich heraus, dass Ive einen dummen Fehler, nicht überraschend getan. Ich schrieb tatsächlich meine eigene Funktion: Funktioniert gut, aber beim Vergleich seiner Ergebnisse mit den Ergebnissen von TA-LIB Ich erkannte, dass das Problem ein Parse-Fehler, den ich mit TA-LIBs Ergebnisse getan haben. Die ursprünglich gestellte Frage ist also ungültig. Einfache Fehler, waiste der Zeit, aber gut zu wissen, TA-LIB arbeitet, wie ich es will. Wann ich ein ähnliches Problem hatte, landete ich mit Temp-Tabellen für eine Vielzahl von Gründen, aber es machte dies viel einfacher Was ich tat Sieht sehr ähnlich, was du tust, soweit das Schema geht. Machen Sie das Schema so etwas wie ID identity, startdate, enddate, value. Wenn Sie auswählen, führen Sie einen Subselect-Durchschnitt der vorherigen 20 basierend auf der Identitäts-ID aus. Nur tun, wenn Sie sich bereits mit Temp-Tabellen aus anderen Gründen aber (Ich traf die gleichen Zeilen immer und immer für verschiedene Metriken, so war es hilfreich, die kleinen Dataset haben). Nach meiner Erfahrung tendiert Mysql ab 5.5.x nicht dazu, Indizes auf abhängige selects, ob eine Unterabfrage oder join, zu verwenden. Dies kann eine erhebliche Auswirkung auf die Leistung haben, wenn sich die abhängigen Auswahlkriterien bei jeder Zeile ändern. Der gleitende Durchschnitt ist ein Beispiel für eine Abfrage, die in diese Kategorie fällt. Die Ausführungszeit kann mit dem Quadrat der Zeilen ansteigen. Um dies zu vermeiden, wählen Sie eine Datenbank-Engine, die indizierte Lookups auf abhängige selects durchführen können. Ich finde postgres wirkt effektiv für dieses Problem. Beantwortet Jul 2 14 um 8:01 Deine Antwort 2017 Stack Exchange, Inc
No comments:
Post a Comment