Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1311

 
MakarFX:

Question 1 : Je ne comprends pas la question(

Le programme pour obtenir le début de la période sélectionnée ou la période elle-même.

 
Andrey Sokolov:

pour obtenir le début de la période sélectionnée ou la période elle-même

Non, "OrdersHistoryTotal Renvoie le nombre d'ordres fermés et supprimés dans l'historique du compte actuel chargé dans le terminal du client."
 
Andrey Sokolov:

pour obtenir le début de la période sélectionnée ou la période elle-même

Il fut un temps où non seulement la période dépendait des paramètres de l'onglet "Historique", mais aussi l'ordre de tri. Le tri semble avoir été rendu immuable, mais la période semble être restée dépendante. Par exemple, si nous affichons l'historique du 01.12.2020 au 04.12.2020, alors OrdersHistoryTotal() ne retournera que le montant des commandes pour cette période. Et si mon cerveau n'est pas complètement sec, ça compte à l'heure de la fermeture. Il ne tient pas compte du temps ouvert. Supposons, par exemple, qu'un ordre ait été ouvert le 02.12.2020 et clôturé (ce qui n'est pas encore une très bonne date, mais quand même) le 05.12.2020, il n'entrera pas dans la période allant du 01.12.2020 au 04.12.2020.
 
Alexey Viktorov:
Et si mon cerveau n'est pas complètement sec, ça compte à l'heure de la fermeture.

Oui, seulement fermer ou supprimer

 
Alexey Viktorov. MakarFX merci d'avoir clarifié quelle date est comptée. Mais la question n'était pas exactement à ce sujet. Disons que la période du "mois dernier" est sélectionnée, comment pouvons-nous obtenir la date de début de cette période (sélectionnée), même s'il n'y a pas eu de transactions ce jour-là ?
 
Andrey Sokolov:
Alexey Viktorov. MakarFX merci d'avoir clarifié quelle date est comptée. Mais la question n'était pas exactement à ce sujet. Supposons que je choisisse la période "mois dernier", comment puis-je obtenir la date de début de cette période (sélectionnée), même si je n'ai pas effectué de transaction ce jour-là ?
Il n'y a pas moyen.
 
Andrey Sokolov:
Alexey Viktorov. MakarFX, merci d'avoir précisé quelle date est prise en compte. Mais ma question ne portait pas exactement sur ce point. Supposons que nous ayons sélectionné la période du "mois dernier", comment pouvons-nous obtenir la date de début de cette période (sélectionnée) de manière programmatique, même si nous n'avons pas négocié ce jour-là ?

Il n'y a pas de date de début de période, il y a un mandat avec la date la plus proche. C'est triste, pour être honnête, car s'il n'y a pas d'ordres dans l'histoire, il n'y a pas de dates d'époque. En fait, c'est tout.

 
Valeriy Yastremskiy:

Il n'y a pas de date de début de période, il y a un mandat avec la date la plus proche. C'est triste, pour être honnête, car s'il n'y a pas d'ordres dans l'histoire, il n'y a pas de dates d'époque. En fait, c'est tout.

ce paramètre n'est pas destiné à être utilisé au quotidien - configurez le terminal une fois et n'y touchez plus.

dans 99,9% des systèmes de trading, la période de 3 mois d'historique fonctionnera parfaitement, probablement à l'exception de TS, dans lequel des dizaines de milliers d'ordres par mois - la période d'un mois devrait être configurée ici.

SZZ : Je n'ai pas remarqué de perte de performance pendant une longue période d'historique (il est clair que tout peut être cassé)) ) - mais dans le cas d'une période d'un mois, il peut y avoir quelques surprises


Donc, si les développeurs de MetaTrader nous permettaient de "tourner" l'historique des ordres - mauvais !

)))

 
Igor Makanu:

cette configuration n'est pas prévue pour un "réglage quotidien" - configurez le terminal une fois et n'y touchez plus.

dans 99,9% des systèmes de trading, la période de 3 mois d'historique fonctionnera parfaitement, enfin, probablement à l'exception de TS, dans lequel plusieurs dizaines de milliers d'ordres par mois - ici, il est plus probable qu'une période d'un mois devrait être mise en place.

SZZ : Je n'ai pas remarqué de perte de performance pendant une longue période d'historique (il est clair que tout peut être cassé)) ) - mais dans le cas d'une période d'un mois, il peut y avoir quelques surprises


Donc, si les développeurs de MetaTrader nous permettaient de "tourner" l'historique des ordres - mauvais !

)))

Mon approche est plus pessimiste. Nous ne pouvons pas faire d'analyse sur des données par défaut comme l'histoire, car elles doivent exister et nous devons les trouver, et une analyse efficace nécessite sa propre collecte de données )))). L'historique est destiné à la gestion opérationnelle uniquement.

 

Vous pouvez essayer d'extraire la date du formulaire à l'aide de WinAPI. Et commandez une nouvelle période aussi.

Pour quatre, je ne sais pas comment c'est avec cinq.


J'ai trouvé ça, je l'ai fait il y a quelques années, comme ça :

#import "user32.dll"
   int GetForegroundWindow();
   int PostMessageA(int hWnd, int msg, int wParam, int lParam);
#import

//загружает всю историю закрытых ордеров
bool DownloadOrderHistory()
   {
   int eHandle=GetForegroundWindow();
   if(eHandle<=0) return(false);
   return(PostMessageA(eHandle,0x0111,0x8122,0)==1);
   }
GetForegroundWindow meilleur replace....