Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 10
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Средствами MQL5 я занимался расчетом дельты. Можете посмотреть статью на эту тему. Дак вот. Дельта не рассчитывается "одной строкой". Ее нужно потиково собирать. То, что Вы указали:
это вообще некорректная формула, т.к. дельта = сумма покупок + сумма продаж. За определенный период. Тиковые данные (по которым можно рассчитать дельту) идут в терминал отдельным потоком. А тот объем, что Вы видите в окне данных - это данные с биржи (другой поток). Терминал объем не рассчитывает. Соответственно и добавление "одной строки дельты" - это доп. серьезная нагрузка на терминал. Разработчики этого точно делать не будут.
не тратьте время на объяснения т.к. люди не понимают, что перенеся на сервер данный расчет, тем самым создадут реальную нагрузку на него т.к. сервер будет считать по всем доступным тикерам с биржи, а это не один или 10 тикеров, что может вывалится на реальное увеличение нагрузки на сервер, при этом я предлагал вариант замера времени вычисления (чуть выше) но предложение игнорируется т.к. с их понимания разработчики должны и все ))
кстати у вас ошибка, дельта считается как раз из ask-bid, а не сумма
не тратьте время на объяснения т.к. люди не понимают, что перенеся на сервер данный расчет, тем самым создадут реальную нагрузку на него т.к. сервер будет считать по всем доступным тикерам с биржи, а это не один или 10 тикеров, что может вывалится на реальное увеличение нагрузки на сервер, при этом я предлагал вариант замера времени вычисления (чуть выше) но предложение игнорируется т.к. с их понимания разработчики должны и все ))
кстати у вас ошибка, дельта считается как раз из ask-bid, а не сумма
Да, конечно, знаки перепутал. Просто я отмечал, что для расчета дельты нужно брать сумму покупок - сумму продаж, а не дельта += объем покупок-объем продаж.
В продолжение темы Access Violation. Вот такой код тоже приводит к краху:
При этом из распринтовки видно, что вызывается только деструктор. Т.е. никакого объекта не создано, но почему-то вызывается деструктор. В общем баги с временными объектами, находящимися в игнорируемой ветке условного оператора.
кстати у вас ошибка, дельта считается как раз из ask-bid, а не сумма
Ну раз вы считаете что расчет дельты займет 100500 человекочасов, то спорить с вами не буду - пусть терминал стагнирует.
Надеюсь разработчики насчитают поменьше.
В общем баги с временными объектами, находящимися в игнорируемой ветке условного оператора.
И в switch
и в for
также ошибка при выполнении (вызывается деструктор, а не должен)
Версия 2085.
Вывожу на график меню:
Если индикатор удаляю с графика, меню также удаляется. Деструктор удаляет меню.
Если закрываю терминал, а потом снова загружаю терминал, то меню выводится на график.
То есть деструктор:
не срабатывает.
Вот так все выглядит после загрузки в память компьютера выгруженного ранее терминала:
В МТ4 все работает. И данной ошибки там нет.
Функции
Не хватает функций для передачи значений, рассчитанных программами терминала. Просто передавать бары, тики и так далее - этого мало. Есть расчетные значения, которые уже реализованы в программах терминала. Но эти значения сложно будет создать в Питоне.
Не хватает функций для передачи значений, рассчитанных программами терминала. Просто передавать бары, тики и так далее - этого мало. Есть расчетные значения, которые уже реализованы в программах терминала. Но эти значения сложно будет создать в Питоне.
а разве массивы char передавать нельзя? делайте сериализацию/десериализацию данных и передавайте байтовые массивы данных
а разве массивы char передавать нельзя? делайте сериализацию/десериализацию данных и передавайте байтовые массивы данных
А пример кода покажите.
А пример кода покажите.
да там все просто, массив char представляете как
затем создаете динамический массив BYTE и передаете в соответствующие методы - BYTE &a_byte[]
далее на необходимые данные создаете простую структуру, если есть строки, то представляете их как статические массивы, это небольшой минус, но без этого ни как
все это оборачиваете в union, вот пример кода отработки в одну сторону
это в другую сторону
вызываемые методы из этих методов ( DpToByte(...) и ByteToDp(...) ), это та же сериализация других данных входящих в класс, который мне нужно сериализовать для сохранения в файл либо передать его куда то как байт-массив
по сути стандартная ситуация в программировании сериализыции и десериализации данных, не хватает конечно рефлексии в mql5 по типу как в C++17, тогда можно было бы не создавать под каждый тип свои структуры и объединения для сериализации-десериализации, а написать единый механизм для этого ))