Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Hoebi

Vivre mieux c'est apprendre à vivre autrement tout en restant soi-même...

Présentation du C# sur Calgo Part1: Variables et parametres

Publié le 30 Novembre 2012 par Hoebi in C, CAlgo, trading

Bonjour à tous,

Pour commencer, je parlerai de "base" en programmation et pas de détails complexes tel que tableau, pointeurs ou autre. Je ne suis pas là pour dégouter les gens mais bien pour faire découvrir ce qui prends tellement de temps sur mes journées :)

Ensuite, ici, je parlerai de langage C# mais principalement sur CAlgo, logiciel pour programmer des indicateurs et robots de trading ;)

Commençons en douceur même si rien n'est réellement simple en programmation lol Si vous discutez de programmation ou commencez dans ce domaine, un mot reviendra très fréquemment: la variable. En language informatique, une variable est une zone de mémoire où l'on stoque des données. Par exemple, si vous demandez au pc de retenir votre age, il utilisera une zone pour insérer la variable age...

Une variable possède 2 particularités sur CAlgo. Le type et la façon dont le pc vas la traiter dans la confidentialité. Parlons pour commencer de cette deuxième particularité. Public, elle est visible dans le code et peut donc être retrouvée par exemple en faisant appel à un robot ou simplement pour y encoder un paramètre. En "private" donc privée, elle est cachée et utilisée principalement pour les calculs, utile pour cacher son identité...

Viens ensuite le type de variable. C'est le truc qui tue quant on ouvre pour la première fois un livre de programmation lol Je ne vais pas vous expliquer la différence entre "long", "int", "double",... Sachez juste que pour stocker la variable, le pc réserve une mémoire d'une certaine taille. Certaine variable possèdant des nombres partculiers et long, prendrons une certaine taille importante. D'autres comme le int, seront plus petite. Voilà pourquoi on utilisera pas une variable "int" pour un nombre tel que 23000093 sachant que le "int" peut aller de 0 à 255 si je ne dis pas de bétises :) Ce qu'il faut comprendre surtout, c'est qu'une variable n'est pas seulement grande, elle possède aussi une certaine "définition". Comme pour la calculette, si vous lui demander de calculer "Pierre+Paul", elle vous enverra balader à tous les coups. Par contre, 2+2 font 4 sauf cas particulers, vous m'aurez compris lol Dès lors, on fera comprendre au pc qu'une variable vaut un texte, chaine de caractère avec "char" par exemple. Ou un nombre avec "int".

On donnera sur Calgo l'ordre suivant: "private int x". Ce qui donne, x, nombre int privé. Voilà, maintenant, on peut se comprendre un peu mieux lol Dans la programmation, l'ordre est indispensable pour la simple raison que le pc vas lire le code de haut en bas et de gauche à droite donc, si vous écrivez x int private, le pc vas se demander si c'est pas de l'hébreux lol Pour faire du pain, il faut faire la pâte avant. Si vous cuisez le pain avant d'avoir la pâte, je vous tire mon chapeau lol Cela peut sembler bête mais avec un code complexe, une telle erreur peut s'avérer délicate ;)

J'ai par contre volontairement oublié une étape sur la feuille de code, ce que l'on appelle les librairies. Le pc est une bête de calculs mais il faut tout lui expliquer. Lui demander de créer une variable de type "int" c'est bien, mais faut aussi lui expliquer ce que signifie "int". Voilà la raison des librairies. Permettre au pc avec son langage de 0 et de 1, d'aller chercher les éléments indispensable à sa compréhension. Le type de variable entre autre mais aussi toutes les fonctions que regorge un programme...

Une fois les librairies demandées ("using cAlgo.API.Indicators;") par exemple. On commence la programmation en elle même. Le "namespace" permet d'aller chercher le fichier où le code est sauvegardé pour être utilisé. Je passerai volontairement directement aux paramètres, inutile de vous faire un cours complet aussi...

Dans la prochaine zone, on remarque 3 catégories: les paramètres, les variables supplémentaires et les indicateurs (Output). Le premier permet de définir une zone que vous pourrez utiliser pour encoder les paramètres. La seconde servira dans le code. La troisième permet d'afficher sur le graphique toutes les informations visuelles (le texte c'est une autre histoire). L'ordre n'est pas important concernant les catégories par contre, il faut respecter l'ordre de programmation. Si on crée un parametre, on lui donne une variable suivis de la fonction "Get;Set;" permettant de la récupérer et de l'encoder.

[Parameter("Volume",DefaultValue=10000)]public int volume{get; set;}

En français, on demande un paramètre nommé "Volume" (affiche ce nom dans la zone) d'une valeur par défaut 10000. Ensuite, il précise que c'est bien entendu public de type int et le nom de la variable "volume". Une fois terminé, il prends la variable "get" et l'enregistre "set"...

[Output("RSIexp",PlotType=PlotType.Line,Color=Colors.Cyan,LineStyle=LineStyle.Solid)]public IndicatorDataSeries RIE{get;set;}

Ici, on parle maintenant d'une indication visuelle. Dans ce cas ci, on demande donc une ligne (plotType.line) de couleur Cyan, ligne solide (LineStyle). Puis, on lui demande de la stocker dans la variable de type indicateur public dont le nom est "RIE"... Pourquoi "IndicarorDataSeries" et pas "double"? Pour ce faire, il faut comprendre le mécanisme du pc. Si on lui demande un "double", il vas prendre une zone de mémoire et insérer la valeur. Puis, une fois la période de trade finie, il remplis une nouvelle valeur dans la variable. L'ancienne vas donc disparaitre. Un indicateur possède un cumul des valeurs suivant la période que vous visualisez. Il faut donc une variable qui enregistre non plus "une" valeur mais "toutes" d'où cette différence...

Voilà qui démarre ce chapitre sur CAlgo. Le prochain, peut être demain, sera sur les fonctions, là où les math deviennent important dans la vie lol

exemple code CAlgo

exemple code CAlgo

Commenter cet article