Группа пользователей MetaTrader 5 Python - краткое содержание - страница 7

 

Всем привет

Я недавно начал использовать пакет MetaTrader5 python. Все работает отлично, получаю данные, получаю открытые позиции. Проблема заключается в отправке ордеров. Я попробовал пример и получил следующее сообщение:


In [4]: import MetaTrader5 as mt5

In [5]: mt5.initialize()

Out[5]: True


In [6]: mt5.Sell("EURUSD", 0.001)

Out[6]: OrderSendResult(retcode=10030, deal=0, order=0, volume=0.0, price=0.0, bid=0.0, ask=0.0, comment='Unsupported filling mode', request_id=0, retcode_external=0)


похоже, что у metatrader есть проблема со способом отправки ордера. Пожалуйста, помогите

 
pip install MetaTrader5

ERROR: Не удалось найти версию, удовлетворяющую требованию MetaTrader5 (из версий: нет)

ERROR: Не найдено подходящего дистрибутива для MetaTrader5


Я не смог установить MetaTrader5 с помощью pip install. Ошибка выглядит следующим образом.

Кто-нибудь может мне помочь? Большое спасибо.

 
nvicki112:

ОШИБКА: Не удалось найти версию, удовлетворяющую требованию MetaTrader5 (из версий: нет)

ERROR: Не найдено подходящего дистрибутива для MetaTrader5


Я не смог установить MetaTrader5 с помощью pip install. Ошибка выглядит следующим образом.

Кто-нибудь может мне помочь? Большое спасибо.

Я думаю, что лучше подождать - из-за следующего:

В следующую пятницу мы сделаем релиз MT5, одновременно обновляя документацию.

Мы опишем это позже в документации.

Так что лучше подождать пятницы, когда все (новые функции и т.д.) будет описано в документации с примерами.

 
Пожалуйста, разработчик, сделайте дистрибутив для Python 3.5.0. Это скромная просьба. Все мои коды работают на Python 3.5.0, и мне придется менять весь проект, если я перейду на другую версию Python. Пожалуйста, рассмотрите мою просьбу.
 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaTrader 5 Python User Group - как использовать Python в Metatrader

Ренат Фатхуллин, 2020/02/18 22:05

Бета-версия терминала 2323 с новыми возможностями доступна на тестовом сервере (сервер MetaQuotes-Beta, адрес 78.140.180.203-00-0043). Публичная бета-версия будет доступна завтра.

Также мы выпустили новую версию MetaTrader 5.0.20 для Python (pip install --upgrade metatrader5) с новым синтаксисом для переключения счетов:

import MetaTrader5 as mt5

mt5.initialize(timeout= 10000 )
mt5.initialize(login= 25035662 , password= "oxeb7lpb" , server= "MetaQuotes-Demo" )
mt5.login( 25035662 )
mt5.login( 25035662 , timeout= 10000 )
mt5.login( 25035662 , "oxeb7lpb" )
mt5.login( 25035662 , password= "oxeb7lpb" )
mt5.login( 25035662 , password= "oxeb7lpb" , server= "MetaQuotes-Demo" )

Теперь авторизацию можно указывать прямо в инициализации, как в полном, так и в сокращенном виде.

Функция ожидания была отменена, и теперь полный цикл инициализации с ожиданием выполняется прямо в initialize, где также можно задать таймаут в миллисекундах.

Библиотека Python уже гарантированно находит последнюю активную копию терминала, даже если он был установлен в портативном (key / portable) режиме.


Программы на Python уже отображаются прямо в навигаторе:


В релизе, который выйдет в эту пятницу, их уже можно будет запускать как обычные MQL5-скрипты, и они будут прикрепляться к графикам.


В будущем мы добавим в библиотеку Python доступ ко всем (в том числе пользовательским) индикаторам в режиме чтения. Это сделает работу на Python более продуктивной. Но это не приоритет, мы сделаем это гораздо позже.


 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaTrader 5 Python User Group - как использовать Python в Metatrader

Ренат Фатхуллин, 2020/02/18 22:15

Параллельно мы расширяем возможности редактора и в следующем релизе (не за горами пятница) будет полноценная возможность использовать Clang / LLVM и Microsoft Visual Studio для компиляции C++ программ:


Возможно, будет включен и C #.


Была проделана большая работа по полноценному использованию баз данных SQLite: SQLite: нативная работа с базами данных SQL на MQL5

Это позволяет удобно оперировать и обмениваться большими объемами данных между различными системами и внутри терминала.


 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaTrader 5 Python User Group - как использовать Python в Metatrader

