Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня допущение, что лота, например 0.15, не будет. По крайней мере я про такое не слышал. Если вдруг увижу когда, то переделаю.
да понятно, что такое маловероятно, но как всегда хочется идеального решения )))
ладно, это не самая большая проблема, вот проблему сам себе создал... захотелось идеального ООП, но чтобы не было лишних вызовов и все было оптимально
вот хочу иметь 5 экземпляров класса, но нужно поля класса один раз инициализировать - в них окружение терминала, которое не изменится в ходе выполнения программы, вот пример набросал, а не могу ни через static ни через наследование добиться однократной инициализации
string Language;
если объявляю static string Language; - то будет ошибка unresolved static variable 'A::Language'
вот пример:
в таком виде буду инициализировать string Language целых 5 раз - это не правильно, а с модификаторами static не компилируется
да и не нужно иметь 5 копий переменной Language !!! - пробовал в классе B обьявлять экземпляр класса - тоже самое 5 переменных Language имею
2019.08.29 12:44:58.384 tst__ EURUSD,M15: initialized
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
да понятно, что такое маловероятно, но как всегда хочется идеального решения )))
ладно, это не самая большая проблема, вот проблему сам себе создал... захотелось идеального ООП, но чтобы не было лишних вызовов и все было оптимально
вот хочу иметь 5 экземпляров класса, но нужно поля класса один раз инициализировать - в них окружение терминала, которое не изменится в ходе выполнения программы, вот пример набросал, а не могу ни через static ни через наследование добиться однократной инициализации
если объявляю static string Language; - то будет ошибка unresolved static variable 'A::Language'
вот пример:
в таком виде буду инициализировать string Language целых 5 раз - это не правильно, а с модификаторами static не компилируется
2019.08.29 12:44:58.384 tst__ EURUSD,M15: initialized
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
ОК, это вариант
но хочу все это в один класс обернуть - в моем примере класс B и хочу 5 экземпляров B, но не хочу 5 раз инициализировать Language и соответственно не хочу иметь по переменной Language в каждом экземпляре
а как избавиться от лишних Language ?
ОК, это вариант
но хочу все это в один класс обернуть - в моем примере класс B и хочу 5 экземпляров B, но не хочу 5 раз инициализировать Language и соответственно не хочу иметь по переменной Language в каждом экземпляре
а как избавиться от лишних Language ?
Наследуйтесь. В таком виде проинициализированно будет только один раз.
да понятно, что такое маловероятно, но как всегда хочется идеального решения )))
ладно, это не самая большая проблема, вот проблему сам себе создал... захотелось идеального ООП, но чтобы не было лишних вызовов и все было оптимально
вот хочу иметь 5 экземпляров класса, но нужно поля класса один раз инициализировать - в них окружение терминала, которое не изменится в ходе выполнения программы, вот пример набросал, а не могу ни через static ни через наследование добиться однократной инициализации
если объявляю static string Language; - то будет ошибка unresolved static variable 'A::Language'
вот пример:
в таком виде буду инициализировать string Language целых 5 раз - это не правильно, а с модификаторами static не компилируется
да и не нужно иметь 5 копий переменной Language !!! - пробовал в классе B обьявлять экземпляр класса - тоже самое 5 переменных Language имею
2019.08.29 12:44:58.384 tst__ EURUSD,M15: initialized
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
Наследуйтесь. В таком виде проинициализированно будет только один раз.
По моему работает
2019.08.29 13:24:19.690 tst__ EURUSD,M15: initialized
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
по крайней мере вызов MyTerminalInfoString() вижу один раз
в общем некий Singleton вроде как получился
Спасибо!
Сейчас с телефона. Вечером напомни, покажу как решать можно.
ОК, если не затруднит
и тема Singleton довольно нова для меня, есть поле для творчества - примеров бы
ОК, если не затруднит
и тема Singleton довольно нова для меня, есть поле для творчества - примеров бы
Так Вам singlton надо, или общее поле для объектов?
сложно сказать что я хочу )))
попробую на словах:
- хочу класс который конструктором инициализируется и этот класс не будет иметь методов, задача класса открыть ордер и в дальнейшем по сценарию закрыть и / или переоткрыть еще несколько раз ордера, тип сценария - перечисление
- буду использовать массив экземпляров такого класса - шт 5 не менее
- чтобы отрыть ордер не хочу окружение терминала каждый раз вызывать, поэтому хочу SYMBOL_VOLUME_MAX , Symbol,SYMBOL_VOLUME_MIN и кол-во знаков в SYMBOL_VOLUME_STEP иметь константными значениями в классе
- хочу оптимальное использование переменных, т.е. не хочу дублировать константы в предыдущем пункте
вот примерно так вижу все это, но в целом теперь задача свелась к правильной структуре самого класса, как оказалось уже придется наследоваться, чтобы SYMBOL_VOLUME_MAX , Symbol,SYMBOL_VOLUME_MIN ... одну копию иметь, думаю что еще споткнусь об вывод ошибок, использовать буду, что то как вот из моего PrintLastError.mqh https://www.mql5.com/ru/code/24829#