Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1205

 

pourquoi le compilateur donne-t-il un avertissement sur cette ligne ?

datetime time_setup=OrderGetInteger(ORDER_TIME_SETUP);
possible loss of data due to type conversion    
 
Pouvez-vous me donner un indice ? Quand je soustrais un nombre, j'obtiens 3e-5. Comment faire pour que ça ressemble à 0,00003 ? Merci.
 
awsomdino:

Pourquoi le compilateur donne-t-il un avertissement sur cette ligne ?

Parce que XxxxGetInteger renvoie un long (nombre entier avec signe), alors que datetime est un nombre entier non signé et un type distinct. Nous devrions préciser

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18:
Dites-moi. Quand je soustrais, j'obtiens un nombre 3e-5. Comment faire pour que ça ressemble à 0,00003 ? Merci.

Où le trouvez-vous ?

 

Bonjour !

La fonction OnCalculate renvoie périodiquement 0

prev_calculated = 0

Je pense que c'est parce que le graphique est alimenté par des citations provenant d'une ressource tierce. Il ne semble pas que le graphique soit écrasé pour autant.

Comment puis-je écraser les nouvelles données sans réécrire les anciennes ?

Je crée juste un indicateur avec quelques calculs, je n'essaie pas de charger des cotations.

void filter(const int rates_total,const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if(prev_calculated>0)
      start--;
//---
   for(int p=2; p<Pmax; p++) // отбор по периодам
      for(int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
Bon temps à vous tous. Question : dans MT4, lorsque l'on travaille dans le testeur avec des crosses (paires sans quidam), comment le testeur calcule-t-il les résultats des positions fermées, si le compte, sur lequel le test est effectué, est un compte en dollars ? Pour le recalcul des totaux de position en dollars, le testeur prend-il le taux de change de la devise de base du cross par rapport au dollar au moment actuel ou au moment de l'intervalle testé ? Je soupçonne fortement que c'est le cas à l'heure actuelle. Si oui, n'est-il pas possible de le faire compter au moment de l'intervalle ?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij:

Dans MQL4 seulement de cette manière :

Résultat :


Merci beaucoup pour votre aide.

 
Mihail Matkovskij:

Où le trouvez-vous ?

Juste ici.

double price1=1.23450;
double price2=1.23447;
double delta=price1-price2;
Alert("Разбег ",delta);
 
prom18:

Juste ici.

Alert("Разбег "+DoubleToString(delta,_Digits));

ou Alert(StringFormat("Spread %.5f",delta)) ;

En général, il faut s'y habituer, ce ne sont que des représentations différentes d'un même nombre. Pensez à vos merveilleux jours d'école - c'est de là que ça vient.

 
Top2n:

Bonjour !

La fonction OnCalculate renvoie périodiquement 0

Je pense que c'est parce que le tableau est rempli de citations provenant d'une ressource tierce. Il ne semble pas que le tableau soit écrasé.

Comment puis-je écraser les nouvelles données sans réécrire les anciennes ?

Je crée juste un indicateur avec quelques calculs, je n'essaie pas de charger des cotations.

Déclarer une variable globale (ne pas confondre avec les variables globales du terminal)

 bool firstRun = false;

et effectuer un recalcul complet uniquement au premier tick

// простейшее условие пересчёта
if(!firstRun) {
  // пересчёт ...
  firstRun = true;
}

Si firstRun est également réinitialisé avec les paramètres OnCalculate, l'indicateur redémarre.

Raison: