Erreurs, bugs, questions - page 1937

 
Alexey Viktorov:

Je n'ai aucune envie de communiquer de cette manière. Au lieu d'essayer de comprendre ce qui est dit, de comprendre ce qui va se passer, on lance des objections incroyables.

Pourquoi tu imagines des choses ? J'ai compris votre idée et confirmé qu'elle fonctionne, et elle aura un effet, si la demande n'est faite qu'une seule fois et si vous savez combien de barres sont nécessaires pour que l'EA fonctionne.

Ou peut-être avez-vous suggéré d'utiliser la structure d'une manière différente ? Dans ce cas, veuillez expliquer, mais ne soyez pas offensé !

 
Aleksey Vyazmikin:

Je suggère que, pour obtenir le droit de télécharger ME et de communiquer avec vous, vous fournissiez essentiellement un diplôme d'enseignement supérieur dans le domaine du "Programmeur" par le biais de la LC.

Heh... Un diplôme universitaire n'est une garantie de rien.

En gros, je peux vous proposer cette variante (je n'ai pas vérifié l'exactitude du code, seulement pour le testeur, le symbole actuel, la période actuelle) :

double iClose(int index)
  {
   double arr[ 1 ];
   return( ( CopyClose(_Symbol,_Period,index,1,arr) == 1 )? arr[ 0 ] : WRONG_VALUE );
  }

Vous pouvez faire le reste des fonctions par analogie.

 
Renat Fatkhullin:
Je suis désolé, mais je n'ai absolument pas le temps de m'occuper de l'enseignement de la programmation à chaque débutant. Surtout quand on voit que la personne n'a même pas passé par les bases de la compréhension de la programmation et qu'elle demande des choses futiles.


