Erreurs, bugs, questions - page 1741

 
Ilyas:
Le typename génère une chaîne de caractères au moment de la compilation, c'est pourquoi vous devez "tirer les queues".


Voulez-vous obtenir le type d'objet actuel par pointeur ?

Quelque chose comme une fonction :

string GetPointerTypename(void *ptr);

Oui. Ici.

Stanislav Korotky:
J'aimerais que ce soit plus subtil. Mais comment ? Dans MQL,typename(this) dans la méthode virtual base renvoie la classe de base. En C++, la méthode virtuelle de basetypeid(*this).name() renvoie la classe réelle de l'objet.

 
fxsaber:
Cette fonctionnalité est-elle uniquement disponible dans les publications de profil ?
Il a été réparé cet après-midi. Maintenant, ça recommence.
 

Je n'arrive pas à m'y retrouver.

int a=1;//a1
int b=2;//b1
int aa(int a, int b)
{
return(a+a+b+b);
}

l'un des a et b en retour devrait être externe //a1 et //b1. Il ne passe pas par là.

 
Yuriy Asaulenko:

a + ::a + b + ::b

Mais en général, vous devriez recevoir une tape sur la main pour une telle pratique.

 
Комбинатор:

a + ::a + b + ::b

Mais en général, vous devriez être puni pour une telle pratique.

Merci) Je n'ai pas de livre sur le C++ sous la main. Mais visuellement, je me souviens qu'il semblait y avoir ça dedans. J'ai dû l'oublier. Je ne l'ai jamais utilisé dans ce but avant. Eh bien, maintenant je dois changer la variable partout - maintenant.

En fait, c'est pour ça qu'il a été conçu. Donc vous avez tort. Vous ne devez pas en abuser.

 

Lorsque vous faites glisser(CHARTEVENT_OBJECT_DRAG) un objet graphique OBJ_CHART avec la souris, l'intervalle d'affichage actuel dans OBJ_CHART est réinitialisé.

Veuillez supprimer cette réinitialisation dans la prochaine version.

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Ilyas, 2016.10.18 09:24

Pourquoi ne pas inclure la liste d'initialisation dans le corps ? Au sens figuré, un objet de classe (y compris son this) est initialisé sur le signe ':'.
Pourquoi alors ?
class A
{
  const int a;
  
  A() : this.a(0) {} // 'this' - struct member undefined && '.' - member(s) initialization expected
//  A() : a(this.a) {} // no problem
};
 

Identifiant

Description

Type de propriété

CHART_COMMENT

Texte du commentaire sur le graphique

chaîne de caractères

NOM_EXPERT_CARTE

Nom de l'Expert Advisor lancé sur le graphique avec le chart_id spécifié.

chaîne de caractères

NOM_DU_SCRIPT

Nom du script qui est lancé sur le graphique avec le chart_id spécifié.

chaîne de caractères

Ajouter en gras en lecture seule dans l'aide.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Beaucoup de temps consacré à la localisation. EA

class CHARTOBJECT
{
public:
  const string Name;
  const long Chart;

  int GetSubWindow( void ) const
  {
    const ulong StartTime = GetMicrosecondCount();
    
    const int Res = ObjectFind(this.Chart, this.Name);
    
    Print((string)(GetMicrosecondCount() - StartTime) + " mcs.");

    return(Res);
  }

  CHARTOBJECT( const ENUM_OBJECT object_type, const long chart_id = 0  ) :
               Name((string)MathRand()), Chart(chart_id)
  {
    ObjectCreate(this.Chart, this.Name, object_type, 0, 0, 0);
  }

  ~CHARTOBJECT( void )
  {
    if (this.GetSubWindow() != -1)
      ObjectDelete(this.Chart, this.Name);
  }
  
  long GetProperty( const ENUM_OBJECT_PROPERTY_INTEGER Property, const int Modifier = 0 ) const
  {
    return(ObjectGetInteger(this.Chart, this.Name, Property, Modifier));
  }
};

CHARTOBJECT Chart(OBJ_CHART);
CHARTOBJECT* Bitmap;

void OnInit()
{
  Bitmap = new CHARTOBJECT(OBJ_BITMAP_LABEL, Chart.GetProperty(OBJPROP_CHART_ID));
}

void OnDeinit( const int Reason )
{
  Bitmap.GetSubWindow();
  
  delete Bitmap;
}

Après l'avoir retiré du graphique, il y aura une sortie de journal

2016.10.22 19:35:51.362 Test9 (AUDCAD,M1)       Abnormal termination
2016.10.22 19:35:48.351 Test9 (AUDCAD,M1)       3005619 mcs.

En trois secondes, il était enlevé et sorti. Reproduit uniquement dans la version release. Pendant le débogage, tout est normal.

Veuillez confirmer par vous-même. En mode script, le jeu ne fonctionne pas. Seulement l'EA.

 

L'aide indique :

Dans les modes d'exécution "Par marché" et "Bourse" , la politique de remplissage "Retour" est toujours autorisée pour tous les types d'ordres. L'autorisation d'autres types est vérifiée à l'aide des propriétés SYMBOL_FILLING_FOK et SYMBOL_FILLING_IOC.

Mais pas toujours. Ainsi, sur les comptes Robo, "Return" ne fonctionne pas, ni sur les comptes Pro, ni sur les comptes ECN.

Raison: