[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 53

 
for (i=4; i<19; i++)
{
   sum+=GetPrcD1(symb[i]);
   Content[5 + (i-4)/3][1]=DoubleToStr(sum/3,3);
}
Quelque chose comme ça. Je n'ai pas vérifié.
 
TheXpert:
Quelque chose comme ça. Je n'ai pas vérifié.

Merci ! Ça marche ! Pourquoi suis-je si stupide ? Je pense que j'ai bien réussi à l'école ( !)
 

Une autre question a été soulevée. Problème avec la somme de valeurs. par type sum+=a[i] (lire dans le tutoriel)

Renvoie de manière incorrecte la somme des valeurs, veuillez indiquer l'erreur.

for (i=4; i<19; i++){
   sum+=GetPrcH12(symb[i]);//сумма значений по номеру i пары   
   }
//+------------------------------------------------------------------+
double GetPrcH12(string symb){
int i=iBarShift(NULL, 0, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 12:00"));//ищем бар по времени на сегодня
double pc=iClose(symb,PERIOD_M30,i);//цена закрытия на начало времени  
double a=0;
if (pc!=0) 
a=(iClose(symb,PERIOD_M30,0)*100)/pc-100;//расчет процента изменения от начала времени
return (a);
}
 
Kondratiev_A_A: Problème avec la somme des valeurs. type sum+=a[i]

Je soupçonne que le problème est le manque d'initialisation de la variable somme avec zéro, et probablement dans une boucle correcte, comme celle-ci, cela devrait fonctionner:

sum = 0;
for (i=4; i<19; i++)
   sum+=GetPrcH12(symb[i]);

Après la boucle, la variable sum contiendra la somme des valeurs de la fonction.

 
IgorM:

Je soupçonne que le problème est le manque d'initialisation de la variable sum avec zéro, et probablement dans une boucle correcte, comme celle-ci, cela devrait fonctionner:

Après la boucle, la somme des valeurs de la fonction sera dans la variable sum.


Merci, j'ai essayé, sum=0, pas de changement.

L'erreur est dans le mécanisme de sommation lui-même... Je vais devoir y réfléchir.

 
Puis-je utiliser MathPow() pour incrémenter un nombre entier ? Est-ce correct ?
 

Encore une question sur l'optimisation et la mise en page, comment emballer un tel miracle ? J'ai utilisé sum+=a[i], c'est un désordre.

   sum=GetPrcH12(symb[4])+GetPrcH12(symb[5])+GetPrcH12(symb[6]);
   Content[5][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[7])+GetPrcH12(symb[8])+GetPrcH12(symb[9]);
   Content[6][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[10])+GetPrcH12(symb[11])+GetPrcH12(symb[12]);
   Content[7][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[13])+GetPrcH12(symb[14])+GetPrcH12(symb[15]);
   Content[8][3]=DoubleToStr(sum/3,3);
   
   sum=GetPrcH12(symb[16])+GetPrcH12(symb[17])+GetPrcH12(symb[18]);
   Content[9][3]=DoubleToStr(sum/3,3);
 

Les gars, quelqu'un peut savoir pourquoi ma mère ASUS P5B sous le Seven sur 4 gig de RAM (2 sur 2GB DDR3) voit seulement trois ?

Il dit 4 installés, 2.94 disponibles...

 
moskitman:

Les gars, quelqu'un peut savoir pourquoi ma mère ASUS P5B sous le Seven sur 4 gig de RAM (2 sur 2GB DDR3) voit seulement trois ?

Il dit 4 installés, 2.94 disponibles...

Un ordinateur portable, peut-être ? C'est réservé à la carte vidéo.
 
AndEv: Puis-je utiliser MathPow() pour incrémenter un nombre entier ? Dans quelle mesure cela sera-t-il correct ?
Le plus simple est d'effectuer une vérification, et la théorie dit : int est converti en double, ce qui a la priorité. MathPow (double base, double exposant) passe des variables de type double. Utiliser des variables "sans perte de santé" de type int au lieu de type double.


Raison: