Dans mon application de négociation, j'ai des tiques vivantes des cours des actions. J'ai besoin de maintenir SMA. Supposons que je veux SMA de 20 bougies, où la durée de chaque bougie est de 10 secondes. Cela signifie que toutes les 10 secondes, j'ai checkpoint où: Je ferme la bougie actuelle et stocker le prix moyen pour les 10 dernières secondes. La moyenne est (max - min) 2 Je commence une nouvelle bougie et stocker le dernier prix. Je nettoie la bougie obsolète. Je met à jour le dernier prix de la bougie formant le courant et recalcule SMA. Donc sur n'importe quelle coche je dois recalculer SMA. Dans la plupart des cas seulement le prix de la dernière bougie est changé (cause nous utilisant le dernier prix). Une fois par 10 secondes, j'ai besoin d'un peu plus de travail supplémentaire - je dois oublier la moyenne de la chandelle obsolète, et stocker la moyenne de la bougie juste créé. Pouvez-vous suggérer la façon de mettre en œuvre ce avec la latence la plus faible Faible latence est l'exigence principale. A demandé Apr 28 14 at 10:21 Je ne sais pas si c'est l'approche que vous cherchez, mais voici le pseudocode pour SMAs très rapide. Moyenne mobile simple: Je suppose que vos données viennent sous la forme d'un flux et stockées en mémoire continue (au moins avec des adresses mappables en continu) De cette façon, avec deux additions et une multiplication (avec 1 2000), vous pouvez générer des moyennes mobiles ultérieures Pour les nouvelles tiques. Moyenne mobile exponentielle: C'est une alternative décente, comme mentionné ci-dessus: Ici, ce n'est pas vraiment une moyenne mobile de N jours. C'est juste une moyenne mobile pondérée avec 87 weightage aux N derniers jours, donc presque N-jours est plus comme lui. Remarque sur les optimisations du compilateur: Notez que l'activation des options SSE ou AVX, si disponible, permettra une accélération massive de ces algorithmes, car plusieurs calculs peuvent être effectués en un seul cycle CPU. Moyenne de la mobilité Cet exemple vous enseigne comment calculer la moyenne mobile d'un Série chronologique dans Excel. Un avearge mobile est utilisé pour lisser les irrégularités (pics et vallées) pour reconnaître facilement les tendances. 1. Tout d'abord, jetez un oeil à notre série chronologique. 2. Sous l'onglet Données, cliquez sur Analyse des données. Remarque: ne trouve pas le bouton Analyse des données Cliquez ici pour charger le complément Analysis ToolPak. 3. Sélectionnez Moyenne mobile et cliquez sur OK. 4. Cliquez dans la zone Plage d'entrée et sélectionnez la plage B2: M2. 5. Cliquez dans la zone Intervalle et tapez 6. 6. Cliquez dans la zone Plage de sortie et sélectionnez la cellule B3. 8. Tracez un graphique de ces valeurs. Explication: parce que nous définissons l'intervalle sur 6, la moyenne mobile est la moyenne des 5 points de données précédents et le point de données actuel. En conséquence, les crêtes et les vallées sont lissées. Le graphique montre une tendance à la hausse. Excel ne peut pas calculer la moyenne mobile pour les 5 premiers points de données car il n'y a pas assez de points de données antérieurs. 9. Répétez les étapes 2 à 8 pour l'intervalle 2 et l'intervalle 4. Conclusion: Plus l'intervalle est grand, plus les sommets et les vallées sont lissés. Plus l'intervalle est faible, plus les moyennes mobiles sont proches des points de données réels.
No comments:
Post a Comment