Ренат Фатхуллин, 02/20/19 08:53

В рамках проектов можно указать множество целевых параметров:



DLL / EXE файлы имеют пользовательские настройки определения, библиотеки и дополнительные параметры для компилятора:

Линкер автоматически используется Clang или Visual Studio. В явном виде его указывать не нужно.


 

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

MetaTrader 5 Python User Group - как использовать Python в Metatrader

Ренат Фатхуллин, 02/20/19 09:05

Build 2323 уже доступен на MetaQuotes-Demo и по команде обновления на бета-версии из меню помощи.

Не забудьте, пожалуйста, обновиться до библиотеки MetaTrader 5.0.20 для Python.


 
similodingile:

Всем привет

Я недавно начал использовать пакет MetaTrader5 python. Все работает отлично, получаю данные, получаю открытые позиции. Проблема заключается в отправке ордеров. Я попробовал воспользоваться предоставленным примером и получил следующее сообщение:


In [4]: import MetaTrader5 as mt5

In [5]: mt5.initialize()

Out[5]: True


In [6]: mt5.Sell("EURUSD", 0.001)

Out[6]: OrderSendResult(retcode=10030, deal=0, order=0, volume=0.0, price=0.0, bid=0.0, ask=0.0, comment='Unsupported filling mode', request_id=0, retcode_external=0)


похоже, что у metatrader есть проблема со способом отправки ордера. Пожалуйста, помогите

Проблема связана с FXPro. Сменил счет на FXTIME и все заработало нормально.
 

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Новая платформа MetaTrader 5 Build 2340: управление настройками счета в тестере и расширенная интеграция с Python

MetaQuotes, 2020.02.20 14:59

Обновление платформы MetaTrader 5 выйдет в пятницу, 21 февраля 2020 года. В новой версии произойдут следующие изменения:

  1. MetaEditor: Добавлен новый функционал для работы с базами данных SQLite.

    В предыдущем обновлении платформы мы внедрили поддержку операций с базами данных SQLite непосредственно из MQL5. Основные функции стали доступны через пользовательский интерфейс MetaEditor:

    • Создание и подключение баз данных
    • Просмотр таблиц и выполнение быстрых запросов к данным
    • Создание и выполнение SQL-запросов, откат изменений

    Как это работает
    Функции быстрого создания базы данных доступны из Мастера MQL5. Вы можете легко создать свою первую таблицу и определить ее поля.




    После создания базы данных вы перейдете в новый раздел Навигатора, в котором представлены команды для управления данными.

    Таблицы базы данных отображаются в левом окне. Дважды щелкните по названию таблицы, чтобы быстро запросить первые 1000 записей. В этом разделе навигатора можно также создавать и открывать другие базы данных, а также работать с таблицами.

    Управление базой данных осуществляется в главном окне редактора, в котором можно заполнять таблицы, искать и выбирать данные, вводить SQL-запросы и выполнять другие операции:



    Подробнее об операциях MetaTrader 5 с базами данных читайте в статье"SQLite: нативная работа с базами данных SQL в MQL5".

  2. MetaEditor: Расширенная поддержка мультиязычных проектов. Это обновление расширяет возможности работы с Python-скриптами:

    • Теперь такие скрипты можно создавать с помощью Мастера MQL5, а в код можно мгновенно добавлять необходимые библиотечные зависимости.
    • В навигатор добавлены специальные иконки, а в редакторе доступен соответствующий синтаксис.
    • При запуске скрипта через MetaEditor в разделе "Ошибки" появляются сообщения из консоли Python (stdout, stderr).




    Для запуска скрипта нажмите кнопку "Компилировать" в редакторе:





    Для работы с Python не забудьте указать путь к нему в разделе Настройки \ Компиляторы в MetaEditor. Чтобы включить использование библиотеки MetaTrader 5, установите ее с помощью следующей команды:
    pip install MetaTrader 5
    Подробнее об интеграции Python читайте в соответствующей документации.

  3. MQL5: Полностью переработанная интеграция с Python. Обновление включает в себя множество новых функций и новое именование команд.

    Новое именование
    Существующие команды были переименованы следующим образом:
    MT5Initialize       -> initialize
    MT5Shutdown         -> shutdown
    MT5TerminalInfo     -> terminal_info
    MT5Version          -> version
    MT5CopyRatesFrom    -> copy_rates_from
    MT5CopyRatesFromPos -> copy_rates_from_pos
    MT5CopyRatesRange   -> copy_rates_range
    MT5CopyTicksFrom    -> copy_ticks_from
    MT5CopyTicksRange   -> copy_tick_range

    Новые команды
    Расширен список поддерживаемых команд. Добавлены торговые функции, а также функции для работы с историей торгов и для получения данных о финансовом символе и текущем счете.

    • Account_info() получает информацию о текущем счете. Аналог AccountInfoInteger, AcountIndoDouble и AccountInfoString.
    • positions_total() получает количество открытых позиций. Аналог PositionsTotal.
    • positions_get(symbol, ticket) получает открытые позиции по символу или тикету.
    • orders_total() получает количество ордеров. Аналог OrdersTotal.
    • orders_get(symbol, ticket) получает открытые ордера по символу или тикету.
    • history_orders_total(from, to) получает количество ордеров в указанном историческом временном интервале.
    • history_orders_get(from, to, position, ticket) получает ордера из указанного исторического временного интервала, по тикету или отфильтрованные по позиции.
    • history_deals_total() получает количество сделок в истории. Аналог HistoryDealsTotal.
    • history_deals_get(from, to, position, ticket) получает сделки из указанного исторического временного интервала, по тикету или отфильтрованные по позиции.
    • symbol_info(symbol) получает информацию о финансовом инструменте. Аналог SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
    • symbol_info_tick(symbol) получает информацию о последнем тике по символу. Аналог SymbolInfoTick.
    • symbol_select(symbol, enable) включает/выключает символ в Market Watch. Аналог SymbolSelect.
    • order_check(request) проверяет маржу ордера. Аналог OrderCheck.
    • order_send(request) отправляет ордер на сервер. Аналог OrderSend.
    • order_calc_margin(action, symbol, volume, price) рассчитывает маржу для ордера. Аналог OrderCalcMargin.
    • order_calc_profit(action, symbol, volume, price_open, price_close) вычисляет прибыль. Аналог OrderCalcProfit.

    Запуск скриптов Python на графиках
    Python-скрипты можно запускать непосредственно на графиках платформы, аналогично обычным MQL5-программам. Такие скрипты отмечены специальными иконками в Навигаторе.



    Сообщения о скриптах будут отображаться в разделе "Инструменты \ Эксперты". Если в скрипте используется библиотека MetaTrader 5, он может получать данные о торговых символах и счетах, а также выполнять торговые операции.

    Python-скрипты могут выполняться на одном графике параллельно с другими MQL5-скриптами и экспертами. Чтобы остановить скрипт с зацикленным исполнением, удалите его с графика.

    Дополнительная защита
    Чтобы включить дополнительную защиту счета при использовании сторонних библиотек Python, вы можете воспользоваться опцией "Отключить автоматическую торговлю через внешние Python API" в настройках терминала.




    Скрипты Python могут совершать торговые операции только при отключенной опции.

  4. MQL5: Значительно ускорен перезапуск MQL5-программ и воссоздание пользовательских индикаторов из MQL5-программ. В некоторых случаях операции выполняются в 100 раз быстрее.
  5. MQL5: Добавлены функции для работы с базами данных:

    DatabaseImport
    Импортирует данные из файла в таблицу.
    long  DatabaseImport(
       int           database,          // database handle received in DatabaseOpen
       const string  table,             // table name to insert data to
       const string  filename,          // file name to import data from
       uint          flags,             // combination of flags
       const string  separator,         // data separator
       ulong         skip_rows,         // number of first rows to skip
       const string  skip_comments      // string of characters, which define comments
       );

    DatabaseExport
    Экспортирует таблицу или результат SQL-запроса в CSV-файл. Файл создается в кодировке UTF-8.
    long  DatabaseExport( 
       int           database,           // database handle received in DatabaseOpen 
       const string  table_or_sql,       // table name or SQL query
       const string  filename,           // CSV file name for data export
       uint          flags,              // combination of flags
       const string  separator           // data separator in the CSV file
       );

    DatabasePrint
    Печать таблицы или результата SQL-запроса в журнал Experts.
    long  DatabasePrint(
       int           database,          // database handle received in DatabaseOpen
       const string  table_or_sql,      // table or SQL query
       uint          flags              // combination of flags
       );

  6. MQL5: Добавлена функция FileSelectDialog, которая вызывает системный диалог создания/открытия файла или папки.
    int  FileSelectDialog(
       string   caption,              // window title
       string   initial_dir,          // initial directory
       string   filter,               // extension filter
       uint     flags,                // combination of flags
       string&  filenames[],          // array with file names
       string   default_filename      // default file name
       );
    Новая функция обеспечивает эффективное взаимодействие пользователя с MQL5-программой.

  7. MQL5: Новое значение DEAL_FEE в перечислении ENUM_DEAL_PROPERTY_DOUBLE. Оно используется для комиссии за сделку. Значение указывает на отдельный тип комиссии, взимаемой брокером.

  8. Тестер: Добавлена функциональность для задания пользовательских настроек торгового счета при тестировании стратегии, таких как торговые ограничения, настройки маржи и комиссии. Новые функции предоставляют расширенные возможности для моделирования различных торговых условий.




    Общие настройки
    В этом разделе вы можете задать максимальное количество открытых ордеров и позиций, которые могут одновременно существовать на счете. Кроме того, вы можете настроить сессии, во время которых программа не имеет права торговать.


    Маржа
    Раздел позволяет настроить правила резервирования маржи и системы учета позиций, которые будут использоваться при тестировании:

    • Риск-менеджмент - модель управления рисками: Внебиржевая и биржевая модель, системы неттинга и хеджирования. Подробнее об этом читайте в Документации.
    • Уровень маржинального требования - при достижении этого уровня счет переходит в состояние Margin Call.
    • Уровень Stop Out - при достижении этого уровня все ордера отменяются, а все торговые позиции закрываются. Эти уровни могут быть указаны в процентах и в деньгах. Если выбрано значение "В деньгах", уровни определяются как стоимость капитала счета. Если выбрано значение "В процентах", то уровни определяются как значение "Маржинального уровня" счета (Средства/Маржа*100).
    • Нереализованная прибыль - учет текущей плавающей прибыли/убытка в свободной марже:
      • Не использовать нереализованную прибыль/убыток - не включать в расчет прибыли/убытки открытых позиций.
      • Использовать нереализованную прибыль/убыток - включать в расчет прибыль/убыток открытых позиций.
      • Использовать нереализованную прибыль - включать только прибыль.
      • Использовать нереализованный убыток - включать только убыток.
    • Ежедневная фиксированная прибыль - учет ежедневной фиксированной прибыли/убытка клиента в свободной марже:
      • Использовать ежедневную фиксированную прибыль/убыток - включать в свободную маржу прибыль и убыток, полученные в течение торгового дня.
      • Использовать ежедневный фиксированный убыток - включать только убыток, полученный в течение торгового дня. В течение дня полученная прибыль накапливается в поле специального счета ("Заблокировано"). В конце торгового дня накопленная прибыль освобождается (обнуляется) и добавляется к балансу счета (включается в свободную маржу).
    • Снимать фиксированную прибыль в конце дня - эта опция становится доступной, только если выбрана опция "Использовать ежедневный фиксированный убыток". Если она включена, накопленная прибыль будет высвобождаться (и таким образом включаться в свободную маржу) в конце дня. В противном случае эта сумма прибыли останется заблокированной.


    Комиссия
    В данном разделе осуществляется контроль над комиссиями, взимаемыми за все торговые операции.

    • Комиссия может быть одноуровневой и многоуровневой, то есть быть одинаковой вне зависимости от объема/оборота сделки или зависеть от их размера. Соответствующие данные отображаются в терминале.
    • Комиссия может взиматься сразу при совершении сделки или в конце торгового дня/месяца.
    • В зависимости от направления сделки могут взиматься различные комиссии: за вход, за выход или за оба вида операций.
    • Комиссия может взиматься за лот или сделку.
    • Комиссия может рассчитываться в деньгах, процентах или пунктах.



  9. Тестер: Оптимизированная и ускоренная работа в режиме Сканера рынка, во время которой выполняется несколько проходов тестирования для всех символов, доступных в Обзоре рынка.
  10. Тестер: Размер сделки или позиции теперь учитывается при расчете прибыли в пунктах. Ранее расчет производился только на один лот.
  11. Тестер: Улучшен контроль над графиком результатов оптимизации. Для увеличенного графика оптимизации добавлена опция прокрутки. Двойной щелчок на точке графика выбирает соответствующий результат в таблице результатов тестирования.
  12. MetaEditor: Добавлено отображение файлов баз данных SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) в Навигаторе.
  13. Метаредактор: Исправлены ошибки сохранения свойств проекта.
  14. Обновлена документация.

Новая версия MetaTrader 5 будет доступна через систему LiveUpdate.


Причина обращения: