Erreurs, bugs, questions - page 1755

 

Les commandes sont passées plus vite que le ping.

 
J'ai rencontré des situations où
HistorySelect(0, TimeCurrent())

Crée une table d'historique incomplète. Je n'ai rencontré ce problème que lors du premier appel après avoir accédé au compte. Les suivantes, l'histoire entière est donnée.

Je ne peux pas le reproduire. Maintenant ça marche, maintenant ça ne marche pas. L'addition, s'il vous plaît.

 
fxsaber:

Les commandes sont passées plus vite que le ping.

Les pings sont rarement recalculés.
 
fxsaber:
Face à des situations où
HistorySelect(0, TimeCurrent())

Crée une table d'historique incomplète. Je n'ai rencontré ce problème que lors du premier appel après avoir accédé au compte. Les suivantes, l'histoire entière est donnée.

Je ne peux pas le reproduire. Maintenant ça marche, maintenant ça ne marche pas. L'addition, s'il vous plaît.

Ne faites jamais de TimeCurrent() une date de fin, faites plutôt TimeCurrent() +86400 pour vous assurer de capturer toutes les transactions finales.

TimeCurrent n'est pas la dernière heure exacte, mais la "dernière heure connue du serveur pendant les mises à jour", qui n'est pas exacte à 100%. Surtout au début.

 
Renat Fatkhullin:

Ne faites jamais TimeCurrent() comme date de fin, faites TimeCurrent()+86400 pour vous assurer que toutes les transactions de fin sont capturées.

TimeCurrent n'est pas la dernière heure exacte, mais la "dernière heure connue du serveur pendant les mises à jour", qui n'est pas exacte à 100%. Surtout au début.

Merci, c'est ce que je vais faire. Mais ce n'est certainement pas à propos de l'insecte.

Je me suis connecté aux comptes où les transactions ont été effectuées il y a très longtemps. Il y a si longtemps, que l'onglet Historique est vide (je dois faire une demande pour l'historique complet avec ma souris).

Et ici, avec eux, HistorySelect renvoie parfois zéro, parfois la valeur est inférieure d'une unité à celle des exécutions suivantes. Dans l'ensemble, il y a vraiment un problème.

 
Renat Fatkhullin:

Ne faites jamais TimeCurrent() comme date de fin, faites TimeCurrent()+86400 pour vous assurer que toutes les transactions de fin sont capturées.

TimeCurrent n'est pas la dernière heure exacte, mais la "dernière heure connue du serveur pendant les mises à jour", qui n'est pas exacte à 100%. Surtout au début.

Le +60 n'est pas suffisant ?
 

J'ai regardé dans SB et il n'y a PAS de HistorySelect et HistoryOrderGetTicket! Pas du tout !

Comment cela va-t-il fonctionner ?

//+------------------------------------------------------------------+
//| Select a deal on the index                                       |
//+------------------------------------------------------------------+
bool CDealInfo::SelectByIndex(const int index)
  {
   ulong ticket=HistoryDealGetTicket(index);
   if(ticket==0)
      return(false);
   Ticket(ticket);
//---
   return(true);
  }
//+------------------------------------------------------------------+

Je suis de plus en plus convaincu que le SB présente de nombreuses limites (il n'existe pas non plus de mise en œuvre partielle).

Pourquoi n'a-t-il pas été possible d'utiliser le grand système de langage MQL4-order pour SB dès le début ?

 
fxsaber:

J'ai regardé dans SB et il n'y a PAS de HistorySelect et HistoryOrderGetTicket ! Pas du tout !

Comment cela va-t-il fonctionner ?

//+------------------------------------------------------------------+
//| Select a deal on the index                                       |
//+------------------------------------------------------------------+
bool CDealInfo::SelectByIndex(const int index)
  {
   ulong ticket=HistoryDealGetTicket(index);
   if(ticket==0)
      return(false);
   Ticket(ticket);
//---
   return(true);
  }
//+------------------------------------------------------------------+

Je suis de plus en plus convaincu qu'elle présente de nombreuses limites (il n'y a pas non plus d'implémentation partielle).

Pourquoi ne pas utiliser le merveilleux système de langage MQL4-order pour SB dès le début ?

L'ignorance ne vous dispense pas de votre responsabilité.

La classe CDealInfo est conçue pour faciliter l'accès aux propriétés des transactions. Mais pour accéder aux métiers, chacun demande toujours d'abord une trace de l'histoire via HistorySelect.

Vous feriez mieux d'examiner d'autres exemples et de lire des articles avant d'écrire des questions carrément ringardes et de tirer des conclusions.

 
Vladimir Karputov:

L'ignorance ne vous dispense pas de votre responsabilité.

La classe CDealInfo permet d'accéder facilement aux propriétés des transactions. Mais pour accéder aux transactions, chacun demande toujours d'abord un instantané de l'historique via HistorySelect.

Vous feriez mieux de regarder plus d'exemples et de lire des articles avant d'écrire des questions ouvertement nubiles et de sauter aux conclusions.

Je vous répondrais bien dans votre propre style, mais exprimer vos opinions sur un modérateur peut facilement vous faire bannir.

S'il y a des restrictions dans SB, vous pouvez et devez en parler.

 
fxsaber:

J'ai regardé dans SB et il n'y a PAS de HistorySelect et HistoryOrderGetTicket! Pas du tout !

Il y en a, je m'excuse. TotalCommander, avec l'abandon de l'encodage ASNI dans MT5, est devenu mauvais pour trouver les phrases dans les fichiers.