Les EMA de 12 et 26 jours sont les moyennes à court terme les plus populaires et elles sont utilisées pour créer des indicateurs comme la divergence de convergence moyenne mobile (MACD) et l'oscillateur de prix en pourcentage (PPO). En général, les EMA de 50 et de 200 jours sont utilisés comme signaux d'évolution à long terme. Les commerçants qui utilisent l'analyse technique trouvent des moyennes mobiles très utiles et perspicaces lorsqu'elles sont appliquées correctement, mais créent des ravages lorsqu'elles sont mal utilisées ou mal interprétées. Toutes les moyennes mobiles couramment utilisées dans l'analyse technique sont, par leur nature même, des indicateurs en retard. Par conséquent, les conclusions tirées de l'application d'une moyenne mobile à un graphique de marché particulier devraient être de confirmer un mouvement de marché ou d'indiquer sa force. Très souvent, au moment où une ligne d'indicateurs de la moyenne mobile a fait un changement pour refléter une évolution significative du marché, le point optimal d'entrée sur le marché a déjà dépassé. Un EMA sert à atténuer ce dilemme dans une certaine mesure. Parce que le calcul EMA place plus de poids sur les dernières données, il étreint l'action de prix un peu plus serré et réagit donc plus rapidement. Ceci est souhaitable lorsqu'un EMA est utilisé pour dériver un signal d'entrée de négociation. Interprétation de l'EMA Comme tous les indicateurs de la moyenne mobile, ils sont beaucoup mieux adaptés aux marchés tendances. Lorsque le marché est dans une tendance forte et soutenue à la hausse. La ligne indicatrice EMA affichera également une tendance haussière et vice-versa pour une tendance à la baisse. Un commerçant vigilant ne sera pas seulement attention à la direction de la ligne EMA, mais aussi la relation du taux de changement d'une barre à l'autre. Par exemple, lorsque l'action de prix d'une forte tendance haussière commence à s'écraser et à inverser, le taux de changement de l'EMA d'une barre à l'autre commencera à diminuer jusqu'à ce que la ligne d'indicateur s'atténue et que la vitesse de changement soit nulle. En raison de l'effet retardé, par ce point, ou même quelques bars avant, l'action de prix aurait déjà inversé. Il s'ensuit donc que l'observation d'une diminution constante du taux de variation de l'EMA pourrait elle-même être utilisée comme un indicateur qui pourrait mieux contrer le dilemme causé par l'effet retardé des moyennes mobiles. Utilisations courantes de l'EMA Les EMA sont couramment utilisés en conjonction avec d'autres indicateurs pour confirmer les mouvements significatifs du marché et pour évaluer leur validité. Pour les commerçants qui négocient des marchés intraday et rapide, l'EMA est plus applicable. Très souvent, les commerçants utilisent les EMA pour déterminer un biais de négociation. Par exemple, si une EMA sur un graphique quotidien montre une forte tendance à la hausse, une stratégie des commerçants intraday peut être de négocier uniquement du côté long sur un graphique intraday. Im pas un programmeur avec des capacités. Juste quelqu'un curieux au sujet de CUDA et ainsi Im faisant un peu de lecture. J'ai rencontré un exemple d'utilisation de Thrust pour faire une moyenne mobile: L'exemple, tel qu'il est, s'exécute et fonctionne principalement correctement. Toutefois, son trivial dans le sens où il ne fait qu'une opération moyenne mobile. Comment je pourrais dire 352 de ces opérations de moyenne mobile en parallèle, tous fonctionnant sur le même flux de données Dans mon esprit, le flux de programme pourrait être: Générer l'ampli de données l'envoyer à un noyau CUDA. (Identique au code existant, mais pensez à des longueurs de 1000 ou 10000 au lieu de 30) Copiez-le du noyau CUDA à tous les autres 351 cœurs CUDA de ma GTX 465 Dites à chaque noyau CUDA le nombre d'éléments de données à la moyenne. (4. 5. 6. 352. 353. 354) Dites à l'appareil d'exécuter la moyenne dans chaque noyau en parallèle Lire les résultats de chaque noyau Je comprends que ce code le fait tout se produire, mais comment obtenir Thrust à faire Beaucoup d'entre eux en parallèle Mon intérêt ici est de quelque chose comme des données de stock. Si je regarde les prix GOOG Id mettre cela dans le GPU en utilisant tous les noyaux et la laisser là. Id alors être libre de faire beaucoup de traitement sans charger les données plus et juste en lisant les résultats de chaque noyau. REMARQUE: je pourrais ne pas vouloir utiliser GOOG dans tous les noyaux. Certains noyaux peuvent être GOOG, d'autres avec un autre symbole, mais Ill arriver plus tard. Im juste pensant que je ne veux pas les données de stock dans la mémoire globale si theres assez de pièce dans chaque noyau. Je suppose que c'est assez simple pour CUDA amp Thrust demandé Sep 12 12 at 19:39 Je crois comprendre que vous êtes intéressé par les deux situations suivantes: Vous avez une longue séquence d'articles et vous voulez calculer un certain nombre de moyennes, par Calculer la moyenne sur différents nombres d'articles, c'est-à-dire utiliser des longueurs différentes pour la fenêtre de la moyenne mobile. C'est ce que je comprends de votre question initiale. Vous avez une série de séquences, stockées consécutivement en mémoire, et vous voulez les moyennes en parallèle avec une fenêtre de moyenne fixe de taille 2 RADIUS 1. C'est ce que le code ArrayFire proposé par asm - vous l'avez accepté. Au lieu d'utiliser CUDA Thrust, je pense qu'il serait plus facile d'écrire votre propre kernel CUDA pour effectuer les opérations ci-dessus. Ci-dessous, un exemple entièrement travaillé qui fonctionne de la même manière que le code ArrayFire proposé par asm, couvrant ainsi le cas 2. Le modifier pour couvrir le cas 1 serait simple. Pour une autre approche, vous pouvez tronquer la fenêtre de moyenne mobile exponentielle et ensuite calculer votre signal filtré en faisant une convolution entre votre signal et l'exponentielle fenêtrée. La convolution peut être calculée en utilisant la bibliothèque CUDA FFT libre (cuFFT) car, comme vous le savez peut-être, la convolution peut être exprimée comme la multiplication ponctuelle des deux signaux dans le domaine fourier (C'est le théorème Convolution, Qui s'exécute avec une complexité de O (n log (n))). Ce type d'approche minimisera votre code de noyau CUDA et fonctionnera très très rapidement, même sur une GeForce 570 Particulièrement si vous pouvez faire tous vos calculs en précision simple (flottante). Répondre Apr 30 14 at 17:04 Je proposerais de manipuler l'équation des différences ci-dessus comme indiqué ci-dessous et ensuite en utilisant CUDA Thrust primitives. DIFFÉRENCE MANIPULATION D'ÉQUATION - FORME EXPLICITE DE L'ÉQUATION DE DIFFÉRENCE Par simple algèbre, on peut trouver ce qui suit: Alpha à l'exception de dinput0 1. Définir un vecteur d1 overbetatothen égal à 1, 1beta, 1beta2, 1beta3. Multiplier elementwise dinput par d1overbetatothen Effectuer un inclusivescan pour obtenir la séquence de yn betan Diviser la séquence ci-dessus par 1, 1beta, 1beta2, 1beta3. L'approche ci-dessus peut être recommandée pour les systèmes Linear Time-Varying (LTV). Pour les systèmes Linear Time-Invariant (LTI), l'approche FFT mentionnée par Paul peut être recommandée. Im donnant un exemple de cette approche en utilisant CUDA Thrust et cufft dans ma réponse au filtre FIR dans CUDA.
No comments:
Post a Comment