Bug de redimensionnement des tableaux dans la version bêta 530 - page 5

 
angevoyageur:

Si vous voulez tester, et éviter la mise à jour d'autres terminaux, vous devez supprimer le dossier suivant :

  • Windows 7 : C : \ ProgramData \ MetaQuotes \ WebInstal après une mise à jour réussie, le terminal de test vers les autres terminaux ne sont pas mis à jour.
  • Windows XP : C : \ Documents and Settings \ Tous les utilisateurs \ Données d'application \ MetaQuotes \ Webinstall \

Ces informations (probablement tirées du forum russe) ne sont plus à jour. À partir de la v534, la mise à jour sur Win7+ est placée dans %appdata%\metaquotes\webinstall, et non dans %programdata%\metaquotes\webinstall.

Peut changer à nouveau dans les versions suivantes.

 
cyclops993:

Cette information (probablement tirée du forum russe) n'est plus d'actualité. À partir de la v534, la mise à jour sur Win7+ est placée dans %appdata%\metaquotes\webinstall, et non dans %programdata%\metaquotes\webinstall.

Peut changer à nouveau dans les versions suivantes.

Merci.
 
angevoyageur:

Je ne suis probablement pas un bon exemple, car je suis un programmeur professionnel. Ce n'est donc pas un gros effort pour moi, et j'aime apprendre de nouveaux langages de programmation. J'ai aussi un peu d'expérience avec oop.

. . . . .

Dans l'ensemble, je suis d'accord avec ce que vous avez écrit, je ne suis pas un ingénieur en logiciel mais j'ai un peu bricolé avec mql5 et je n'ai pas eu besoin d'utiliser de la POO dans le code que j'ai écrit... mais j'apprends beaucoup en lisant et en comprenant le code des autres, sans comprendre le principe de la POO, il peut être difficile de suivre un code mql5.
 
RaptorUK: Je suis en grande partie d'accord avec ce que vous avez écrit, je ne suis pas un ingénieur en logiciel mais j'ai un peu bricolé avec mql5 et je n'ai pas eu besoin d'utiliser la POO dans le code que j'ai écrit... mais j'apprends beaucoup en lisant et en comprenant le code des autres, sans comprendre le principe de la POO il peut être difficile de suivre un code mql5.

Je pense que la POO implique de croire en l'Encapsulation, l'Abstraction, l'Héritage et le Polymorphisme. Je ne pense pas que vous soyez censé être capable de "suivre" les codes de quelqu'un d'autre à cause de l'abstraction. Tout ce que vous devez savoir, c'est ce qu'elle fait . Sur une note plus sérieuse, je crois que la POO fournit un niveau d'organisation/catalogage qui est appliqué et soutenu par le langage et l'IDE. Un programmeur ne peut pas avoir trop d'organisation, ce qui finit probablement par faire gagner du temps sur les projets futurs pour la plupart des programmeurs.

 

Merci pour votre réponse angelvoyager, c'est un bon aperçu de quelqu'un qui est familier avec les deux côtés de la pièce, je suis dans le même bateau que Raptor, les concepts d'oop ont commencé à m'intéresser et je veux en apprendre davantage à ce sujet, il est bon de savoir que ce n'est pas tout à fait nécessaire pour continuer à utiliser mql4, même avec les fonctionnalités mql5, mais quand même, je voudrais comprendre quels sont les avantages de coder selon les concepts et les principes d'oop et comment ils s'appliquent à coder un petit projet comme une EA.

 

Lorsque je code un EA, il finit généralement par ressembler à celui du livre, une fonction centrale qui accumule l'état actuel des choses et stocke ces informations dans des tableaux globaux, entourée de fonctions périphériques qui utilisent les informations de ces mêmes tableaux pour décider de ce qu'il faut faire, chacune d'entre elles appelant d'autres fonctions d'aide pour calculer des choses telles que la taille des lots, etc. La fonction start() appelle d'abord la fonction centrale, puis les fonctions périphériques, par ordre de priorité. Cette structure de base fonctionne assez bien, même si je n'ai jamais vraiment aimé le fait que tout soit centré sur l'accès global à ces tableaux, mais je ne l'ai pas suffisamment aimé pour chercher une autre façon de faire. En d'autres termes, cela fonctionne suffisamment bien pour que je n'essaie pas de le corriger, lol.

J'aimerais savoir en quoi une approche oop serait différente et quels en seraient les avantages.

 
SDC: Lorsque je code un EA, il finit généralement par ressembler à celui du livre, une fonction centrale qui accumule l'état actuel des choses et stocke ces informations dans des tableaux globaux, entourée de fonctions périphériques qui utilisent les informations de ces mêmes tableaux pour décider de ce qu'il faut faire, chacune d'entre elles appelant d'autres fonctions d'aide pour calculer des choses telles que la taille des lots, etc. La fonction start() appelle d'abord la fonction centrale, puis les fonctions périphériques, par ordre de priorité. Cette structure de base fonctionne assez bien, même si je n'ai jamais vraiment aimé le fait que tout soit centré sur l'accès global à ces tableaux, mais je ne l'ai pas suffisamment aimé pour chercher une autre façon de faire. En d'autres termes, cela fonctionne suffisamment bien pour que je n'essaie pas de le corriger.

