In meiner Trading-Anwendung habe ich live Zecken der Aktienkurse. Ich muss SMA pflegen. Angenommen, ich möchte SMA von 20 Kerzen, wobei die Dauer jeder Kerze 10 Sekunden beträgt. Dies bedeutet, dass alle 10 Sekunden habe ich Checkpoint, wo: Ich schließe aktuelle Kerze und speichern durchschnittlichen Preis für die letzten 10 Sekunden. Durchschnitt ist (max - min) 2 Ich beginne eine neue Kerze und speichere den letzten Preis. Ich clean-up veraltete Kerze. Ich aktualisieren letzten Preis der aktuellen bildenden Kerze und rekalieren SMA. So auf jedem möglichem Tick muss ich SMA neu berechnen. In den meisten Fällen wird nur der Preis der letzten Kerze geändert (weil wir den letzten Preis verwenden). Einmal pro 10 Sekunden brauche ich ein bisschen mehr Extraarbeit - ich muss den Durchschnitt der veralteten Kerze vergessen und den Durchschnitt der eben geschaffenen Kerze speichern. Können Sie vorschlagen, wie zu implementieren, diese mit niedrigster Latenz Niedrige Latenz ist primäre Anforderung. Ich bin nicht sicher, ob dies ist der Ansatz, den Sie suchen, aber hier ist der Pseudocode für sehr schnelle SMAs. Simple Moving Average: Ich nehme an, dass Ihre Daten in Form eines Streams kommen und in einem kontinuierlichen Speicherplatz gespeichert werden (zumindest bei kontinuierlich abbindbaren Adressen). Mit zwei Additionen und einer Multiplikation (mit 1 2000) können Sie nachfolgende gleitende Mittelwerte generieren Für die neuen Zecken. Exponentieller gleitender Durchschnitt: Das ist eine anständige Alternative, wie oben erwähnt: Hier ist es nicht wirklich ein N-Tag gleitenden Durchschnitt. Sein gerade ein gewichteter gleitender Durchschnitt mit 87 Gewichtung zu den letzten N-Tagen, also sind fast N-Tage mehr wie es. Hinweis zu Compiler-Optimierungen: Beachten Sie, dass die Einschaltung von SSE - oder AVX-Optionen, sofern verfügbar, eine massive Beschleunigung dieser Algorithmen ermöglicht, da mehrere Berechnungen in einem einzigen CPU-Zyklus ausgelöst werden können. Moving Average In diesem Beispiel erfahren Sie, wie Sie den gleitenden Durchschnitt von a berechnen können Zeitreihen in Excel. Eine Bewegung wird verwendet, um Unregelmäßigkeiten (Spitzen und Täler) zu glätten, um Trends leicht zu erkennen. 1. Erstens, werfen wir einen Blick auf unsere Zeitreihe. 2. Klicken Sie auf der Registerkarte Daten auf Datenanalyse. Hinweis: Klicken Sie hier, um das Analyse-ToolPak-Add-In zu laden. 3. Wählen Sie Verschiebender Durchschnitt aus, und klicken Sie auf OK. 4. Klicken Sie im Feld Eingabebereich auf den Bereich B2: M2. 5. Klicken Sie in das Feld Intervall und geben Sie 6 ein. 6. Klicken Sie in das Feld Ausgabebereich und wählen Sie Zelle B3 aus. 8. Zeichnen Sie ein Diagramm dieser Werte. Erläuterung: Da wir das Intervall auf 6 setzen, ist der gleitende Durchschnitt der Durchschnitt der vorherigen 5 Datenpunkte und der aktuelle Datenpunkt. Als Ergebnis werden Spitzen und Täler geglättet. Die Grafik zeigt eine zunehmende Tendenz. Excel kann den gleitenden Durchschnitt für die ersten 5 Datenpunkte nicht berechnen, da nicht genügend frühere Datenpunkte vorhanden sind. 9. Wiederholen Sie die Schritte 2 bis 8 für Intervall 2 und Intervall 4. Fazit: Je größer das Intervall, desto mehr werden die Spitzen und Täler geglättet. Je kleiner das Intervall, desto näher sind die gleitenden Mittelwerte zu den tatsächlichen Datenpunkten.
No comments:
Post a Comment