Ошибки, баги, вопросы - страница 2722
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Такого случая в принципе быть не должно - вопрос должен был быть решен еще на уровне компилятора (как в C++). А тут получается вроде как можно и как следствие обсуждение на несколько страниц
однозначно баг... но это наверное! )))
имхо, константные выражения должны быть известны на момент компиляции, статические - при инициализации приложения в очередности описания
а вот эта схема в MQL, где вроде как и есть контроль за константами, но константы я могу в рантайм сам назначить, причем можно использовать в качестве инициализации вызов функции, примерно так:
и вот это "константа" может быть в локальной видимости.... в каком месте это становится константным выражением и как это помогает.... не знаю, не понимаю я этого без мануалов, нет описания модели памяти - нет смысла в этом, ну максимум использовать как положено - инициализировать константой во всех конструкторах , тогда компилятор будет помогать предупреждением если случайно решишь модифицировать в дальнейшем это поле
а вот эта схема в MQL, где вроде как и есть контроль за константами, но константы я могу в рантайм сам назначит
Сколько можно позориться элементарными незнаними основ С++?
такой пример, вообще с толку сбивает:
2020.04.23 21:40:04.474 tst (EURUSD,H1) a = 1.07892
2020.04.23 21:40:04.546 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:04.585 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.254 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.305 tst (EURUSD,H1) a = 1.07893
2020.04.23 21:40:05.306 tst (EURUSD,H1) a = 1.07892
Есть две программы, работающие одновременно с одним и тем же файлом. Та, что записывает, использует флаги FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ . Та, что читает - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ. Несмотря на то, что первая программа периодически сохраняет файл с помощью FileFlush, вторая видит длину файла только на момент открытия. Пробовал делать FileSeek взад-вперед - не помогает.
Вопрос: как сделать, чтобы программа, читающая файл, подхватывала дозаписываемые данные?
Это кажется ошибкой, об этом сообщалось некоторое время назад на английском форуме. У меня не было времени, чтобы сообщить об этом здесь.
Разве разработчики не читают английский форум?
Есть две программы, работающие одновременно с одним и тем же файлом. Та, что записывает, использует флаги FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ. Та, что читает - FILE_READ|FILE_BIN|FILE_SHARE_WRITE|FILE_SHARE_READ. Несмотря на то, что первая программа периодически сохраняет файл с помощью FileFlush, вторая видит длину файла только на момент открытия. Пробовал делать FileSeek взад-вперед - не помогает.
Вопрос: как сделать, чтобы программа, читающая файл, подхватывала дозаписываемые данные?
Эти две программы в одном терминале или в двух разных?
Методы объекта из массива объектов, переданного по ссылке не отрабатывают.
Пример:
Эти две программы в одном терминале или в двух разных?
В одном терминале. Пишет данные эксперт, читает индикатор. Висели на разных чартах, но очевидно, что могут быть и на одном (если это важно). Билд 2380.
VS2019
x = 12345
a.a = 12345
хм, все работает как в MQL5
ОК, забираю свои слова обратно, в Шарпе это не скомпилируется
Ну вам же ещё и конструктор всунули. Сами решайте, конечно, но структуры - сишные сущности, модель там другая - пассивные сущности с внешней логикой (фцнкции).
Совсем необязательно. Почему именно сишные? Как насчёт C# ? - к нему как-раз таки ближе по смыслу. Все разговоры о пассивности структур - это всё архаические представления, имхо. Считаю, что, как минимум, конструктор обязан быть у каждого типа. Неинициализированные поля - это зло, от которого нужно уходить.
fxsaber
В вашем случае нужно делать фабричный метод по созданию массива структур, т.е. примерно так:
И там уже одним из предложенных ранее способов заполнять элементы массива.
столкнулся со следующей незадачей. Индикатор рисует свечи
Он накинут на график. Также работает советник, читающий буфера этого индикатора
Так вот залогировав и заскринив этапы, обнаружил что частенько индикатор отрисовывает свечи с запаздыванием.
Т.е. уже несколько тиков назад (до пары минут точно) он просчитал и обновил буфера, и советник данные из них читает
(и сов и индюк пишут это в лог). Но на графике видим старую картину. Вот например, скрин сделан в тот момент, когда образовался красный столбик вниз, пробивший лоу предыдущего. Но на графике видим только предыдущий красный, и недорисованный зеленый, (он уже по факту больше на два бокса).
а вот какая фактически картинка, она дорисовалась позже. Видим пробитие лоу, оно и инициировало запись скриншота. По логам все чётко.
Кто подскажет в чём дело и как ускорить обновление графика? Функцию ChartRedraw вызываю из советника, но всё равно пару минут задержка возникает.
Две минуты как-то многовато, даже не представлю причины. Расчёты не настолько космические чтобы так тормозить.