J'aimerais savoir en quoi une approche oop diffère de celle-ci et quels en seraient les avantages.

Je crois que vous décrivez un flux de programme. Je ne pense pas que ce soit la grande idée derrière la POO. (imo) La POO essaie de résoudre les problèmes suivants. Je suis un noob de la POO, mais je suis en train de former ma vision du monde à ce sujet.

1) Vos fonctions sont-elles indépendantes des variables globales ? En d'autres termes, vos fonctions sont-elles des objets autonomes ? Encapsulation

2) Votre fonction cache-t-elle les détails comme les noms des variables locales ? Est-ce qu'elle simplifie le volume de codes à l'écran ? Abstraction

3) A-t-elle la capacité de créer des copies d'elle-même pour des modifications ? Comme la possibilité de créer ses propres types de données ? Héritage.

4) A-t-il la capacité de changer à la volée ? Exemple : la fonction peut-elle gérer aussi bien les tableaux d'entiers que les tableaux de doubles ? Polymorphisme.

La manière dont la POO peut aider à construire une ea est similaire à la manière dont un ea_builder aide un non_programmeur à construire un expert_conseil. Il suffit de prendre votre fonction préférée Order_Accounting_Function -> Data_Function -> Event Tracking Function -> Volume Defining Function -> Trading Criteria Defining Function -> Trade Functions -> Error Processing Function. Et boum, vous avez un Expert_Advisor. Toutes les fonctions de définition des critères de négociation que vous avez développées au fil des ans peuvent être facilement remplacées.

Moi, par exemple, si vous voulez modifier mon conseiller expert, vous devrez étudier où mes variables globales sont appliquées et quelle autre fonction en dépend (comme dans vos tableaux d'état ou de statut). La POO rend les choses aussi simples que Accounting(Option_3) ; Display(Option_1) ; Caption(Option_5) ; TradingSys(Option_7) ; VolumeSize(Option2) ; OrderType(Option_2) et c'est tout l'expert.

Cela permet à quelqu'un d'autre d'utiliser plus facilement votre ensemble de bibliothèques, et généralement, ce qui fonctionne pour quelqu'un d'autre fonctionne aussi pour vous à l'avenir. Au moins, pensez à des objets autonomes sur une chaîne de montage :)

 
***P : (Je ne veux pas l'oublier). La plupart d'entre nous n'aiment pas ne pas savoir ce que contiennent les codes que nous utilisons. Ou nous nous consumons à essayer de comprendre les codes de quelqu'un d'autre, sinon nous ne les utiliserions probablement pas. Cependant, la plupart des fonctions natives (par exemple OrderSend()) de mql4 sont des objets de notre point de vue. Nous ne voyons pas leurs codes, mais nous les acceptons. Je pense que cette acceptation des bibliothèques d'autrui est quelque chose qu'un programmeur professionnel travaillant sur de grands projets doit accepter et développer. Sinon, on est obligé de recréer la roue.
 

La dernière version de mon EA s'en rapproche, il s'agit maintenant de fichiers inclus mais ils ne sont pas assez robustes pour être utilisés sans au moins quelques modifications. L'erreur que je fais souvent est que je ne me surprends à écrire du code spécifique aux critères dans des fonctions qui devraient être ambiguës qu'après coup, et elles reposent trop sur les tableaux globaux. Quand j'aurai le temps, j'utiliserai davantage de tableaux locaux et je passerai davantage de paramètres pour compenser la diminution de l'accès global.

 
ubzen:
***P : (Je ne veux pas l'oublier). La plupart d'entre nous n'aiment pas ne pas savoir ce que contiennent les codes que nous utilisons. Ou nous nous consumons à essayer de comprendre les codes de quelqu'un d'autre, sinon nous ne les utiliserions probablement pas. Cependant, la plupart des fonctions natives (par exemple OrderSend()) de mql4 sont des objets de notre point de vue. Nous ne voyons pas leurs codes, mais nous les acceptons. Je pense que cette acceptation des bibliothèques d'autrui est une chose qu'un programmeur professionnel travaillant sur de grands projets doit accepter et sur laquelle il doit s'appuyer. Sinon, on est obligé de recréer la roue.
Il y a une différence... Je n'ai pas d'autre choix que d'utiliser OrderSend() si je souhaite passer une commande... J'ai le choix d'utiliser ou non la bibliothèque de quelqu'un d'autre... Même lorsque la source est respectée, j'essaie toujours de la comprendre avant d'essayer de l'utiliser, c'est ainsi que certaines erreurs sont trouvées et corrigées : https://www.mql5.com/en/forum/133792/page3 "Et ma correction pour lecommentaire deRaptorUK :"