Bonjour à tous,
J’aimerais créer un indicateur qui contient une quinzaine de moyennes mobiles. Appelons le MoyenneMobile qui prend par exemple en paramètre le type de la moyenne et la période.
Maintenant j’aimerais utiliser cet indicateur un peu partout dans mes autres indicateurs. Sur les prix MAIS aussi sur d’autres propriétés (volume, volalitilé, autres moyennes). J’aimerais éviter de devoir recoller MoyenneMobile dans tous mes systèmes…
Comment donc faire avec un CALL? Quelqu’un pourrait m’aider en me donnant un petit exemple ? Comment faire pour passer en argument autre chose qu’un prix (genre un volume ou autre chose qui constitue une série et non un entier ?)
Tu souhaiterai donc utiliser ton code ‘MoyenneMobile’ comme une fonction. comme tu le sais sans doute, l’instruction CALL n’est pas vraiment recommandée dans un programme puisqu’elle implique de lourds calculs..
Cependant, l’idée est bonne et devrait être bien plus exploitée à l’avenir avec l’arrivée du nouveau moteur de données à venir (rapidité accrue pour ce type de programmation X centaines de fois par rapport à actuellement).
Concernant le type d’argument envoyé dans ta fonction, que ce soit un prix ou un volume, ce sera toujours un série qui variera à chaque nouvelle bougie dans l’historique ou tick sur la bougie actuelle. Tu peux donc envoyer le Volume comme n’importe quelle autre variable. Ou alors, je n’ai pas bien saisi ta question 🙂
Merci pour ta réponse.
Cependant, l’idée est bonne et devrait être bien plus exploitée à l’avenir avec l’arrivée du nouveau moteur de données à venir (rapidité accrue pour ce type de programmation X centaines de fois par rapport à actuellement).
Ca arrive quand? une idée? quelques mois? il y’aura le support de tableau ou pas?
Oui en gros je veux utiliser mon indicateur comme une fonction vu qu’on ne peut pas en faire 🙁
Je galère. 🙂
Par exemple un code qui ne marche pas.
Pour l’exemple je veux appeler une fonction qui fait une EMA de période 30 sur un prix et un volume.
// MyFunction
// Parameters
// Data = Decimal (Volume, Price, etc) à 0 par défaut
// Period = Entier à 20 par défaut
MA = ExponentialAverage[Period](Data)
Return MA
Et l’indicateur qui doit faire appel à la “fonction”
// CALL
MAPrix = CALL "MyFunction"[Close, 30]
MAVolume = CALL "MyFunction"[Volume, 30]
RETURN MAPrix, MAVolume
Bon ben ça marche pas 🙂
Ok je crois que je viens de trouver mais c’est clairement pas intuitif.
// MyFunction
// Parameters
// Period = Entier à 20 par défaut
Data = CustomClose
MA = ExponentialAverage[Period](Data)
Return MA
// CALL
MAPrix = CALL "MyFunction"[30](Close)
MAVolume = CALL "MyFunction"[30](Volume)
RETURN MAPrix, MAVolume
Le CustomClose devrait s’appeler Series ou je ne sais, c’est pas forcément un Close.
🙂