MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 39

 
Roman:

Я правильно понимаю, что для передачи из Py в mt5 рассчитанных значений и массивов, таких функций не будет ?

И остаётся использовать - сетевые решения, или пилить модуль по передаче через память?

Библиотека для связи MT5 <-> Python с упором на получение данных.

Из питоновских программ в терминал идут только запросы и торговые заявки. Нет причин передавать массовые данные из питона, так как он не имеет доступа к вариативному MQL5 окружению, а строго ограничен узким интерфейсом запросов к терминалу.


У питоновской интеграции следующая область применения:

  1. получать рыночные данные чартов, позиии и историю сделок
  2. отправлять и контролировать торговые операции
  3. запускать *.py файлы прямо из навигатора
  4. привлекать разработчиков на Питоне к экосистеме Метатрейдера за счет удобности доступа к данным и полноценному трейдингу без костылей
  5. привлекать узкие группы профессиональные группы квант разработчиков из хедж фондов, инвестиционных компаний и банков, предлагая им удобную замену собственного зоопарка
  6. дать доступ к многообразию математических и AI библиотек, доступных в Питоне

Питоновская библиотека не является заменой MQL5 и мы не принимаем никаких запросов на расширение функционала.
 
Renat Fatkhullin:

Библиотека для связи MT5 <-> Python с упором на получение данных.

Из питоновских программ в терминал идут только запросы и торговые заявки. Нет причин передавать массовые данные из питона, так как он не имеет доступа к вариативному MQL5 окружению, а строго ограничен узким интерфейсом запросов к терминалу.


У питоновской интеграции следующая область применения:

  1. получать рыночные данные чартов, позиии и историю сделок
  2. отправлять и контролировать торговые операции
  3. запускать *.py файлы прямо из навигатора
  4. привлекать разработчиков на Питоне к экосистеме Метатрейдера за счет удобности доступа к данным и полноценному трейдингу без костылей
  5. привлекать узкие группы профессиональные группы квант разработчиков из хедж фондов, инвестиционных компаний и банков, предлагая им удобную замену собственного зоопарка
  6. дать доступ к многообразию математических и AI библиотек, доступных в Питоне

Питоновская библиотека не является заменой MQL5 и мы не принимаем никаких запросов на расширение функционала.

Снова эта sandbox... Возможно вы не допоняли вопрос, и решение найдётся.
Есть необходимость из скрипта Py, передавать массив в mql программу.
Причины передавать, массивы рассчитанных данных, как раз есть.
Для построения реал тайм кастомных mql графиков.
Для построения реал тайм mql индикаторов.
Для использования реал тайм расчётов в mql экспертах.
Запуск *.py файлов прямо из навигатора, не решает проблему построения профессиональных кастомных графиков в mt5.
Нужны реал тайм кастомные графики mt5, рассчитанные в Py скрипте.
Для этого нужна передача массива из Py скрипта.

 
Люди добрые, подскажите как здесь сделать отложенные ордера и если можно, то пример
 
Roman:

Есть необходимость из скрипта Py, передавать массив в mql программу.

Ответ был дан полный и четкий.

 
Renat Fatkhullin:

Ответ был дан полный и четкий.

Ответ то прочитан, но не понятна причина ограничения.
Чем контролируемые в открытом Py скрипте массивы, могут навредить mql программе?
О каком зоопарке тогда речь, если снова изгаляться и использовать костыли, те же сокеты, dll и т.д.
Создаётся искусственная преграда для создания профессиональных решений для mt5. 

 
alex.alexen:
Люди добрые, подскажите как здесь сделать отложенные ордера и если можно, то пример

Готовых ф-ций нет, но вы можете посмотреть как сделаны простые ордера в __init__.py, отложенные делаются аналогично:

# internal order send
def _RawOrder(order_type, symbol, volume, price, comment=None, ticket=None):
    order = {
      "action":    TRADE_ACTION_DEAL,
      "symbol":    symbol,
      "volume":    volume,
      "type":      order_type,
      "price":     price,
      "deviation": 10,
    }
    if comment != None:
        order["comment"] = comment
    if ticket != None:
        order["position"] = ticket
    r = order_send(order)
    return r

