Avec quoi remplacer OnTradeTransaction() dans mql4 ? - page 5

 
Vitaly Muzichenko:

Aujourd'hui j'ai été confronté au fait qu'une position s'est fermée et que l'autre s'est ouverte sur une autre, et presque en même temps entre les ticks.

Au final, OrdersTotal() est resté à 8. La logique du conseiller expert s'est embrouillée - il n'a pas recalculé les nouvelles données.

C'est exactement ce à quoi je pense et je n'aime pas ça. Bien que ma situation soit légèrement différente, l'essence est la même. Je pense.

 
Aleksandr Volotko:

C'est exactement ce que je pense et je n'aime pas ça. Bien que ma situation soit un peu différente, le but est le même. Je pense.

Alexander, vous ne trouverez rien de mieux que la bibliothèque d'Artem Trishkin. Bien qu'il me critique, il ne s'agit que de mql5 et je ne fais pas grand chose dans mql4, c'est pourquoi je n'utilise pas cette bibliothèque. J'ai lancé un conseiller expert et j'ai essayé de l'utiliser, mais j'ai abandonné. L'idée s'est avérée incompétente avant même que la mise en œuvre ne soit terminée... )))

IMHO, construire un algorithme sur la recherche de l'histoire n'est pas la meilleure option. Et changer la taille de l'historique est encore pire. L'un des problèmes a été décrit par Vitaly. L'autre est que, si nous n'écrivons pas seulement pour nous-mêmes, c'est généralement inacceptable. Le nombre d'ordres dans l'historique sur mql4 dépend de la sélection de la profondeur.

Et imaginez qu'un utilisateur décide de consulter l'historique pour aujourd'hui, puis pour une semaine et quelques autres commutations... L'EA deviendrait folle si elle le voulait))))

 
Aleksandr Volotko:

C'est exactement ce que je pense et je n'aime pas ça. Bien que ma situation soit un peu différente, le but est le même. Je pense.

La somme de hachage des propriétés des ordres et des positions. Le symbole est codé dans la somme des codes de caractères qui composent son nom. Mais alors seulement une boucle complète. Quand la somme de hachage change - voyez ce qui s'est passé.
 
Artyom Trishkin:
La somme de hachage des propriétés des ordres et des positions. Le symbole est codé dans la somme des codes de caractères qui composent son nom. Mais alors seulement une boucle complète. Lorsque la somme de hachage est modifiée - voyez ce qui s'est passé.

Comment ça ?

 
Alexey Viktorov:

Alexander, vous ne trouverez rien de mieux que la bibliothèque d'Artem Trishkin. Je ne sais pas pourquoi je ne l'utilise pas. J'ai commencé une EA en essayant de l'utiliser, mais j'ai abandonné. J'ai lancé un conseiller expert et j'ai essayé de l'utiliser, mais j'ai abandonné. L'idée s'est avérée incompétente avant même que la mise en œuvre ne soit terminée... )))

IMHO, construire un algorithme sur la recherche de l'histoire n'est pas la meilleure option. Et changer la taille de l'historique est encore pire. L'un des problèmes a été décrit par Vitaly. L'autre est que, si nous n'écrivons pas seulement pour nous-mêmes, c'est généralement inacceptable. Le nombre d'ordres dans l'historique sur mql4 dépend de la sélection de la profondeur.

Et imaginez que l'utilisateur décide de consulter l'historique pour aujourd'hui, puis pour une semaine, et quelques interrupteurs... Le Conseiller Expert deviendrait fou s'il voulait))))

Alexei, OrdersHistoryTotal() fonctionne clairement, il y a toujours une "Select period" à remplir ou à déduire.

 
Vitaly Muzichenko:

Alexei, OrdersHistoryTotal() fonctionne bien, il remplit ou réduit toujours "Select period".

Je ne comprends pas. Vous voulez dire que cela ne dépend pas des paramètres du terminal ? Y a-t-il eu de tels changements ?

 
Alexey Viktorov:

Je ne comprends pas. Vous voulez dire que cela ne dépend pas des paramètres du terminal? Y a-t-il eu de tels changements ?

Non, mais peut-être que nous parlons de choses différentes.

static __TotalHist = -1;
int HT=OrdersHistoryTotal();
  if(HT!=__TotalHist)
   {
     SetHistory();
     __TotalHist=OrdersHistoryTotal(); // запомним количество
   }

Cela fonctionnera toujours.

Cela peut ne pas fonctionner dans un cas sur 100 500.

static __Total = -1;
int OT=OrdersTotal();
  if(OT!=__Total)
   {
     SetMarket();
     __Total=OrdersTotal(); // запомним количество
   }
 
Artyom Trishkin:
Une somme de hachage des propriétés des ordres et des positions. Le symbole est codé dans la somme des codes de caractères qui composent son nom. Mais alors seulement une boucle complète. Quand la somme de hachage change - voyez ce qui s'est passé.

donner un exemple en code - c'est une fonctionnalité nécessaire

 
Alexey Viktorov:

IMHO, ce n'est pas la meilleure façon de construire un algorithme sur une recherche de l'histoire.

Je n'ai même pas pensé à toucher à OrderHistoryTotal(), pourquoi ?

 
Igor Makanu:

donner un exemple en code - c'est une fonctionnalité nécessaire

Décrit dans mes articles. C'est presque au tout début. Et pour MQL4 - dans les articles sur la compatibilité avec 4.
Il est difficile de donner un lien à partir d'un téléphone portable. Mais si vous ouvrez l'un des plus récents, il y a une liste de tous les articles à la toute fin.
Raison: