Erreurs, bugs, questions - page 3036

 
Nikolai Semko:
Anton, il manque vraiment une fonction séparée pour obtenir tous les M1(seulement M1) sans tenir compte du paramètre MAX_BARS sans mettre en cache et sauvegarder les données sur le disque. Cela donnerait au programmeur de nouvelles possibilités pour former sa propre structure de données historiques.
Tous les ticks sont accessibles, mais M1 ne l'est pas si MAX_BARS != Illimité. La question ne se poserait pas si tous les tics couvraient toute l'histoire de M1, mais ce n'est pas le cas.

il reste à savoir combien d'utilisateurs ou de programmeurs l'utiliseront ? - Activez les propriétés du graphique illimité dans les paramètres du terminal et utilisez les options suivantes

jusqu'à présent, cela ressemble à "le développeur vient et allume le paramètre Illimité pour moi si tu ne fais pas de nouveaux plus".

 
Igor Makanu:

la seule chose qui reste à savoir est combien d'utilisateurs ou de programmeurs l'utiliseront ? - Activez les propriétés du graphique illimité dans les paramètres du terminal et utilisez les options suivantes

jusqu'à présent, ça ressemble à "le développeur vient et active le paramètre Illimité pour moi si vous ne faites pas de nouvelles peluches".

L'illimité est une option très coûteuse pour l'ensemble du terminal. Immédiatement, l'espace disque et la consommation de trafic augmentent de façon gigantesque. Mais si jen' ai besoin d'Illimité que pour un seul outil et une seule fois ?
Après tout, mes fichiers de stockage de données historiques prennent 5 fois moins d'espace disque que les fichiers normaux, et en même temps ils sont plus informatifs, parce qu'ils contiennent le temps pour le haut et pour le bas et tous les TFs déjà calculés et vous n'avez pas besoin de les calculer chaque fois à la volée.

Je
vousassure, Igor, que si je publie une telle bibliothèque dans BE, de nombreux programmeurs commenceront à l'utiliser ou à créer quelque chose de similaire en voyant son efficacité.
Et s'il s'agit également d'un produit sur le marché ?
Dois-je demander à tout le monde d'activer cetillimité, sachant qu'en le faisant, je leur imposerai un trafic et un espace disque très importants ?

Je pense que ma demande est parfaitement adéquate, et qu'elle ne nécessite pas beaucoup de ressources pour être mise en œuvre, puisque tout existe déjà tel quel. C'est une affaire de 10-15 minutes.
Après tout, lorsque max_bars = 1000 et que vous demandez 1000 barres W1, tout l'historique M1 est chargé de toute façon, et W1 est déjà calculé à partir de celui-ci, seul M1 n'est pas enregistré dans le fichier.

 
Nikolai Semko:

Parce que lorsque max_bars = 1000 et que vous demandez 1000 barres W1, tout l'historique M1 est toujours chargé et W1 est déjà calculé à partir de celui-ci, seul M1 n'est pas enregistré dans le fichier.

Comment c'est ? Chargé, mais pas sauvegardé ?

 
Andrey Khatimlianskii:

Comment ça ? Chargé, mais pas sauvegardé ?

Seule M1 est téléchargée du serveur, et toutes les autres TF sont générées à partir d'elle.
Pas plus de max_barres de ces TF qui ont été demandées par programme ou par l'utilisateur par le biais de la sélection de TF sont enregistrées sur le disque.
1000 bars W1 représente environ vingt ans de données, c'est-à-dire que presque tout l'historique de M1 sera téléchargé.
Vous pouvez Andrei vérifier mes propos. Ouvrez un nouveau symbole dans l'aperçu du marché, ouvrez sa fenêtre et activez immédiatement le TF mensuel. Et vous verrez à quelle vitesse les données sont téléchargées.
Mais vous verrez un petit fichier dans ...MetaQuotes\Terminal\...\Nbases\...\Nhistoire\...\Ncache\M1.hc.
Et le plus drôle, c'est que les fichiers hcc seront générés au fil des ans et pèseront déjà jusqu'à un demi-gigaoctet. Le format hcc signifie qu'ils sont déjà téléchargés par M1, mais non disponibles pour le programmeur.
Donc vous n'aurez pas à les télécharger non plus.
Et à en juger par la taille de la structure MqlRates = 60 octets, les fichiers hcc ne sont pas du tout emballés. C'est du gaspillage !