Mais je vais vous montrer la direction :

  1. Documentation MQL5
  2. Codebase
  3. Articles
  4. Forum (pas dans le mode "écrivez pour moi, pourquoi ne m'apprenez vous pas et ne faites pas mon travail ?)
  5. Freelance (ils peuvent l'écrire correctement ici)
  6. Travail indépendant avec une analyse réfléchie de "pourquoi ce wrapper devrait-il ralentir et gaspiller des ressources, peut-être réécrire de manière optimale ?".
  7. Utilisation d'un profileur qui montre la consommation réelle des ressources dans chaque ligne de code

Pourquoi ne pas ouvrir un fil de discussion sur les meilleures pratiques (les plus efficaces) de programmation directe sur MT5 ? Il y avait, par exemple, une branche sur la réalisation de l'iBarShift. D'autres nuances peuvent également être améliorées ensemble. Les gens, en général, ne veulent pas apprendre à programmer, mais à construire rapidement et confortablement un conseiller expert - désolé, mais c'est comme ça. Et l'expert, bien sûr, ne doit pas ralentir ou s'écraser. Si vous pouviez, comme des briques prêtes à l'emploi, les assembler "juste comme il faut", ce serait formidable. Parce qu'il y a toutes sortes de "ce qui ne va pas" partout. Et ce n'est pas toujours évident de savoir ce qui est "mal". Que diriez-vous de "la bonne façon" ?

La documentation est assez minimaliste à bien des égards.

La base de code est un gros tas dans lequel il faut fouiller consciemment et intelligemment pendant des jours pour trouver le bon code.

Les articles - en règle générale, les auteurs et hautement spécialisés, plus dans le domaine du commerce que de la programmation (pourtant, l'orientation de la ressource doit être prise en compte), et ceux qui concernent la programmation - principalement sur les gadgets.

C'est ici que se trouve le forum. Ils posent des questions ici et nous les envoyons à... ici aussi.

Le freelancing n'est pas une garantie de bonnes pratiques ou de formation.

Travail indépendant, y compris avec un profileur - bien sûr présent, mais pas assez de temps pour tout. Quelque chose que je veux prendre sous forme de blocs de construction prêts à l'emploi.

 
Aleksey Vyazmikin:

Je suggère que pour être autorisé à télécharger ME et à communiquer avec vous sur le fond, vous devriez fournir un diplôme en programmation via la LC.

Il n'est pas nécessaire d'avoir un diplôme pour communiquer, mais il en faut un pour dire "Et où est la vitesse louée de MT5 ?".

On vous a fait remarquer vos erreurs à plusieurs reprises, mais au lieu de cela, vous continuez à vous plier à la ligne du "j'ai le droit de ne pas savoir, apprenez-moi sept choses !".
 
Alexey Kozitsyn:

Heh... Un diplôme universitaire n'est une garantie de rien.

En gros, je peux vous proposer cette variante (je n'ai pas vérifié l'exactitude du code, seulement pour le testeur, le symbole actuel, la période actuelle) :

Vous pouvez faire les autres fonctions par analogie.

Merci ! Je vais essayer de faire selon votre recette.

À propos du diplôme - je suis d'accord, mais il y a des secteurs où vous ne pouvez pas travailler sans lui - par exemple, pour mener des affaires au tribunal en tant que représentant pour les affaires CAS. Cependant, de cette manière, les développeurs ne peuvent pas perdre de temps avec les traders, mais s'intéresser aux programmeurs, et en tant que produit, être à un niveau plus élevé dans le classement des langages de programmation.

 
Stanislav Korotky:

Pourquoi ne pas créer une branche sur les meilleures pratiques (les plus efficaces) de programmation directe pour MT5 ? Il y avait, par exemple, une branche sur la mise en œuvre de l'iBarShift. D'autres nuances peuvent également être améliorées ensemble. Les gens, en général, ne veulent pas apprendre à programmer, mais à créer rapidement et confortablement un conseiller expert - désolé, mais c'est comme ça. Et l'expert, bien sûr, ne doit pas ralentir ou s'écraser. Si vous pouviez, comme des briques prêtes à l'emploi, les assembler "juste comme il faut", ce serait formidable. Parce qu'il y a toutes sortes de "ce qui ne va pas" partout. Et ce n'est pas toujours évident de savoir ce qui est "mal". Que diriez-vous de "la bonne façon" ?

La documentation est assez minimaliste à bien des égards.

La base de code est un gros tas dans lequel il faut fouiller consciemment et intelligemment pendant des jours pour trouver le bon code.

Les articles - en règle générale, les auteurs et hautement spécialisés, plus dans le domaine du commerce que de la programmation (pourtant, l'orientation de la ressource doit être prise en compte), et ceux qui concernent la programmation - principalement sur les gadgets.

C'est ici que se trouve le forum. Ils posent des questions ici et nous les envoyons à... ici aussi.

Le freelancing n'est pas une garantie de bonnes pratiques ou de formation.

Travail indépendant, y compris avec un profileur - bien sûr présent, mais pas assez de temps pour tout. Il y a des choses que je veux prendre sous forme de briques prêtes à l'emploi.

Je suis tout à fait d'accord avec vous !

Je me fais réprimander parce que je le fais "mal" et je suis renvoyé à l'endroit où je l'ai appris...

 
Renat Fatkhullin:

Il n'est pas nécessaire d'avoir un diplôme pour communiquer, mais il en faut un pour dire "Et où est la rapidité de MT5 ?".

On vous a fait remarquer vos erreurs à plusieurs reprises, mais au lieu de cela, vous continuez à vous plier à la règle du "j'ai le droit de ne pas savoir, apprenez-moi sept choses !".

Les émotions n'ont pas été annulées - je les ai signalées dans l'espoir d'obtenir de l'aide !

Je veux me tromper, je suis prêt à changer le code, mais je veux croire que tout ne sera pas vain !

Je ne suis pas d'accord avec vous pour dire que je revendique "j'ai le droit de ne pas savoir, apprenez-moi sept !". - en ce qui concerne l'obligation d'enseigner - j'attendais personnellement de vous, en tant qu'expert, une aide et des conseils spécifiques sur la manière de procéder.

Je considère et essaie la méthode de chaque auteur, ce qui découle de ce fil de discussion et pour lequel ils sont "merci !".


 
Aleksey Vyazmikin:

Vous avez déjà été conseillé sur une solution toute faite -https://www.mql5.com/ru/code/18305.

En fonction de vos besoins :

J'ai des boucles dans mon code, la quantité de calculs ne peut pas être connue à l'avance.

J'ai des cycles dans mon code et la quantité de calculs peut être inconnue.

Высокопроизводительная библиотека iTimeSeries
Высокопроизводительная библиотека iTimeSeries
  • votes : 20
  • 2017.05.25
  • nicholishen
  • www.mql5.com
Эта библиотека предоставляет молниеносный доступ к таймсериям для реализации привычных методов MQL4 (например, iBarShift) в чувствительных к задержкам приложениях на MQL5.
 
Alexey Kozitsyn:

En gros, je peux vous proposer cette variante (je n'ai pas vérifié l'exactitude du code, seulement pour le testeur, le symbole actuel, la période actuelle) :

Vous pouvez faire d'autres fonctions par analogie.

J'ai essayé votre variante - dans la marge d'erreur de changement

C'était :
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1 : 107509 ticks, 35385 barres générées. Environnement synchronisé à 0:00:00.032. Test passé en 0:02:52.037 (incluant le prétraitement des ticks 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1 : temps total de la connexion à l'arrêt des tests 0:02:52.069 (dont 0:00:00.032 pour la synchronisation des données d'historique)
2017.07.21 17:23:20.046 Core 1 351 Mb de mémoire utilisée dont 32 Mb de données historiques, 64 Mb de données tick.

Devenir avec votre code
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1 : 107509 ticks, 35385 barres générées. Environnement synchronisé à 0:00:00.031. Test passé en 0:02:58.013 (incluant le prétraitement des ticks 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1 : temps total entre la connexion et l'arrêt des tests 0:02:58.044 (dont 0:00:00.031 pour la synchronisation des données d'historique)
2017.07.21 17:27:37.393 Core 1 352 Mb de mémoire utilisée dont 32 Mb de données d'historique, 64 Mb de données de tick.

MT4
2017.07.21 17:27:57.070 RUBRUR,M1 : 225314 événements tick (35701 barres, 231783 états de barre) traités en 0:00:04.306 (temps total 0:00:11.357)

 
Aleksey Vyazmikin:

J'ai essayé votre option - dans la marge d'erreur de changement

C'était :
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1 : 107509 ticks, 35385 barres générées. Environnement synchronisé à 0:00:00.032. Test passé en 0:02:52.037 (incluant le prétraitement des ticks 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1 : temps total de la connexion à l'arrêt des tests 0:02:52.069 (dont 0:00:00.032 pour la synchronisation des données d'historique)
2017.07.21 17:23:20.046 Core 1 351 Mb de mémoire utilisée dont 32 Mb de données historiques, 64 Mb de données tick.

Devenir avec votre code
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1 : 107509 ticks, 35385 barres générées. Environnement synchronisé à 0:00:00.031. Test passé en 0:02:58.013 (incluant le prétraitement des ticks 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1 : temps total entre la connexion et l'arrêt des tests 0:02:58.044 (dont 0:00:00.031 pour la synchronisation des données d'historique)
2017.07.21 17:27:37.393 Core 1 352 Mb de mémoire utilisée dont 32 Mb de données d'historique, 64 Mb de données de tick.

MT4
2017.07.21 17:27:57.070 RUBRUR,M1 : 225314 événements tick (35701 barres, 231783 états de barre) traités en 0:00:04.306 (temps total 0:00:11.357)

Ici, vous pouvez également essayer de supprimer la déclaration de tableau dans les fonctions et de la rendre globale. C'est-à-dire, rendre le tableau arr[ 1 ] global et supprimer la chaîne double arr[ 1 ] ; de toutes les fonctions.
Raison: