Erreurs, bugs, questions - page 1231

 
meat:

Et franchement, vos arguments sont étranges. Ceux qui ne savent pas comment l'utiliser, ne l'utilisent pas. Avez-vous vu beaucoup de codes à la con où FileFlush est utilisé ? Je n'en ai pas vu.

Presque tout le monde l'a utilisé de manière incorrecte, et ensuite ils ont des "retards Metatrader". Cette fonction WinAPI est extrêmement lente.

Lorsque nous sommes passés à 600 builds, nous avons complètement réécrit l'ensemble du fonctionnement du fichier et l'avons accéléré des dizaines de fois sur les modes de fonctionnement habituels à petite échelle.


Et le faitde rouvrir le fichier rend le code plus difficile.

Mais cela vous fait immédiatement réfléchir aux conséquences, ne mettez pas FileFlush à chaque tick et ne soyez pas surpris des résultats dans le testeur de stratégies de trading.

 
Renat:

Presque tout le monde l'a mal utilisé, et puis il y a les "freins Metatrader".

Tu exagères. Peut-être qu'il y avait de mauvais codeurs, mais ne généralise pas. D'après tes mots, il semble que tout le monde ici soit des imbéciles et des idiots.

Mais cela vous fait immédiatement penser aux conséquences...

Renat, vous ne pouvez pas être sérieux, pour l'amour de Dieu ! Vous donnez l'impression de donner des devoirs aux étudiants, comme s'ils pouvaient souffrir, mais qu'ils apprendraient à penser, etc. ("Dur dans l'étude - facile dans la bataille"). Positionnez-vous MQL comme un manuel de formation pour les nuls ou comme un outil de travail pour les programmeurs ? Si c'est le second, alors pourquoi mettez-vous des bâtons artificiels dans la roue ?

Si quelqu'un ne sait pas ou n'est pas capable de faire quelque chose, c'est son problème personnel, qu'il apprenne. Pourquoi devrait-il réduire la fonctionnalité pour tous les autres ?

 
meat:

Tu exagères. Peut-être qu'il y avait de mauvais codeurs, mais ne généralise pas. D'après tes mots, il semble que tout le monde ici soit des imbéciles et des idiots.

Renat, vous ne pouvez pas être sérieux, pour l'amour de Dieu ! Vous donnez l'impression de donner des devoirs aux étudiants, de les laisser souffrir, mais ils apprendront à penser, etc. ("Dur dans l'étude - facile dans la bataille"). Positionnez-vous MQL comme un manuel de formation pour les nuls ou comme un outil de travail pour les programmeurs ? Si c'est le second, alors pourquoi mettez-vous des bâtons artificiels dans la roue ?

Si quelqu'un ne sait pas ou n'est pas capable de faire quelque chose - c'est son problème personnel, qu'il apprenne. Pourquoi devraient-ils couper la fonctionnalité pour tous les autres ?

Regardez nos forums et kodobase, s'il vous plaît.

Nous ne sommes pas dans une école. Nous sommes dans un endroit bien pire où vous avez beaucoup de mauvais code et où MetaQuotes est toujours blâmé a priori. Si vous le faites de cette façon, c'est votre faute, et si vous le faites dans l'autre sens, c'est toujours votre faute.

La décision de mettre en échec FileFlush vient du fait que l'on a compris que le désactiver était un moindre mal que de voir les commerçants ralentir et se plaindre. Nous ne nous sommes pas contentés de le désactiver, nous avons complètement réécrit l'ensemble du fonctionnement du fichier de sorte qu'il s'agit désormais d'un moteur extrêmement efficace et rapide qui atténue les bogues et les pratiques inefficaces des développeurs. Nous avons réfléchi très sérieusement.


Pour information, je n'exagère pas, car cela fait plus de 13 ans que j'anime personnellement des discussions publiques dans nos forums :


 
crOss:
Prenez n'importe quel conseiller expert (parmi les exemples de MetaQuotes), exécutez-le sous le build 975 sur une certaine période et avec les mêmes paramètres,
Obtenez les résultats, c'est-à-dire le graphique de la courbe de rendement et le tableau des transactions.


Maintenant, exécutez le même Expert Advisor sous 1010 build sur la même période et avec les mêmes paramètres, vous obtiendrez des résultats complètement différents...

P.S. Metatester est en 32 bits.

Que montre l'analyse des transactions dans le testeur de la version 975 et de la version 1010 ?

Trouvez le point de divergence pour commencer. Comparez la valeur des swaps. Regardez les volumes des transactions

 
Comme je n'ai pas eu de nouvelles du Service Desk depuis une semaine, je vais soulever le problème ici(MT4 745 build) :
1. J'ai un indicateur avec ce code :
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(10);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
{
   return 0;
}
//+------------------------------------------------------------------+

void OnTimer()
{
   ChartSetSymbolPeriod(0, _Symbol, 1);
}
2. J'ai un Conseiller Expert avec ce code :
#include <ChartObjects\ChartObjectsTxtControls.mqh>     


CChartObjectButton *p_button1 = NULL;                              
int OnInit()
{
   p_button1 = new CChartObjectButton; 
   p_button1.Create(0, "ddd", 0, 10, 20, 30, 40); // create button
 
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
   if (p_button1 != NULL)
   {
      p_button1.Delete();
      delete p_button1;
   }
}
void OnTick(void)
{
}

3. Attachez d'abord l'indicateur, puis le conseiller expert
4. Nous volons le graphique et attendons qu'il se bloque lorsque nous utilisonsChartSetSymbolPeriod
5. Tout fonctionne avec le changement manuel de TF etavec le changement manuel des paires de devises. Mais cela ne fonctionne pas avec les logiciels (soit la pile sur la sortie de la courbe, soit une fuite ....).


J'ai réussi à résoudre le problème de la commutation TF - l'API s'avère une fois de plus plus plus fiable
Mais comment commuter une paire de devises avec l'API ?

 
ALXIMIKS:
Comme il n'y a pas de retour du Service Desk depuis une semaine, je soulève le problème ici(MT4 745 build) :
1. Il existe un indicateur avec ce code :
2. Il y a un Expert Advisor avec ce code :

3. Attacher l'indicateur d'abord , l'expert ensuite
4. Nous volons le graphique et attendons qu'il se bloque lorsque nous utilisonsChartSetSymbolPeriod.
5. Tout fonctionne avec le changement manuel de TF etavec le changement manuel de paires de devises. Mais cela ne fonctionne pas avec les logiciels (soit la pile sur la sortie de la courbe, soit une fuite ....).


J'ai réussi à résoudre le problème en changeant de TF - l'API s'avère une fois de plus plus plus fiable.
Mais comment changer la paire de devises pour la paire requise avec l'API ?

Votre candidature n'est pas perdue.

Nous ne manquerons pas de vous répondre.

 
Quelqu'un peut-il clarifier : j'ai vu mon rang (profil) baisser ces derniers jours. S'agit-il d'une nouvelle fonctionnalité, d'une modification de l'algorithme du site ou d'un autre élément ?
 
Renat:

Regardez sur nos forums et sur le kodobaza, s'il vous plaît.

Nous ne sommes pas dans une école. Nous sommes dans un endroit bien pire, où il y a beaucoup de mauvais code et où MetaQuotes est toujours a priori à blâmer pour tout. Si vous le faites de cette façon, c'est votre faute ; si vous le faites dans l'autre sens, c'est toujours votre faute.

N'avez-vous jamais pensé que vous étiez peut-être vous-même responsable de la diffusion de cette histoire ? Il s'avère donc que vous vous en voulez a priori.Certains nouveaux venus se tournent vers vous en se plaignant que quelque chose ne fonctionne pas chez vous, et au lieu de leur expliquer poliment ou de les envoyer étudier les faits, vous pliez sous leurs pieds et refaites votre produit pour satisfaire leur ignorance. C'est comme ça que ça marche, non ? Au final, la qualité du produit en pâtit, et ces gens n'apprennent rien.

Je comprendrais si nous parlions d'une plate-forme de négociation. Mais nous parlons d'un langage de programmation où la flexibilité est importante. Et vous enlevez cette flexibilité. Vous êtes vous-même un programmeur et vous comprenez probablement qu'il n'y a pas de solutions universelles. Votre mécanisme supposé efficace ne convient que pour certains cas particuliers et est absolument inutile dans d'autres cas.L'un a besoin de vider des données sur le disque toutes les 10 secondes, l'autre - tous les 10 Mo, le troisième - à chaque tic-tac (oui, oui, un tel besoin existe, si l'information est très importante). Et encore une fois, si une personne utilise quelque chose de manière incorrecte - c'est son problème personnel, il n'est pas nécessaire de céder à son ignorance et de s'y plier.

Je n'ai pas commencé tout ça pour rien. J'avais un code où FileFlush vidait périodiquement les informations sur le disque. Et j'ai remarqué dernièrement que rien n'est vidé, bien que la quantité de données que je sauvegarde soit de 30-40 Mb. Enfin, lorsque le terminal se plante (ce qui n'est pas rare), tout est perdu. Et vous n'avez même pas pris la peine de nous en avertir. Cela sape complètement la confiance en MQL, si n'importe quelle fonction peut cesser de fonctionner à tout moment.

 
meat:

Avez-vous pensé au fait que c'est peut-être vous qui avez contribué à la diffusion de cette histoire ? Il s'avère donc que vous vous considérez a priori comme fautif.Certains nouveaux venus se tournent vers vous en se plaignant que quelque chose ne fonctionne pas chez vous, et au lieu de leur expliquer poliment ou de les envoyer étudier les faits, vous pliez sous leurs pieds et refaites votre produit pour satisfaire leur ignorance. C'est comme ça que ça marche, non ? Au final, la qualité du produit en pâtit, et ces gens n'apprennent rien.

Nous pensons constamment et assez profondément. Par conséquent, nous prenons de telles décisions pour que chacun ait moins d'erreurs.


Je comprendrais si nous parlions d'une plate-forme de négociation. Mais nous parlons d'un langage de programmation où la flexibilité est importante. Et vous enlevez cette flexibilité. Vous êtes vous-même un programmeur et vous comprenez probablement qu'il n'y a pas de solutions universelles. Votre mécanisme supposé efficace ne convient que pour certains cas particuliers et est absolument inutile dans d'autres cas.L'un a besoin de vider des données sur le disque toutes les 10 secondes, l'autre - tous les 10 Mo, le troisième - à chaque tic-tac (oui, oui, un tel besoin existe, si l'information est très importante). Et encore une fois, si une personne utilise quelque chose de manière incorrecte - c'est son problème personnel, il n'est pas nécessaire de céder à son ignorance et de s'y plier.

Laissez-vous répondre pour nous afin que "ce sont vos problèmes personnels" sur nos forums. Voyons combien d'heures vous pouvez endurer avant qu'on vous dise comment faire des affaires et pourquoi vous avez tort.


Je n'ai pas commencé tout ça pour rien. J'avais un code, où FileFlush vidait périodiquement des informations sur le disque. Et dernièrement, j'ai remarqué que rien n'est vidé, bien que la quantité de données collectées soit de 30-40 Mb. En conséquence, lorsque le terminal se plante (et ce n'est pas un événement rare), tout est perdu. Et vous n'avez même pas pris la peine de nous avertir à ce sujet. Cela sape complètement la confiance dans MQL, si n'importe quelle fonction peut cesser de fonctionner à tout moment.

J'ai souligné plus haut que notre priorité est de travailler efficacement et de maximiser les performances de notre seule plateforme, et non de travailler à côté. Cela s'applique principalement à toutes les opérations sur les fichiers : journaux, bases de données et fichiers experts.

Si vous tenez tant à travailler à l'extérieur avec des fichiers ouverts(et c'est en soi un grave problème), alors agissez.

Pas besoin de frapper le mur - cette décision est consciente et ne sera pas modifiée.

 
Renat:

Pas besoin de frapper le mur - cette décision est délibérée et ne sera pas modifiée.

Pourquoi ne pas mettre la documentation en conformité avec les modifications de l'API après tout ? C'est la question numéro un.

Deuxième question : avez-vous pensé d'une manière ou d'une autre à la compatibilité de votre "plate-forme" avec le code source existant, où la fonction fonctionnait différemment et où ces programmes ont soudainement échoué ? Si vous n'avez pas l'intention de modifier quoi que ce soit dans la logique, peut-être pourriez-vous au moins ajouter un avertissement au compilateur (similaire à l'avertissement concernant la modification de la priorité des opérations logiques) ?