Codage Bandes de Bollinger/Finance

marinf

XLDnaute Nouveau
Bonjour,
je suis en train de travailler sur un projet VBA qui permettrai de simuler des stratégies de trading pour la finance de marché. Afin de mener notre projet à son terme, nous devons coder en VBA différents indicateurs qui mathématiquement ne sont pas vraiment compliqués mais, à cause d'un manque de ressources lors de nos cours de programmation, nous sommes bloqués.

L'un de ces indicateur est Les Bandes de Bollinger (Analyse technique - Leçon 4 - Les bandes de Bollinger). Cela consiste à représenter une courbe calculant la moyenne mobile des données (ici évolution du prix en fonction du temps) sur N périodes, et deux autres courbes de part et d'autre de la moyenne mobile, situées chacune à une distance de deux fois l'écart-type sur les N périodes sur lesquelles on a calculé la moyenne mobile.

Il s'agit donc de coder la moyenne mobile ainsi que les différences/sommes entre la moyenne mobile et les écarts-types. Et enfin de faire apparaitre les résultats sur un graphique.

J'ai déjà enregistré la macro permettant de faire le calcul pour récupérer les codes mais ils sont longs et peuvent être simplifiés je pense.

Est-ce quelqu'un a déjà dû réaliser un projet similaire?
cela m'aiderai beaucoup
Merci d'avance

ps: j ai surement été avare en informations, n'hésitez pas à me poser plus de questions.
 

marinf

XLDnaute Nouveau
Re : Codage Bandes de Bollinger/Finance

Voici le code que j ai utilisé (en le récupérant d'une macro) qui fonctionne mais qui peut être amélioré en utilisant une boucle For... je présume. J'ai essayé de le mettre en place mais cela ne fonctionne pas . Quelqu'un aurait-il une piste?

sachant que ma plage de données se trouve sur les cellules A1:B75

Code:
Range("D1").Select
ActiveCell.FormulaR1C1 = "MMA"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-2]:R[19]C[-2])"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(OFFSET(R[-1]C[-2]:R[18]C[-2],1,0))"
Range("D3").Select
Selection.AutoFill Destination:=Range("D3:D75")
Range("D3:D75").Select

Range("C1").Select
ActiveCell.FormulaR1C1 = "Bollinger bas"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[1]-2*STDEVA(RC[-1]:R[19]C[-1])"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=RC[1]-2*STDEVA(OFFSET(R[-1]C[-1]:R[18]C[-1],1,0))"
Range("C3").Select
Selection.AutoFill Destination:=Range("C3:C75")
Range("C3:C75").Select

Range("E1").Select
ActiveCell.FormulaR1C1 = "Bollinger haut"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+2*STDEVA(RC[-3]:R[19]C[-3])"
Range("E3").Select
ActiveCell.FormulaR1C1 = "=RC[-1]+2*STDEVA(OFFSET(R[-1]C[-3]:R[18]C[-3],1,0))"
Range("E3").Select
Selection.AutoFill Destination:=Range("E3:E75")
Range("E3:E75").Select
 

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas