Erreurs, bugs, questions - page 854

 
Renat:
Il est conseillé de mettre à jour les pilotes vidéo avec les plus récents. Qu'est-ce que ça dit ? Copiez les lignes du journal de bord - cela se fait facilement à partir du menu.

Les pilotes vidéo sont bons et les jouets fonctionnent. Je joins une capture d'écran. Windows XP SP3 sans mises à jour. Ne pas mettre à jour, parce que vinda craque, et ils ont une sorte de mise à jour là comme il vérifie.

J'ai encore quelques bugs - les news du terminal ne démarrent pas (ouvre juste une fenêtre vide), les indicateurs du terminal ne démarrent pas - base de code - le paramètre est faux - capture d'écran jointe.

 
Bonne journée !
J'essaie de tester un EA dans le testeur MQL5.

Le premier test fonctionne bien, après avoir modifié le code de l'EA et l'avoir compilé dans MetaEditor5, je relance le testeur5, mais le testeur5 ne voit pas les nouvelles modifications. Lorsque le même EA est sauvegardé sous un autre nom, tout est normal. J'ai essayé de supprimer les fichiers *.ex5, ce qui aide une seule fois. Veuillez indiquer quels fichiers doivent être supprimés dans le testeur pour qu'il fonctionne lors des modifications de l'EA.

Toujours pas d'affichage de l'indicateur lors de la visualisation du testeur, bien que l'EA calcule selon l'indicateur.

MT5 build 695

MetaEditor5 build 695

 
alexvd:

Donnez tous les détails (version de l'axe, débit binaire, logs, version d'IE) à servicedesk. Essayé à la maison - ça ne se répète pas.

O ! Merci beaucoup - cela m'a aidé ! J'ai mis à jour IE de 6 à 8 et tout a fonctionné (à la fois l'éditeur avec les outils, et Windows HELP, et les erreurs de démarrage ont disparu du journal. Mais les actualités dans le terminal ne montrent que les gros titres - mais ce n'est pas grave).
 
gdtt:

Les nouvelles en russe sont comme ça :

Windows 8 64 bit 705 build, liteforex.

Où dois-je aller avec ça ? Voulez-vous aller au dc, au bureau de service ?

Regardez dans les paramètres du système Windows.

En sept, ça l'est : Menu principal/Panneau de commande/Langue et normes régionales/Avancé/Unicode Langue de programmation prise en charge.

En huit, je n'en ai aucune idée, mais il devrait y avoir un analogue.

 
MetaDriver:

Regardez dans les réglages du pare-brise.

En sept, ça l'est : Menu principal/Panneau de configuration/Langue et normes régionales/Avancé/Langue des programmes ne prenant pas en charge Unicode.

En huit, aucune idée, mais l'analogue devrait être là.

Le russe y est la langue. La même chose dans les sept et la même erreur. Toutes les nouvelles ne vont pas mal :

 
gdtt:

Le russe y est la langue. Dans Seven, c'est la même chose et la même erreur. Toutes les nouvelles ne sont pas mauvaises :

Tada oops.
 

Je ne suis pas sûr de bien connaître C. Pouvez-vous me dire s'il est permis d'accéder à un champ privé d'une classe qui est protégée par une construction privée ?

class tst{
public:
  void Set( tst& passed ){
    member = passed.member; 
  }
private:
  int member;
};

Le compilateur ne donne aucun avertissement ou erreur.

 
gdtt:

Je ne suis pas sûr de bien connaître C. Pouvez-vous me dire s'il est permis d'accéder à un champ privé d'une classe qui est protégée par une construction privée ?

Le compilateur ne donne aucun avertissement ou erreur.

Interdit dans quel sens ? En termes d'accès depuis d'autres classes ou en accédant à ce champ depuis le programme ?
 
sergeev:
Interdit dans quel sens ? En termes d'accès par d'autres classes ou en accédant à ce champ depuis un programme ?

Cette construction :

member = passed.member;

Je pense qu'il devrait être interdit, car il fait directement référence à un membre privé d'un autre objet, bien que du même type de données.

J'ai toujours pensé que si je faisais une telle déclaration :

private:
  int member;

alors il n'est possible d'accéder à un membre d'une classe membre qu'à partir de méthodes appartenant à cet objet.

 

Collègues,

il existe une méthode de la classe CAccountInfo::MaxLotCheck() dans la bibliothèque standard. En l'appliquant àENUM_ORDER_TYPE== ORDER_TYPE_BUY_STOP, j'obtiens la taille maximale du lot, c'est-à-dire de manière incorrecte. Je regarde le code :

//--- calculate margin requirements for 1 lot
   if(!OrderCalcMargin(trade_operation,symbol,1.0,price,margin) || margin<0.0)
     {
      Print("CAccountInfo::MaxLotCheck margin calculation failed");
      return(0.0);
     }
//---
   if(margin==0.0)   // for pending orders
      return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));

Question : pourquoi cette fonction renvoie-t-elle la taille maximale du lot pour les ordres en attente? Il s'avère que la fonction OrderCalcMargin() précédemment appelée pour un ordre en attente a retourné 0.0 ?

Quelqu'un peut-il m'aider à comprendre comment utiliser cette fonction pour les ordres en attente ? Je ne l'ai pas trouvé dans l'aide...

Merci.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5