Affichage des articles dont le libellé est variables. Afficher tous les articles
Affichage des articles dont le libellé est variables. Afficher tous les articles

lundi 14 février 2011

La fonction MarketInfo()

MarketInfo() est une fonction qui associe à une variable une valeur constante. Elle s' avère très utile pour récupérer des données d' un graphique ou d' un compte.


La fonction :
double variable = MarketInfo(Symbol(), paramètre);

MarketInfo retourne une valeur différente selon le paramètre appelé :
   - MODE_LOW -> minimum de la journée
   - MODE_HIGH -> maximum de la journée
   - MODE_TIME -> temps au dernier tick
   - MODE_BID -> dernière valeur de l' offre
   - MODE_ASK -> dernière valeur de la demande
   - MODE_POINT -> pip de la devise
   - MODE_DIGITS -> nombre de décimales dans le pip
   - MODE_SPREAD -> taille du spread ( en pips )
   - MODE_STOPLEVEL -> stoploss et takeprofit minimaux ( en pips )
   - MODE_LOTSIZE -> taille du lot de la devise
   - MODE_MINLOT -> investissement minimum autorisé ( en lots )
   - MODE_MAXLOT -> investissement maximum autorisé ( en lots )

lundi 10 janvier 2011

True or False

True ( vrai ) et False ( faux ) sont 2 variables complémentaires d' un autre type : ce sont des variables booléennes. Deux choix possible : soit l' une soit l' autre.
Elles ont beaucoup d' applications dans les Expert Advisor.


Exemple :
Vous le savez, les Expert Advisor font tourner la fonction start en boucle. True et False vont être très utiles pour faire en sorte de ne plus voir s' afficher des alertes toutes les 2 secondes...
Exemple avec la fonction de la leçon précédente :
double midi = 12.00;
bool vrai = true;


double start()              
  {                
   int dats = Seconds();
   int datm = Minute();
   int dath = Hour();
   if (vrai = true)
    {
    vrai = false;

    Alert("Il est ", dath, ":", datm, ":", dats);
    if (midi > dath)
     {
      double h = midi - dath;
     Alert("Plus que ", h, " heures avant midi !");
     }
    else
     {
      double h24 = midi + 24 - dath; 
      Alert("Plus que ", h24, " heures avant midi !");
     }
    }

   return;
  }

---> Leçon suivante  

samedi 8 janvier 2011

La variable DateTime

Cette variable sert à calculer des durées et à prévoir des instructions selon certaines dates. Le nom de la variable est toujours précédée de datetime.


Variables :
datetime temps1 = D'2011.01.01 00:00';     // Nouvelle année 2011
datetime temps2 = D'01.01.2011';           // Nouvelle année 2011
datetime Temps3 = D'2011.01.19 16:30:45';  // Le 19 janvier 2011 à 16h30m45s
datetime temps4 = D'19.01.2011 16:30:45';  //
Le 19 janvier 2011 à 16h30m45s
datetime temps5 = D'15:50:15';             // aujourd' hui à 15h50m15s
datetime temps6 = D'';                     // aujourd' hui à minuit



Fonctions :
datetime TimeLocal()             // renvoie la date du PC local 
datetime TimeCurrent()           // renvoie la date du serveur
Ces 2 fonctions renvoient en fait le nombre de secondes écoulées depuis le 1 janvier 1970. C' est comme ça...

Ces fonctions retournent une partie de la date ( serveur Metatrader ): Seconds(), Minute(), Hour(), Day(), TimeMonth(), TimeYear(), DayOfWeek (), DayOfYear()


Exemple :
double midi = 12.00;
    
double start()              
  {                
   int dats = Seconds();
   int datm = Minute();
   int dath = Hour();
   Alert("Il est ", dath, ":", datm, ":", dats);
   if (midi > dath)
    {
     double h = midi - dath;
    Alert("Plus que ", h, " heures avant midi !");
    }
   else
    {
     double h24 = midi + 24 - dath; 
     Alert("Plus que ", h24, " heures avant midi !");
    }
   return;
  }

Vous devriez comprendre sans souci cette courte fonction qui affiche l' heure du serveur, et le temps restant avant midi.

---> Leçon suivante

vendredi 7 janvier 2011

Variables locales ou globales

Les variables ont pour l' instant toujours été définies à l' intérieur des fonctions. C' étaient des variables locales, qui disparaissaient une fois la fonction terminée.
Il est souvent nécessaire de définir une variable qui sera constante et utilisable dans toutes les fonctions d' un programme : c' est ce qu' on appellera une variable globale.


Programme utilisant une variable globale : 
Imaginons, je possède un compte d' un montant de 10 000€. Deux jours plus tard, après quelques placements, je me retrouve avec 10 285€. Je vais maintenant, grâce au programme ci-dessous, pouvoir calculer mon pourcentage de gain, et le ratio gain/heure.

int inicompte = 10000;         // compte initial
int heures = 48;               // 2 jours = 48 heures
int moncompte = 10285;         // compte actuel


double start()                 // fonction start
  {                       
   double pourc = pourcentage(inicompte, moncompte);  
   double ratiog = ratio(inicompte, moncompte, heures);
   Alert(" Gains = ", pourc, "% et ratio = ", ratiog, "€ par heure");
   return;                     
  }


double pourcentage(double ini, double fin) 
  {                       
   double pour1 = 
fin - ini;
   double pour2 = pour1 / ini * 100;
   return(pour2);                         
  }


double ratio(double ini, double fin, double temps) 
  }                       
   double rat1 = fin - ini;

   double rat2 = rat1 / temps;
   return(rat2);                         
  }

Prenez bien le temps de comprendre ce programme. Comme vous pouvez le constater, ça commence à se compliquer un peu...
Notez par ailleurs qu' on aurait très bien pu obtenir le même résultat en utilisant des variables locales dans la fonction start.

Vous avez maintenant toutes les bases nécessaires pour programmer des bots un peu plus utiles sur Metatrader. Je vous invite à passer à la leçon suivante.

---> Leçon suivante

mercredi 5 janvier 2011

Variables et premières opérations

Sauf instruction contraire, l' ordinateur "lit" les instructions une à une, du haut vers le bas.
Prenons une variable a. Elle peut contenir soit un nombre, soit un mot ( qu' on appelle chaine ). Pour associer un nombre ou une chaine à une variable, on utilise le signe =.


La variable est un nombre. int ou double.
Le mot double précède la variable quand elle contient un nombre décimal. Dans le cas où le nombre est un entier, le nom de la variable est précédé par int.

Exemples :
double a = -5.5
La variable a a pour valeur -5,5.


int a = -6
int a = 75

La variable a prend pour valeur -6, puis 75.

double a = 4.0
int b = 3
double c = a + b La variable c a pour valeur
7.
double d = a - b            
La variable d a pour valeur 1.

double e = a * b
La variable e a pour valeur 12.

double f = b / a
La variable f a pour valeur 0,75.


La variable est une chaine. string.
De même, le mot string précède la variable lorsqu' elle contient une chaine. La chaine est toujours délimitée par des guillemets "".

Exemples :
string a = "mot"
La variable a a pour valeur la chaine mot. 

string a = "mot" 
string b = " et mot2"
string c = a + b
Il est possible d' ajouter 2 chaines. La variable c a pour valeur la chaine mot et mot2.

---> Leçon suivante