Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je pars du principe qu'il n'y aura pas de lot, par exemple 0,15. En tout cas, je n'en ai pas entendu parler. Si je le fais, je le changerai.
Je sais que c'est peu probable, mais vous voulez toujours la solution parfaite ))))
Ce n'est pas le plus gros problème, mais je me suis créé un problème... Je voulais un OOP parfait, mais sans appels inutiles et tout était optimal.
Je veux avoir 5 instances de la classe, mais je dois initialiser les champs de la classe une seule fois - ils contiennent l'environnement du terminal, qui ne changera pas pendant l'exécution du programme.
string Language;
Si je déclare static string Language ; - alors il y aura une erreur de variable statique non résolue 'A::Language'.
voici un exemple
Je vais initialiser la chaîne Language 5 fois dans ce formulaire - c'est faux et cela ne compilera pas avec les modificateurs statiques.
et il n'est pas nécessaire d'avoir 5 copies de la variable linguistique ! - j'ai essayé dans la classe B de déclarer une instance de la classe - même chose 5 Les variables de langue ont
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : initialisé
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30 : uninit reason 3
Je sais que c'est peu probable, mais vous voulez toujours la solution parfaite ))))
Ok, ce n'est pas le plus gros problème, mais je me suis créé un problème... Je voulais un OOP parfait, mais sans appels inutiles et tout était optimal.
Je veux avoir 5 instances de la classe, mais je dois initialiser les champs de la classe une seule fois - ils contiennent l'environnement du terminal, qui ne changera pas pendant l'exécution du programme.
Si je déclare static string Language ; - alors il y aura une erreur de variable statique non résolue 'A::Language'.
voici un exemple
Je vais initialiser la chaîne Language 5 fois dans ce formulaire - ce n'est pas correct, et cela ne compile pas avec les modificateurs statiques
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : initialisé
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30 : uninit reason 3
OK, c'est une option
Mais je veux tout regrouper dans une seule classe - dans mon exemple, j'ai la classe B et je veux 5 instances de B, mais je ne veux pas initialiserLanguage 5 foiset donc je ne veux pas avoir une variableLanguage dans chaque instance.
Comment se débarrasser de lalangue supplémentaire?
OK, c'est une option
Mais je veux tout regrouper dans une seule classe - dans mon exemple, j'ai la classe B et je veux 5 instances de B, mais je ne veux pas initialiser Language 5 fois et donc je ne veux pas avoir une variableLanguage dans chaque instance.
Comment se débarrasser du surplus delangue ?
Hériter. De cette façon, il ne sera initialisé qu'une seule fois.
Je sais que c'est peu probable, mais on veut toujours la solution parfaite ))))
Ok, ce n'est pas le plus gros problème, mais je me suis créé un problème... Je voulais un OOP parfait, mais sans appels inutiles et tout était optimal.
Je veux avoir 5 instances de la classe, mais je dois initialiser les champs de la classe une seule fois - ils contiennent l'environnement du terminal, qui ne changera pas pendant l'exécution du programme.
Si je déclare static string Language ; - alors il y aura une erreur de variable statique non résolue 'A::Language'.
voici un exemple
Je vais initialiser la chaîne Language 5 fois dans ce formulaire - c'est faux et cela ne compilera pas avec les modificateurs statiques.
et il n'est pas nécessaire d'avoir 5 copies de la variable linguistique ! - j'ai essayé dans la classe B de déclarer une instance de la classe - même chose 5 Les variables de langue ont
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : initialisé
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : B::BRussian
2019.08.29 12:44:58.384 tst__ EURUSD,M15 : A::A
2019.08.29 12:44:57.989 tst__ EURUSD,M30 : uninit reason 3
Hériter. Sous cette forme, il ne sera initialisé qu'une seule fois.
Cela fonctionne pour moi
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : initialisé
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : B::Bru
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : CLang::CLang
2019.08.29 13:24:19.690 tst__ EURUSD,M15 : MyTerminalInfoString
au moins monTerminalInfoString() est appelé une fois
Donc, j'ai en quelque sorte un Singleton
Merci !
Je suis sur mon téléphone en ce moment. Rappelle-moi dans la soirée et je te montrerai comment le résoudre.
OK, si ça ne vous dérange pas trop.
et le thème du Singleton est assez nouveau pour moi, il y a de la place pour la créativité - des exemples seraient
OK, si ça ne vous dérange pas trop.
et le thème du Singleton est assez nouveau pour moi, il y a de la place pour la créativité - des exemples seraient
Alors, avez-vous besoin d'un champ commun pour les objets ?
c'est difficile de dire ce que je veux ))))
Laissez-moi essayer de l'exprimer en mots :
- Je veux une classe qui est initialisée par le constructeur et cette classe n'aura pas de méthodes ; le but de la classe est d'ouvrir un ordre et ensuite de fermer et/ou rouvrir plusieurs autres ordres selon un script ; le type de script est une énumération.
- Je vais utiliser un tableau d'instances de la classe - au moins 5
- Je ne veux pas ouvrir l'ordre sans appeler l'environnement terminal à chaque fois. Par conséquent, je veux utiliser SYMBOL_VOLUME_MAX, Symbol, SYMBOL_VOLUME_MIN et le nombre de chiffres dans SYMBOL_VOLUME_STEP comme valeurs constantes dans la classe
- Je veux une utilisation optimale des variables, c'est-à-dire que je ne veux pas faire double emploi avec les constantes du paragraphe précédent.
C'est à peu près la façon dont je vois tout cela, mais en général, le problème est maintenant réduit à la structure correcte de la classe elle-même, comme il s'est avéré déjà avoir à hériter, de sorte que SYMBOL_VOLUME_MAX , Symbol,SYMBOL_VOLUME_MIN ... pour n'avoir qu'une seule copie, je pense que je vais encore buter sur la sortie d'erreur, je vais utiliser quelque chose comme ceci à partir de mon PrintLastError.mqhhttps://www.mql5.com/ru/code/24829#