Questions des débutants MQL5 MT5 MetaTrader 5 - page 1110

 
Alexey Viktorov:

La documentation vous indique comment procéder. Dans fmod, vous divisez par 1 et obtenez la partie fractionnaire du nombre ou 0. Le nombre de décimales saisies dans le champ ou dans la variable d'entrée importe peu.

Ça marche, c'est la solution la plus simple !

EditCreate(0,"TR",0,0,0,X,Y, fmod(TralingStop,1)==0 ? DoubleToString(TralingStop,0) : DoubleToString(TralingStop,1),true);

Merci !

 
heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
CopyBuffer(heik_h, 1, 1, 1, heikHigh);
CopyBuffer(heik_h, 2, 1, 1, heikLow);
Comment(heikHigh[0]);   

J'obtiens la mauvaise valeur, autour de zéro

L'indicateur est dans Exemples

Quel est le problème ?

 
Roman Sharanov:

J'obtiens la mauvaise valeur, autour de zéro

L'indicateur est dans Exemples

Quel est le problème ?

Créez-vous un nouveau handle d'indicateur à chaque tick?

La poignée doit être créée dans OnInit et les données doivent être reçues dans OnTick ou OnCalculate.
 
Vladimir Karputov:
Créez-vous un nouveau handle d'indicateur à chaque tick?

La poignée doit être créée dans OnInit et les données doivent être reçues dans OnTick ou OnCalculate.

Non, c'est dans OnInit

 
Roman Sharanov:

Non, c'est dans OnInit


Vous êtes inattentif : lisez toute la phrase, dans son intégralité : le Handle doit être créé dans OnInit, et les données doivent être reçues dans OnTick ou OnCalculate.
 
Vladimir Karputov:

Vous êtes inattentif : lisez toute la phrase, dans son intégralité : le Handle doit être créé dans OnInit, et les données doivent être reçues dans OnTick ou OnCalculate.

Et il en est ainsi

 
int OnInit(){
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
}
void OnTick(){
   CopyBuffer(heik_h, 1, 1, 1, heikHigh);
   Comment(heikHigh[0]);
}
 

Roman Sharanov:

int OnInit(){
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
}
void OnTick(){
   CopyBuffer(heik_h, 1, 1, 1, heikHigh);
   Comment(heikHigh[0]);
}

//+------------------------------------------------------------------+
int OnInit()
  {
   heik_h = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\Heiken_Ashi");
   if(heik_h==INVALID_HANDLE)
      return INIT_FAILED;
   ArraySetAsSeries(heikHigh,true);
  }
void OnTick()
  {
   if(CopyBuffer(heik_h, 1, 1, 1, heikHigh)==1)
      Comment(heikHigh[0]);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Rien n'a changé, il affiche toujours e+321.

 
Roman Sharanov:

Rien n'a changé, il affiche toujours e+321.

Utilisez lafonction DoubleToString() pour obtenir des valeurs de prix avec la précision souhaitée.

Raison: