Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос. А зачем козе баян? Если в одном методе, одного класса, в сферическом коне, да в физическом вакууме (ну выпимши я)))), то да, имеет смысл. А если в реальном проекте, то, либо класс на глобальном уровне, либо одиночка, который всю эту трихомудину (сорри за лишний бурбон))))) обрабатывает в начале обработчика, и,запрашивай напрямую из него в любом месте)))
это класс-менеджер который раздает задания и получает результаты от небольшого подчиненного стада классов )))
в общем сложно по трезвому обьяснить
но вопрос актуальный - как осуществляется адресация общих полей если читать значения этих полей из разных методов и очень часто
это класс-менеджер который раздает задания и получает результаты от небольшого подчиненного стада классов )))
в общем сложно по трезвому обьяснить
но вопрос актуальный - как осуществляется адресация общих полей если читать значения этих полей из разных методов и очень часто
Смотри. В начале обработчика, не важно какого, запускаешь gSomeGlobal.SomeEvent(...), или, если одиночка, Alone::SomeEvent(...), в этом методе делаешь нужную обработку состояния и, потом, просто запрашиваешь нужные данные через геттеры. Пока у тебя не высокочастотный скальпер, шлешь всех поборников скорости лесом, хотя здесь никаких особых оверхедов и нет)))
производительности МТ5 хватит и на 10500 ордеров в секунду, хватило бы канала
в общем истину искал, пришлось проверить...если хочешь что то сделать - сделай это сам! )))
2020.07.25 18:00:07.293 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:00:45.273 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=37968
2020.07.25 18:01:31.405 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:02:09.423 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38016
2020.07.25 18:02:55.558 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 18:03:33.635 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38078
2020.07.25 18:04:21.969 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=48344
2020.07.25 18:05:00.113 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38140
2020.07.25 18:05:46.503 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46391
2020.07.25 18:06:24.573 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38062
для оптимизации скорость работы критична, поэтому и вопрос возник
в общем по ссылке нужно передавать во все методы текущую цену
UPD:
2020.07.25 19:03:37.210 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 19:04:15.201 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:04:53.188 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37984
2020.07.25 19:05:39.321 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 19:06:17.313 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:06:55.306 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37985
производительности МТ5 хватит и на 10500 ордеров в секунду, хватило бы канала
в общем истину искал, пришлось проверить...если хочешь что то сделать - сделай это сам! )))
2020.07.25 18:00:07.293 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:00:45.273 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=37968
2020.07.25 18:01:31.405 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:02:09.423 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38016
2020.07.25 18:02:55.558 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 18:03:33.635 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38078
2020.07.25 18:04:21.969 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=48344
2020.07.25 18:05:00.113 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38140
2020.07.25 18:05:46.503 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46391
2020.07.25 18:06:24.573 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38062
для оптимизации скорость работы критична, поэтому и вопрос возник
в общем по ссылке нужно передавать во все методы текущую цену
UPD:
2020.07.25 19:03:37.210 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 19:04:15.201 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:04:53.188 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37984
2020.07.25 19:05:39.321 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 19:06:17.313 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:06:55.306 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37985
Для начала делаем одинаковые условия работы)))) А то, ты взял и запихнул абсолютно ненужный оператор присваивания (2 шт.), тем самым создав заведомо не оптимальный код)))
А теперь вопрос: тебе что удобней? Можно конечно таскать за собой вереницы ссылок через параметры методов, а можно красиво делать. Скорости сам сравни)))
А то, ты взял и запихнул абсолютно ненужный оператор присваивания (2 шт.), тем самым создав заведомо не оптимальный код)))
это не я!
это IBM Knowledge Center ! https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/coding_style_best_perf.html
там услоовия одинаковые, каждый тик нужно вызывать менеджер классов (или супер-класс, хз в общем)
и он вызывает остальные классы, которые работают по своим стратегиям
но по сабжу - вариант С реально выигрывает по скорости, то бишь это кноуледж_центр вроде как правду глаголит
Интересно это глюк или особенность)
Внутри экземпляра класса находится структура.
Ставлю точку, что бы увидеть содержимое структуры.
Но оно отображается, только если поставить квадратные скобки.
Хотя структура в одном экземпляре.
проблема решается если класс не является элементом массива.
ну и сам код для "тырканья"
попробуйте скомпилировать, пусть даже с ошибками. Иногда это "будит" редактор
это не я!
это IBM Knowledge Center ! https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/coding_style_best_perf.html
там услоовия одинаковые, каждый тик нужно вызывать менеджер классов (или супер-класс, хз в общем)
и он вызывает остальные классы, которые работают по своим стратегиям
но по сабжу - вариант С реально выигрывает по скорости, то бишь это кноуледж_центр вроде как правду глаголит
производительности МТ5 хватит и на 10500 ордеров в секунду, хватило бы канала
в общем истину искал, пришлось проверить...если хочешь что то сделать - сделай это сам! )))
2020.07.25 18:00:07.293 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:00:45.273 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=37968
2020.07.25 18:01:31.405 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 18:02:09.423 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38016
2020.07.25 18:02:55.558 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 18:03:33.635 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38078
2020.07.25 18:04:21.969 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=48344
2020.07.25 18:05:00.113 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38140
2020.07.25 18:05:46.503 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46391
2020.07.25 18:06:24.573 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38062
для оптимизации скорость работы критична, поэтому и вопрос возник
в общем по ссылке нужно передавать во все методы текущую цену
UPD:
2020.07.25 19:03:37.210 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 19:04:15.201 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:04:53.188 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37984
2020.07.25 19:05:39.321 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 19:06:17.313 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:06:55.306 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37985
это не я!
это IBM Knowledge Center ! https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/coding_style_best_perf.html
там услоовия одинаковые, каждый тик нужно вызывать менеджер классов (или супер-класс, хз в общем)
и он вызывает остальные классы, которые работают по своим стратегиям
но по сабжу - вариант С реально выигрывает по скорости, то бишь это кноуледж_центр вроде как правду глаголит
Естественно выигрывает))) Но не потому, что оптимально написан, а потому, что компиляторы умные стали)) Оптимизация чистой воды. Нет в релизном коде присваивания значений аск и бид))) Вот только когда у тебя параметов для обработки станет чуть меньше чем до хрена, а бизнес логика проекта разовьется чуть больше, чем открытие ордера по индикатору, тут я и посмотрю как ты загрустишь таская через весь проект вереницы ссылок))) И да, про грех излишней оптимизации я тебе уже говорил. Поверь мне, не нужна она тебе в 98% случаев.
И да, про грех излишней оптимизации я тебе уже говорил. Поверь мне, не нужна она тебе в 98% случаев.
верю!... но спиной чую, что пока шишек не насобираю не дойдет ))))
ОК, спс, есть здравое зерно в этих изысканиях
UPD:
2020.07.25 19:03:37.210 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46141
2020.07.25 19:04:15.201 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:04:53.188 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37984
2020.07.25 19:05:39.321 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46125
2020.07.25 19:06:17.313 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.25 19:06:55.306 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=37985
Ещё так попробуйте:
Ещё так попробуйте:
2020.07.26 09:39:21.350 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46157
2020.07.26 09:39:59.402 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38046
2020.07.26 09:40:37.455 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=38063
2020.07.26 09:41:15.485 class_global (EURUSD,H1) class D : : loops = 10000000000 ms=38031
2020.07.26 09:42:01.749 class_global (EURUSD,H1) class A : : loops = 10000000000 ms=46266
2020.07.26 09:42:39.754 class_global (EURUSD,H1) class B : : loops = 10000000000 ms=38000
2020.07.26 09:43:17.753 class_global (EURUSD,H1) class C : : loops = 10000000000 ms=38000
2020.07.26 09:43:55.743 class_global (EURUSD,H1) class D : : loops = 10000000000 ms=37984