Toile et étiquettes - page 17

 
Mihail Matkovskij:

Au sujet du g-code, je peux trouver votre g-code en argumentant chaque mot que je dis ! Pas comme vous, qui portez des accusations...Vous avez trouvé ?

Je ne suis pas un programmeur. Je suis autodidacte. Vous pouvez prendre n'importe lequel de mes codes et l'appeler comme vous voulez, mais peu importe comment vous le regardez, mes codes sont loin d'être les g...

 
Artyom Trishkin:
Un sujet d'intérêt a été mis à la poubelle... Quel genre de personnes...

Le sujet aurait pu être intéressant. Mais hélas, ce ne sera jamais le cas.

 
Alexey Viktorov:

Je ne suis pas un programmeur. Je suis autodidacte. Vous pouvez prendre n'importe lequel de mes codes et l'appeler comme vous voulez, mais peu importe comment vous le regardez, mes codes sont loin d'être les plus g...

Mais les codes des autres membres de la communauté, pour vous, sont... Eh bien, vous êtes manifestement autodidacte. Vous n'avez donc pas besoin de règles non écrites indiquant que vous ne pouvez pas dénigrer vos collègues.

Maintenant pour les questions de codehttps://www.mql5.com/ru/code/24076. Bien sûr, je ne serai pas comme vous et ne dirai pas que c'est un code de merde... Mais je vais tout de même faire mes remarques.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

Pourquoi n'y a-t-il pas de limitation de la fréquence de mise à jour de BitmapLabel, si cela fonctionne dans le testeur, sur le modèle "all ticks" ? Espérez-vous qu'un fer à repasser moderne puisse tout digérer ?) Où est l'optimisation ? Et c'est vous qui me l'avez suggéré, alors que je cherchais un moyen de sortir du texte à partir de processus très chargés (sortie dans le testeur, sur le modèle "all ticks " , et sur le graphique en boucle) ?

Et quand j'ai dit que ça ne marchait pas pour moi chaque tic...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

Pourquoi ne pas utiliser CCanvas, qui est spécialement conçu à cet effet ? C'est vrai, j'ai regardé, vous avez écrit quelque part qu'il appelle soi-disant des fonctions inutiles, etc. Vous n'avez donc pas fait la limitation de la fréquence de mise à jour pour le testeur, mais en même temps, les fonctions de CCanvas vous ont en quelque sorte gêné... :)

C'est étrange...


Et maintenant c'est à votre tour de me dire exactement pourquoi vous pensez que mon code est du "g-code". Seulement, avec des arguments, pas des bavardages inutiles !

 
Artyom Trishkin:
Vous encombrez un sujet intéressant... Quel genre de personnes...

Je n'ai fait qu'accepter une offre de participation au test, ce qui m'a amené à devoir poser quelques questions à l'invité...

 
Mihail Matkovskij:

...

Pourquoi n'y a-t-il pas de limite à la fréquence de mise à jour du BitmapLabel s'il doit fonctionner dans un testeur, sur un modèle "tout ticks" ? Vous espérez que le fer moderne va tout digérer ?) Où est l'optimisation ? Et c'est ce que vous m'avez suggéré, lorsque je cherchais un moyen de sortir du texte à partir de processus très chargés (sortie dans le testeur, sur le modèle de tous les ticks, et sur le graphique en boucle) ?

...

Et pourquoi, parce que vous affirmez vous-même qu'une étiquette bitmap est plus rapide qu'une étiquette normale. Et une seule étiquette régulière dans ce cas serait presque invisible en termes de performance.

 
Dmitry Fedoseev:

Je n'ai fait qu'accepter une offre de participation à un test, ce qui m'a amené à devoir poser quelques questions à l'invité...

"Le chapeau d'un voleur est en feu" ?... Tout le monde peut télécharger le code source et répéter les mesures que j'ai présentées ci-dessus ! Vous n'avez que des plaintes et des griefs. Inventé, "liens brisés" et autres...
Dmitry Fedoseev:

Pourquoi, parce que vous affirmez vous-même que l'étiquette bitmap est plus rapide que l'étiquette normale.

Je n'ai pas dit ça. Et je parlais de la sortie d'informations sur plus d'une ligne. C'est pourquoi j'ai fait un affichage pour sortir un grand nombre de lignes pour le mesurer.