# Buy order                
def Buy(symbol, volume, price=None, *, comment=None, ticket=None):
    # with direct call
    if price != None:
        return _RawOrder(ORDER_TYPE_BUY, symbol, volume, price, comment, ticket)
    # no price, we try several times with current price
    for tries in range(10):
        info = symbol_info_tick(symbol)
        r = _RawOrder(ORDER_TYPE_BUY, symbol, volume, info.ask, comment, ticket)
        if r.retcode != TRADE_RETCODE_REQUOTE and r.retcode != TRADE_RETCODE_PRICE_OFF:
            break
    return r

# Sell order
def Sell(symbol, volume, price=None, *, comment=None, ticket=None):
    # with direct call
    if price != None:
        return _RawOrder(ORDER_TYPE_SELL, symbol, volume, price, comment, ticket)
    # no price, we try several times with current price
    for tries in range(10):
        info = symbol_info_tick(symbol)
        r = _RawOrder(ORDER_TYPE_SELL, symbol, volume, info.bid, comment, ticket)
        if r.retcode != TRADE_RETCODE_REQUOTE and r.retcode != TRADE_RETCODE_PRICE_OFF:
            break
    return r

поля передаваемые в order_send:

action, magic, order, symbol, volume, price, stoplimit, sl, tp, deviation, type, type_filling, type_time, expiration, comment, position, position_by

они аналогичны: https://www.mql5.com/ru/docs/trading/ordersend

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговый запрос проходит несколько стадий проверок на торговом сервере. В первую очередь проверяется корректность заполнения всех необходимых полей параметра , и при отсутствии ошибок сервер принимает ордер для дальнейшей обработки. При успешном принятии ордера торговым сервером функция OrderSend() возвращает значение true. Рекомендуется...
 

Здравствуйте.

Может быть вопрос уже задавался, но поиск (google, forum) не дал положительного результата. Мне кажеться, что у меня получалось пользоваться пакетом MetaTrader5 в jupyter notebook, установленном на ПК с ОС Ubuntu. После некоторых неприятностей с моим ПК, я его поменял, при этом HDD установил в новый. После этой процедуры я потерял связь с пакетом и при попытке установить пакет командой pip install MetaTrader5 получаю следующее сообщение:

ERROR: Could not find a version that satisfies the requirement MetaTrader5 (from versions: none)

ERROR: No matching distribution found for MetaTrader5

Будьте добры, подскажите:
1. Устаовка пакета на ПК с ОС Ubuntu возможна?
2. В случае положителььного ответа, какие могут быть предприняты мной действия для устранения получаемой при установке ошибки?

Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
MT5Tick(time=datetime.datetime(2019, 4, 1, 3, 2, 3, 512000), bid=1.5764200000000002, ask=1.57837, last=0.0, volume=0.0, flags=134) MT5Tick(time=datetime.datetime(2019, 4, 1, 3, 2, 8, 70000), bid=1.57643, ask=1.57837, last=0.0, volume=0.0, flags=130...
 
wildzes:

Здравствуйте.

Может быть вопрос уже задавался, но поиск (google, forum) не дал положительного результата. Мне кажеться, что у меня получалось пользоваться пакетом MetaTrader5 в jupyter notebook, установленном на ПК с ОС Ubuntu. После некоторых неприятностей с моим ПК, я его поменял, при этом HDD установил в новый. После этой процедуры я потерял связь с пакетом и при попытке установить пакет командой pip install MetaTrader5 получаю следующее сообщение:

ERROR: Could not find a version that satisfies the requirement MetaTrader5 (from versions: none)

ERROR: No matching distribution found for MetaTrader5

Будьте добры, подскажите:
1. Устаовка пакета на ПК с ОС Ubuntu возможна?
2. В случае положителььного ответа, какие могут быть предприняты мной действия для устранения получаемой при установке ошибки?

Нет, библиотека только для Windows версии Питона, так как она работает в связке с Windows версией терминала.

 
Renat Fatkhullin:
Пишем новую версию библиотеки интеграции, там добавим явный выбор и авторизацию на нужном счете.

Многоверсионность поддерживается через указание пути к конкретной версии интерпретатора в настройках редактора.

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

Отладчика не будет, отлаживаться можно в других средах. У нас нет задачи делать полноценный отладчик для Питона, а лишь его среду исполнения и интеграцию с терминалом.


Будет позже? Или?

 
Almaz:

Готовых ф-ций нет, но вы можете посмотреть как сделаны простые ордера в __init__.py, отложенные делаются аналогично:

поля передаваемые в order_send:

они аналогичны: https://www.mql5.com/ru/docs/trading/ordersend

Откуда это _init_.py ? Где его посмотреть?

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