Группа пользователей MetaTrader 5 Python - краткое содержание - страница 14
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Функции copy_tick теперь не работают. last_error() возвращает (1, "success"), однако функции возвращают только пустые массивы.
Версия терминала: 2375
Версия пакета Python: 5.0.31
Тест для воспроизведения:
Вы видели CopyTicksRange?
Note
Функция CopyTicks() позволяет запрашивать и анализировать все полученные тики. Первый вызов CopyTicks() инициирует синхронизацию базы данных тиков символа, хранящейся на жестком диске. Если локальная база данных не содержит всех запрошенных тиков, то недостающие тики будут автоматически загружены с торгового сервера. Будут синхронизированытики, начиная с даты, указанной в CopyTicks(), до текущего момента. После этого все тики, поступающие для данного символа, будут добавляться в базу данных тиков, поддерживая ее в синхронизированном состоянии.
Попробуйте вызвать еще один раз позже
Сообщение об ошибке - версия пакета 5.0.30
1. Функции[history_deals_get, history_deals_total, history_orders_get, history_orders_total, ... все copy_funcs] имеют фундаментальный недостаток, и это параметр "from". From является зарезервированным ключевым словом в python и не может быть использован в качестве имени параметра. Это препятствует созданию питоновских функций-адаптеров из-за конфликта имен. Следующий вариант даже не скомпилируется:
5. history_deals_get (и, возможно, другие функции) не соответствуют своему типу возврата. Некоторые функции возвращают None , когда нет данных для возврата, а другие возвращают пустой кортеж. Все эти функции должны быть последовательными. Все они должны возвращать один и тот же объект в случае отсутствия данных - вместо того, чтобы одни возвращали None , а другие - пустой кортеж.
1. У нас нет именованного параметра"from" в этих функциях, все параметры диапазона неименованные.
5. history_deals_get, history_orders_get отличаются от orders_get, positions_get тем, что у них нет параметров по умолчанию и они не могут быть вызваны с пустыми параметрами. В такой ситуации они терпят неудачу и возвращают Null.
Вы видели CopyTicksRange?
Попробуйте вызвать еще раз позже
Это все еще не работает для меня. Есть другие предложения?
Проверено с:
Это все еще не работает для меня. Есть другие предложения?
Проверено с:
Какой символ "EPM20"? Есть ли у него тики в 3мин?
Мы проверяли на стандартных символах, все работает нормально:
Хорошо. Я нашел причину, по которой это не работает, и мне интересно узнать, почему.....
На самом деле проблема была в этой строке кода.
time_to = datetime.utcnow()
Где мой брокер работает по времени UTC, а я по EST. Исправление заключалось в использовании
time_to = datetime.now()
...но я действительно не уверен, как или почему это работает. Есть идеи?
1. We don't have "from" named parameter in this functions, all range parameters are unnamed.
5. history_deals_get, history_orders_get отличаются от orders_get, positions_get тем, что у них нет параметров по умолчанию и они не могут быть вызваны с пустыми параметрами. В такой ситуации они терпят неудачу и возвращают Null.
Я понял это, посмотрев на пакет и осознав, что это ограничение C-функций. Я создаю пакет адаптера, чтобы все основные функции API могли работать с ключевыми словами args. Вы не думали о том, чтобы включить в пакет файл-заглушку с подсказкой типов?
Я создал питоновую обертку для замены пакета MetaTrader5. Она запускает python поверх пакета MetaTrader5 и делает интерфейс API немного более питоническим.
Особенности включают:
См. подробнее:
https://pypi.org/project/pymt5adapter/
https://github.com/nicholishen/pymt5adapter
Еще не поздно попросить изменить API, чтобы он возвращал объекты dict вместо объектов namedtuple? Все объекты namedtuple, которые в настоящее время возвращаются из API, не могут быть pickled, что нарушает многопроцессорность. Поэтому все данные, возвращаемые из API, необходимо прогонять через рекурсивную функцию, которая затрагивает каждую точку данных, чтобы убедиться, что все вложенные namedtuple преобразуются обратно в словари, что крайне неэффективно.
Здравствуйте,
Я не смог установить MetaTrader5 с помощью:
pip install MetaTrader5
Я получил следующую ошибку:
ERROR: Не удалось найти версию, удовлетворяющую требованию MetaTrader5 (из версий: нет)
ERROR: Не найдено подходящего дистрибутива для MetaTrader5
Учитывая, что я работаю на ноутбуке MAC и у меня Python 3.7.6.
Заранее спасибо за решение