La sortie vers les étiquettes optimise le graphique. Alors que dans BitmapLabel vous devez passer un tableau de pixels, en le pré-remplissant. Dans ce cas, il remplit le tableau de pixels et lui envoie du texte. Toutes ces opérations, si elles sont appelées trop souvent, mettent l'application à rude épreuve. Alors que pour le label, il suffit de passer une chaîne de caractères. Cela a déjà été mentionné ci-dessus.

Vous pouvez en savoir plus sur la vitesse en comparant les mesures de vitesse de CCanvas et de l'étiquette dans différents modes: https://www.mql5.com/ru/forum/364640/page13#comment_21314045.

 
Mihail Matkovskij:

Mais les codes des autres membres de la communauté pour vous g... Eh bien, vous êtes manifestement autodidacte. C'est pourquoi vous n'avez pas besoin de règles non écrites qui vous interdisent de dénigrer vos collègues.

Et maintenant, les questions sur le code. Je ne serai pas comme vous et ne dirai pas que c'est un code de merde... Mais je vais tout de même faire mes propres commentaires.

Pourquoi n'y a-t-il pas de limitation de la fréquence de mise à jour de BitmapLabel, si cela fonctionne dans le testeur, sur le modèle "all ticks" ? Espérez-vous qu'un fer à repasser moderne puisse tout digérer ?) Où est l'optimisation ? Et c'est vous qui me l'avez suggéré, alors que je cherchais un moyen de sortir du texte à partir de processus très chargés (sortie dans le testeur, sur le modèle "all ticks " , et sur le graphique en boucle) ?

Et quand j'ai dit que ça ne marchait pas pour moi, vous avez commencé à me faire part de vos doléances... Apparemment, je n'ai rien compris et j'ai dû appeler TextOut - ResourseCreate - ChartRedraw impitoyablement . C'est vrai,ChartRedraw est commenté pour une raison quelconque...


Pourquoi ne pas utiliser CCanvas, spécialement conçu à cet effet ? C'est vrai, je vois que vous avez écrit quelque part qu'il appelle soi-disant des fonctions inutiles, etc. Vous n'avez donc pas limité la fréquence des mises à jour pour le testeur, mais en même temps, les fonctions de CCanvas vous ont en quelque sorte gêné... :)

C'est étrange...


Et maintenant c'est à votre tour de me dire exactement pourquoi vous pensez que mon code est un "g-code". Seulement, avec des arguments, pas des bavardages inutiles !

  1. Sur quelle planète vivez-vous ? Où avez-vous trouvé ces règles ? Dans n'importe quelle station-service, on vous dira qui a réparé votre voiture la dernière fois. Même si c'était celui à qui vous parlez maintenant. Et il ne s'agit pas seulement de voitures. C'est juste l'exemple le plus évident.
  2. Je vous ai proposé ce code à titre d'exemple, pas pour le copier aveuglément.
  3. Tous les contrôles et délais surchargent le code et il est plus difficile d'utiliser un tel code comme exemple.
  4. De quel type d'optimisation parlons-nous si l'EA n'est pas un EA de trading ? Quels paramètres doivent y être optimisés ?
  5. Après que vous ayez refusé ma proposition, Nikolay a commencé à vous expliquer toutes les subtilités. J'ai juste conseillé de regarder son sujet sur Canvas. Vous avez menti en disant que vous aviez tout lu. Comment voulez-vous qu'ils traitent les menteurs (c'est un euphémisme) ?

Laissez les mouches et les bousiers fouiller dans votre code. J'ai suffisamment d'autres choses intéressantes et utiles à faire.

 
Mihail Matkovskij:
"Le chapeau d'un voleur est en feu" ?... Tout le monde peut télécharger le code source et répéter les mesures que j'ai présentées ci-dessus ! Vous, par contre, vous n'avez que des plaintes et des griefs. Inventé, "liens brisés" et autres...

Je n'ai pas dit ça. Et je parlais de la sortie d'informations sur plus d'une ligne. C'est pourquoi, pour la mesure, j'ai fait un affichage pour sortir un grand nombre de lignes.

La sortie vers les étiquettes optimise le graphique. Alors que dans BitmapLabel vous devez passer un tableau de pixels, en le pré-remplissant. Dans ce cas, il remplit le tableau de pixels et lui envoie du texte. Toutes ces opérations, si elles sont appelées trop souvent, mettent l'application à rude épreuve. Alors que pour le label, il suffit de passer une chaîne de caractères. Cela a déjà été mentionné ci-dessus.

Vous pouvez en savoir plus sur la vitesse en comparant les mesures de vitesse de CCanvas et de l'étiquette dans différents modes: https://www.mql5.com/ru/forum/364640/page13#comment_21314045.

Eh bien, en général, une impudence et un sans-gêne non dissimulés.

 
Il y a une citation avec des liens dans ce commentaire. Ces liens vous permettent toujours de télécharger un fichier avec une classe qui n'a pas de champ limitFps, mais il est référencé. Dites-moi aussi que j'ai "dessiné" moi-même de tels liens.
 
Alexey Viktorov:
  1. Sur quelle planète vivez-vous ? Où avez-vous trouvé ces règles ? Allez dans n'importe quel service automobile et vous entendrez parler de la personne qui a réparé votre voiture la dernière fois. Même si c'était celui à qui vous parlez maintenant. Et il ne s'agit pas seulement de voitures. C'est juste l'exemple le plus évident.

De toute évidence, nous sommes sur des planètes différentes si vous suivez ce paradigme... !

L'atelier automobile me donne un exemple... :) Au moins, vous vous êtes remonté le moral ce matin. :)

Alexey Viktorov:

Je vous ai proposé ce code à titre d'exemple...

Alors je demande à nouveau, quelle est la différence entre Kanvas et moi ? Cela fonctionne de la même manière. Seules les fonctions dont vous avez besoin ne sont pas éliminées, comme dans votre exemple. La seule différence est qu'il s'agit de POO, un niveau totalement différent, pas de votre programmation procédurale. :)

Alexey Viktorov:

Tous les contrôles et les délais surchargent le code et un tel code est plus difficile à utiliser comme exemple.

Bien sûr, bien sûr... Écraser... Vous n'êtes pas très bon en code non plus ! On vous répondra probablement par une excuse : "Eh bien, je ne suis pas un programmeur...". :) Vous essayez juste d'enseigner aux autres. :)

Alexey Viktorov:

De quel type d'optimisation parlons-nous si le conseiller expert n'est pas un conseiller commercial ? Quels paramètres dois-je y optimiser ?

Je suis confus en termes de termes :) Je parlais de l'optimisation de la fréquence de mise à jour de l'étiquette bitmap. Ce que vous n'avez pas fait et m'avez offert votre exemple à utiliser dans des processus à forte charge.

Alexey Viktorov:
  1. Après le rejet de mon offre, Nikolaï a commencé à vous expliquer toutes les subtilités. Je viens de te conseiller de regarder son sujet sur kanvas. Vous avez menti en disant que vous aviez tout lu. Comment voulez-vous traiter les menteurs (c'est un euphémisme) ?

Dans ce cas, le menteur, c'est vous ! Parce que je n'ai pas dit ça. Tout ce que j'ai dit, c'est pourquoi j'ai besoin d'une autre bibliothèque basée sur Canvas. En fait, un autre Kanvas. Vous m'avez proposé le même canevas et il fonctionne exactement de la même manière. Nikolay n'avait aucune envie de m'expliquer ce qu'il fallait faire pour que Kanvas fonctionne rapidement dans ma tâche. Et vous n'avez manifestement pas les connaissances appropriées. Vous avez dit à Nikolaï "ne perdez pas votre temps avec lui". Il a répondu "Je suis d'accord". C'est votre explication et celle de Nikolaï. Les programmeurs...

Alexey Viktorov:

Laissez les mouches et les bousiers fouiller dans votre code. J'ai suffisamment d'autres choses intéressantes et utiles à faire.

Je ne dirai pas que la vôtre est vraie... Mais je suis d'accord avec toi sur un point. Vous n'êtes pas obligé de le faire. Pourquoi aurais-je besoin des conclusions d'un amateur... ? Mieux vaut aller dans un atelier de réparation automobile...

C'est tout. Je ne vous donnerai pas de réponses plus détaillées. Parce que c'est une perte de temps. Je préfère faire quelque chose d'utile !

Raison: