[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 679

 


Chers programmateurs,
Veuillez répondre à la question suivante :

Sorties avec 8 décimales. Pourquoi n'est-elle pas normalisée ?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif

 
Hedin:


Chers programmeurs,
veuillez répondre à la question suivante :

Sorties avec 8 décimales. Pourquoi n'est-il pas normalisé ?

http://savepic.ru/1435355.gif


S'il est écrit dans l'aide sur la fonction NormalizeDouble() qu'elle arrondit à une précision spécifiée et renvoie le type double, vous avez tout bon, et si vous avez besoin d'une chaîne de texte avec une précision spécifiée après un point décimal, alors vous devriez utiliser DoubleToStr()
 
IgorM:


J'ai dû mal comprendre la signification de int startH = Hour() ; - cela donnera l'heure actuelle du serveur - heure, je chercherais des heures zéro, ou toute autre heure :


Merci, cela fonctionne maintenant.

Mais pourquoi cela n'a pas fonctionné avec la fonction Hour(), je ne comprends toujours pas.

Il nous a donné l'heure actuelle de l'heure du Nord. Par exemple, disons que c'est 5.

Par conséquent, lorsque nous appelons open[i+5], nous obtenons le prix d'ouverture de la bougie qui s'est ouverte en début de journée, c'est-à-dire à 0:00 AM.

Veuillez expliquer ce que je ne comprends pas exactement.

 
webgreck:


Merci, cela fonctionne maintenant.

Je ne comprends toujours pas pourquoi ça n'a pas fonctionné avec la fonction Hour().

Il nous a donné l'heure actuelle de l'heure du Nord. Par exemple, disons que c'est 5.

Par conséquent, lorsque nous appelons open[i+5], nous obtenons le prix d'ouverture de la bougie qui s'est ouverte en début de journée, c'est-à-dire à 0:00 AM.

Veuillez expliquer ce que je ne comprends pas exactement.


L'heure du serveur est l'heure du serveur ( TimeCurrent() ), vous l'avez sur votre PC ( TimeLocal() ; ), la fonction Hour() :

" Renvoie l'heure courante (0,1,2,...23) du dernier temps serveur connu au démarrage du programme (cette valeur ne change pas pendant l'exécution du programme ).Remarque : le dernier temps serveur connu est simulé pendant les tests. "

Je ne sais même pas quoi en faire moi-même s'il ne change pas - peut-être n'est-il nécessaire que pour le testeur.

 
webgreck:

Pouvez-vous me dire ce que j'ai fait de mal ?

J'ai besoin de trouver le prix d'ouverture de la première bougie sur le graphique horaire, c'est-à-dire celle de 0:00 et de cette bougie à la bougie actuelle pour trouver la valeur maximale du prix.

Pourquoi est-ce que j'obtiens toujours le haut de la première bougie du jour en cours.

C'est comme ça que je fais :

Faites un cycle dans Time[] et trouvez la barre souhaitée, puis faites un cycle à partir de cette barre pour trouver un extremum.
 

Chers collègues, quelqu'un sait-il comment faire pour que le testeur ne déduise pas de commission pour un échange ? Peut-être existe-t-il un fichier dans MT4, où le montant de la commission pour un contrat pour un instrument particulier est spécifié ?

Laissez-moi vous expliquer pourquoi j'en ai besoin. Outre les devises, je m'intéresse également aux contrats à terme sur l'Uber et l'indice RTS. Quick n'est pas adapté au développement de robots. Par exemple, ma société de courtage a une commission pour un contrat - CFD sur les futures sur l'indice rts (comme ça sonne, mais ... :)) - c'est un racket .... coûte 10 livres verts. C'est pourquoi même une transaction avec un profit de 250p donne une perte de $1 dans le testeur. C'est incroyable, j'ai des outils et des devis, mais il est impossible de les tester et de les optimiser.

Au secours !

 
Blaid73:

Chers collègues, quelqu'un sait-il comment faire pour que le testeur ne déduise pas de commission pour un échange ? Peut-être existe-t-il un fichier dans MT4, où le montant de la commission pour un contrat pour un instrument particulier est spécifié ?

Laissez-moi vous expliquer pourquoi j'en ai besoin. Outre les devises, je m'intéresse également aux contrats à terme sur l'Uber et l'indice RTS. Quick n'est pas adapté au développement de robots. Par exemple, ma société de courtage a une commission pour un contrat - CFD sur les futures sur l'indice rts (comme ça sonne, mais ... :)) - c'est un racket .... coûte 10 livres verts. C'est pourquoi même une transaction avec un profit de 250p donne une perte de $1 dans le testeur. C'est incroyable, j'ai des outils et des devis, mais il est impossible de les tester et de les optimiser.

Au secours !


probablement ceci : https://www.mql5.com/ru/forum/119830

 

Veuillez m'indiquer comment et ce que vous pouvez faire pour remplacer le code afin de faire la même chose mais de travailler plus rapidement :

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

C'est juste un élément d'une grande fonction, où il y a beaucoup de contrôles de ce type et qui affecte beaucoup les performances. J'ai déjà posé ici des questions sur l'optimisation du code, mais je n'ai obtenu aucune réponse et je n'ai rien trouvé dans la recherche... Est-ce vraiment un secret que personne ne connaisse ou ne veuille partager ? Au moins un lien vers un article... à lire à votre guise... Il est impossible de le tester complètement de toute façon...

 
Comment puis-je prendre contact avec vous ? J'ai beaucoup de questions et j'aimerais avoir des conseils.
 
artmedia70:

Veuillez m'indiquer comment et ce que vous pouvez faire pour modifier le code afin de faire la même chose mais plus rapidement : ...

Je remplacerais le commutateur par un tableau prêt à l'emploi, pourquoi attribuer des valeurs prédéfinies à chaque fois ?
Raison: