Erreurs, bugs, questions - page 1132

 

Ainsi, les estimés développeurs ont répondu à la demande:

Équipe desoutien2014.04.16 15:58

Nous ferons un drapeau d'arrêt, mais cela n'a pas beaucoup de sens de l'utiliser dans les indicateurs. Les indicateurs ne sont pas destinés à effectuer des calculs super lourds ou en boucle dans OnCalculate, car contrairement aux conseillers experts et aux scripts, ils ne sont pas exécutés dans des threads séparés. Cela signifie qu'en bouclant le fil de l'indicateur, vous arrêtez de former l'historique (synchronisation, ajout de ticks, etc.).
Équipe de soutien 2014.04.16 15:59
Statut :OuvertAchevé
 
Fleder:
Est-il permis de déclarer un constructeur dans une section privée ? Le compilateur ne se plaint pas ?

Vous pouvez, car cela n'est pas controversé en soi, et toute restriction doit être justifiée. Un tel objet peut être créé dans la classe elle-même, et un pointeur vers un tel objet peut être créé en dehors de la classe.

 
A100:

Vous pouvez, car cela n'est pas controversé en soi, et toute restriction doit être justifiée. Un tel objet peut être créé dans la classe elle-même, et un pointeur vers un tel objet peut être créé en dehors de la classe.

Si vous pouvez, pourquoi le compilateur dit que vous ne pouvez pas :

 
mql5:
Il est maintenant obligatoire de placer des membres statiques.

Merci. Cependant, il n'est pas clair où ils doivent être placés... Mes premières tentatives pour les pousser dans la racine, avant la fonction ou directement à côté des classes ont échoué - le type d'erreur s'est transformé en redéfinition. Mais bon, je vais réessayer, peut-être que je vais trouver un bon endroit.


Fleder:Mieux encore, essayez d'éviter de les utiliser.

Eh bien, dites-moi aussi... Comment stocker autrement toutes ces informations, qui doivent être calculées une fois en X (quelque part une minute, quelque part une semaine entière), et utiliser chaque tick dans plusieurs classes ? Ou pensez-vous qu'il est préférable de recommencer à chaque tick pour analyser les tableaux avec les nouvelles, les niveaux de résistance et calculer les statistiques pour les 10000 dernières bougies ? :) Et dans certains endroits, plusieurs fois par tic, séparément pour chaque objet de classe? Ensuite, je pense que le fonctionnement du testeur pendant un an et demi ne prendra pas une heure, comme c'est le cas maintenant, mais toute une année et demie :)
 
Lone_Irbis:

Merci. Cependant, il n'est pas clair où ils doivent être placés... Mes premières tentatives pour les pousser dans la racine, avant la fonction ou directement à côté des classes n'ont pas abouti - le type d'erreur s'est transformé en redéfinition. Mais bon, je vais réessayer, peut-être que je vais trouver le bon endroit.


Eh bien, dis-moi aussi. Comment stocker autrement toutes ces informations qui doivent être calculées une fois sous X (parfois pendant une minute, parfois pendant une semaine entière) et utiliser chaque tic dans plusieurs classes ? Ou pensez-vous qu'il est préférable de commencer à re-pairer différents tableaux avec les nouvelles, les niveaux de résistance et de calculer des statistiques pour les 10000 dernières bougies chaque tick ? :) Et dans certains endroits, plusieurs fois par tic, séparément pour chaque objet de classe? Ensuite, je pense que le fonctionnement du testeur pendant un an et demi ne prendra pas une heure, comme c'est le cas maintenant, mais toute une année et demie :)
Et il est préférable de ne pas utiliser un testeur non plus.
 
Fleder:

Si vous pouvez, pourquoi le compilateur dit que vous ne pouvez pas ?

Il ne me dit pas

class B {
        B() {}
};
void OnStart()
{
        B *b;
}
Encore une fois : un tel objet peut être créé à l'intérieur de la classe elle-même, mais un pointeur vers un tel objet peut également être créé à l'extérieur de la classe.
 

Je ne comprends pas comment scanner les serveurs lors de la connexion ? Auparavant, je saisissais le nom du serveur et la liste apparaissait, j'ajoutais les bons (image 2, il y a des serveurs ajoutés il y a une quinzaine de jours). Dans l'image 1, les bons serveurs ne sont plus scannés, je ne peux pas ajouter. Qu'est-ce qui n'est plus possible ou comment le faire soi-même ?


 
Fleder:
Et il est préférable de ne pas utiliser un testeur non plus.

Oui, et il est préférable de ne pas utiliser le forex du tout non plus. Ou l'ordinateur, d'ailleurs :) Ce n'est pas sain du tout.

De toute façon, il y a déjà un correctif. Ce n'est pas très joli, mais ça marche. Le correctif s'appelle "To hell with your OOP". %) Les erreurs ont été éliminées en sciant toutes les variables statiques des classes, en supprimant le préfixe static de celles-ci et en les empilant soigneusement les unes à côté des autres.

En général, je ne sais pas pourquoi les développeurs n'aimaient pas les variables statiques et pourquoi ils ont dû supprimer la fonction d'initialisation automatique des variables, mais si je dois le faire, je dois le faire. Nous devrons utiliser des solutions de contournement...

 
Lone_Irbis:

Oui, et il est préférable de ne pas utiliser le forex du tout non plus. Ou l'ordinateur, d'ailleurs :) Ce n'est pas sain du tout.

De toute façon, il y a déjà un correctif. Ce n'est pas très joli, mais ça marche. Le correctif s'appelle "To hell with your OOP". %) Les erreurs ont été éliminées en sciant toutes les variables statiques des classes, en supprimant le préfixe static de celles-ci et en les empilant soigneusement les unes à côté des autres.

En général, je ne sais pas pourquoi les développeurs n'aimaient pas les variables statiques et pourquoi ils ont dû supprimer la fonction d'initialisation automatique des variables, mais si je dois le faire, je dois le faire. Nous devrons utiliser des solutions de contournement...

L'initialisation automatique simple a été remplacée par un placement explicite.

Et si vous visez la perfection, alors :

1. La meilleure façon de faire du commerce est de ne pas en faire.

2) La meilleure façon de vivre sa vie est de ne pas naître.

 
A100:

Mais il ne veut pas me le dire.

Encore une fois : un tel objet peut être créé à l'intérieur de la classe elle-même, mais un pointeur vers un tel objet peut également être créé à l'extérieur de la classe.

C'est ce qu'il fera :

class B {
        B() {}
};
void OnStart()
{
        B *b;
        b=new B;
}
Raison: