Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дело не в кэшировании, а в проверке и валидации. Даже если MQL не кэширует график, он должен быть признан недействительным, а значит, CHARTEVENT_CHART_CHANGE неизбежен. Я не могу сам эффективно проверять метрики графика, для этого нужен таймер на 1 мс для частой проверки, поэтому CHARTEVENT_CHART_CHANGE предусмотрен, но он просто не отражает всех изменений. Иногда он также просто забывает о них. Это баг, проверенный и легко тестируемый.
Кроме того: Когда кому-то нужна максимальная цена, ему также нужна и минимальная цена, и минимальное время, и максимальное время и т.д. Вам никогда не нужно только одно значение, вам нужны все. Поэтому необходимо предусмотреть функцию, которая заполнит struct всеми данными сразу. Таким образом, будет легко кэшировать и находить изменения.
Все остальное, особенно в том виде, в котором это происходит сейчас, с отсутствующими событиями, является чистой - и огромной - тратой производительности.
Факт.
Эффективный код был бы таким:У меня это давно реализовано в библиотеке iCanvas.
автоматически заполняется один экземпляр W структуры Window при каждом событии CHARTEVENT_CHART_CHANGE
если делать через DLL то всё работает :-)
на правда Canvas тут не при чём...
PS/ точнее - работает ровно до моментов взаимодействий с чартом. Диалоги любые, хоть в браузер, но интерактивно двигать линию на чарте невозможно...ChartEvent и всё что с ним зарезано
DLL я писать умею с детского садика, чем они могут помочь, не понял. Ставлю вопрос по другому: как сделать GUI с кнопками и полями ввод без использования ChartEvent? чтобы это работало в тестере?
На базе MT5 имеются самодельные Тестеры (на базе терминала, а не штатного тестера), где вы можете не только на кнопки нажимать, но и использовать все индикаторы, графические объекты и даже возвращаться по времени обратно и управлять ценой. Т.е. возможности значительно превосходят MT4 и решения вне MQ-системы. Без DLL, конечно.
DLL я писать умею с детского садика, чем они могут помочь, не понял. Ставлю вопрос по другому: как сделать GUI с кнопками и полями ввод без использования ChartEvent? чтобы это работало в тестере?
Я собираюсь сделать панель для Маркета, так что нужен стандартный тестер. Или придется делать демо-версию для проверки панели на демо-счете.да, придётся хоть что-нибудь да делать а не только собираться :-)
сначала сделать панель и потом дать тестово-демонстрационную версию. Потому-что в тестере оно не работает by-design.
DLL я писать умею с детского садика, чем они могут помочь, не понял. Ставлю вопрос по другому: как сделать GUI с кнопками и полями ввод без использования ChartEvent? чтобы это работало в тестере?
Я собираюсь сделать панель для Маркета, так что нужен стандартный тестер. Или придется делать демо-версию для проверки панели на демо-счете.В тестере никакая нормальная панель работать не будет. Тем более на канвасе. Есть убогие решения для МТ4, но для МТ5 нет. Однако в МТ4 можно наладить связь между тестером и графиком через ресурс. Я делал это и все работало. После перехода на МТ5 повторить тот же трюк не пытался. Наладить связь между советниками через ресурсы в МТ5 сложнее. Они могут только читать информацию в ресурсах друг друга, но не писать. Такое "общение" проблематично. Но главная проблема в другом. Неизвестно будет ли работать этот механизм между советником в тестере MT5 и панелью на графике МТ5. Чтобы проверить эту теорию нужно попробовать что-нибудь записать в ресурс из советника в тестере, и затем прочитать написанное через советника на графике. Если удасться - значит будет работать нормально и можно писать решение. Но я сильно сомневаюсь что это получится. Скорее всего из тестера МТ5 невозможно читать ресурс.
Скорее всего из тестера МТ5 невозможно читать ресурс.
Если проблема в каталогах - симлинки рулят.
Если проблема в каталогах - симлинки рулят.
Каждому свое.
В тестере никакая нормальная панель работать не будет. Тем более на канвасе. Есть убогие решения для МТ4, но для МТ5 нет. Однако в МТ4 можно наладить связь между тестером и графиком через ресурс. Я делал это и все работало. После перехода на МТ5 повторить тот же трюк не пытался. Наладить связь между советниками через ресурсы в МТ5 сложнее. Они могут только читать информацию в ресурсах друг друга, но не писать. Такое "общение" проблематично. Но главная проблема в другом. Неизвестно будет ли работать этот механизм между советником в тестере MT5 и панелью на графике МТ5. Чтобы проверить эту теорию нужно попробовать что-нибудь записать в ресурс из советника в тестере, и затем прочитать написанное через советника на графике. Если удасться - значит будет работать нормально и можно писать решение. Но я сильно сомневаюсь что это получится. Скорее всего из тестера МТ5 невозможно читать ресурс.
У меня скальпер 2-х платформенный. Используются кнопки с классом, производным от стандартного CButton. Проверка состояния кнопки проводится стандартно в OnChartEvent. Никаких убогих решений, все стандартно. И линии стандартные Horizontal Line. В тестере МТ4 все работает, в МТ5 нет. Отсюда и возник пост, наверняка же кто-то победил эту бяку с тестером МТ5.
У меня скальпер 2-х платформенный. Используются кнопки с классом, производным от стандартного CButton. Проверка состояния кнопки проводится стандартно в OnChartEvent. Никаких убогих решений, все стандартно. И линии стандартные Horizontal Line. В тестере МТ4 все работает, в МТ5 нет. Отсюда и возник пост, наверняка же кто-то победил эту бяку с тестером МТ5.
Через ресурс можно передавать большой обьем информации из тестера в советник на графике и торговать с помощью панели руками тоже. Система безусловно более сложная чем проверка состояний кнопок "мертвой" панели в тестере, но возможностей с ней на порядок больше.
Где бы почитать про ресурсы, а то я по нулям, не нужны были. Может, у вас есть пример?
Где бы почитать про ресурсы, а то я по нулям, не нужны были. Может, у вас есть пример?