Une erreur de division par zéro est apparue dans un indicateur - page 7

 
Aleksey Vyazmikin:

Je vais y réfléchir, merci. Mais le problème global est tout autre. .... Le problème est qu'il n'est pas stable.

Alternativement, le problème pourrait être observé au début de la barre des heures. Lorsque la barre vient de s'ouvrir, elle ne contient qu'une seule valeur minute.start_index serait égal àstop_index

 
Sergey Savinkin:

Alternativement, le problème pourrait être observé au début d'une barre horaire. Lorsque la barre vient de s'ouvrir, elle ne contient qu'une seule valeur minute.start_index serait égal àstop_index

Non, ça arrive au hasard, à différents moments. Le problème ne devrait pas être lié au code, il a fonctionné correctement pendant longtemps sur différents instruments et dans différents modes. Je pense que c'est une fonction intégrée qui a cassé après une autre mise à jour...

 

if(PeriodSeconds(_Period)!=0)limit=(int)(stop_time-start_time)/PeriodSeconds(_Period);

 
Renat Akhtyamov:

if(PeriodSeconds(_Period)!=0)limit=(int)(stop_time-start_time)/PeriodSeconds(_Period);

Et quand cette condition ne devrait pas apparaître, dans quel cas ?

 
Aleksey Vyazmikin:

Et quand cette condition ne devrait pas apparaître, dans quel cas ?

sinon

imprimer l'heure ou écrire le timestamp dans le global

laissera une trace, c'est là que vous découvrirez le problème.
 

Quelqu'un a-t-il réussi à obtenir une erreur de division de zéro? Imprimer ?

Je viens de lancer un graphique, j'ai attendu une heure, aucune erreur, j'ai changé le profil pour un profil de travail et les erreurs ont commencé. C'est pourquoi je me demandais si c'était plus profond que ça.

 
Renat Akhtyamov:

sinon

imprimer l'heure ou écrire les horodatages dans le global

laissera une trace, c'est là que vous trouverez le problème.

La trace est là de toute façon, mais à quoi sert-elle - elle n'est pas reproduite dans le profilage ou dans le testeur.

 
Aleksey Vyazmikin:

Quelqu'un a-t-il réussi à obtenir une erreur de division de zéro? Imprimer ?

Je viens de lancer un graphique, j'ai attendu une heure, aucune erreur, j'ai changé le profil pour un profil de travail et les erreurs ont commencé. C'est pourquoi je me suis demandé si le problème n'était pas encore plus profond ?

Peut-être dois-je enregistrer à nouveau le modèle à partir d'un graphique fonctionnel ?

le vent ne gèle pas, le disque dur s'effrite-t-il ?

 
Renat Akhtyamov:

Peut-être devez-vous enregistrer à nouveau le modèle à partir du tableau de travail ?

Le vent ne gèle pas, le disque dur s'effrite-t-il ?

A quoi sert de sauvegarder le modèle ? Lorsque j'ai modifié le profil, des dizaines d'indicateurs différents ont été traités. À ce stade, le terminal se bloque, mais il revient ensuite à la normale.

Je n'ai pas de problème ici, ce n'est pas un problème avec le disque dur SSD. J'ai suggéré un problème avec MT5 en termes de traitement des indicateurs en continu.

 

Supposons que nous ayons

2018.07.04 22:46:13.566 IndDrafter_Test (Si-9.18,M1)    i=638 start_time - 2018.04.28 23:38 stop_time - 2018.04.28 23:38
2018.07.04 22:46:13.566 IndDrafter_Test (Si-9.18,M1)    start_index=26430 stop_index=26430
2018.07.04 22:46:13.566 IndDrafter_Test (Si-9.18,M1)    TimeFrames=3600

Nous savons que l'heure de début doit être2018.04.28 23:00

L'heure n'est donc pas la bonne ici ?

datetime start_time=rates[i].time;