HZ a fait une expérience plus attentivement et a découvert que lorsqu'on demande des données de n'importe quelle période, les données déballées de ces périodes sont sauvegardées dans des fichiers hcc (barres de minutes) et les données sont déballées de la RAM dans le catalogue Cache seulement à l'arrêt du terminal.
C'est-à-dire que les délais sont formés et calculés en mémoire et sauvegardés dans le fichier cache à l'arrêt du terminal. C'est en fait logique. Il n'est qu'illogique de conserver les fichiers hcc sous forme non compressée et de ne pas en donner l'accès aux programmeurs.

 
Nikolai Semko:

si vous devez attendre, attendez, à condition que les développeurs y voient un sens.... soyez juste prêt à attendre pour, eh bien... J'ai posé une question sur la surcharge des opérateurs, l'administrateur a dit que c'était une fonctionnalité inutile, puis je n'ai pas eu affaire à MQL pendant 5 ans et maintenant tout est là ! ))))

 
Igor Makanu:

si vous devez attendre, attendez, à condition que les développeurs y voient un sens.... soyez juste prêt à attendre pour, eh bien... J'ai posé une question sur la surcharge des opérateurs, l'administrateur a dit que c'était une fonctionnalité inutile, puis je n'ai pas eu affaire à MQL pendant 5 ans et maintenant tout est là ! ))))

Oui, c'est un triste spectacle. Je suis d'accord.
La raison, comme je l'ai déjà dit, est la gestion manuelle de l'entreprise.

 
Anton:

Ce service est fourni par le terminal.

Oui, c'est vrai.

Nikolai Semko:
Anton, ce qui manque le plus est une fonction séparée pour obtenir tous les M1 (seulement M1) sans tenir compte du paramètre MAX_BARS sans mettre en cache et sauvegarder les données sur le disque. Cela donnerait au programmeur de nouvelles possibilités pour former sa proprestructure de données historiques.
Tous les ticks sont accessibles, mais M1 ne l'est pas si MAX_BARS != Illimité. La question ne se poserait pas si tous les tics couvraient toute l'histoire de M1, mais ce n'est pas le cas.

i.e. à partir de ce qui précède, la demande peut même être simplifiée :
Obtenir un accès programmatique aux barres M1 déjà existantes situées (téléchargées) dans les fichiers hcc. Vous pouvez le faire avec une commande distincte ou avec des commandes déjà existantes.
Si j'ai besoin de barres minutes au-delà de max_bars, il me suffit de lancer le téléchargement des barres MN ou W1, et après cela je serai sûr ? que les fichiers hcc nécessaires ont déjà été générés.

 
Par exemple, voulez-vous que la capacité inhérente permette de contourner la restriction inhérente ? )
 
Andrei Trukhanovich:
Donc vous voulez une capacité inhérente pour contourner une limitation inhérente ? )
Ce n'est pas une limitation.
Il est inutile de la restreindre.
La sécurité n'est pas affectée. Elle n'affecte pas non plus les ressources de quelque nature que ce soit ; au contraire, elle offre la possibilité d'économiser des ressources pour les programmeurs.
Il s'agit d'un simple illogisme, que je me propose de corriger.
Vous avez les données, mais vous ne pouvez pas y accéder.

 
Nikolai Semko:
Les données existent, mais on ne peut y accéder

Augmenter MAX_BARS et l'utiliser à votre guise