MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 39

 
Roman:

我正确的理解是,对于从Py到mt5的计算值和数组的传输,不会有这样的功能?

而它是留给使用--网络解决方案,还是看到一个模块通过内存传输?

用于MT5 <-> Python通信的库,重点是获取数据。

只有查询和交易请求才会从python程序进入终端。没有理由从python中传输大量数据,因为它无法访问可变的MQL5环境,并且严格限制在向终端查询的狭窄界面上。


Python集成有以下应用范围。

  1. 接收市场数据图表、头寸和历史数据
  2. 发送和监测交易
  3. 直接从导航器运行*.py文件
  4. 吸引Python开发人员加入Metatrader生态系统,因为他们可以方便地访问数据,并且可以进行全面的交易,不需要拐杖。
  5. 吸引来自对冲基金、投资公司和银行的狭窄的专业量化开发人员群体,为他们提供一个方便的替代自己的动物园
  6. 提供对Python中各种数学和人工智能库的访问。

Python库不是MQL5的替代品,我们不接受任何功能扩展的请求。
 
Renat Fatkhullin:

用于MT5 <-> Python通信的库,重点是数据采集。

只有查询和交易请求从Python程序进入终端。没有理由从Python中传输大量数据,因为它不能访问可变的MQL5环境,并且严格限制在向终端请求的狭窄界面上。


Python集成有以下应用范围。

  1. 接收市场图表数据、头寸数据和交易记录
  2. 发送和监测交易
  3. 直接从导航器运行*.py文件
  4. 吸引Python开发人员加入Metatrader生态系统,因为他们可以方便地访问数据,并且可以进行全面的交易,不需要拐杖。
  5. 吸引来自对冲基金、投资公司和银行的狭窄的专业量化开发人员群体,为他们提供一个方便的替代自己的动物园
  6. 提供对Python中各种数学和人工智能库的访问。

Python库不是MQL5的替代品,我们不接受任何功能扩展的请求。

又是那个沙盒......也许你没有理解这个问题,可以找到一个解决方案。
有一个需要从Py脚本中传递一个数组到mql程序。
有理由传递,计算数据的数组。
建立实时的自定义mql图表。
要建立实时的mql指标。
对于在mql专家中使用实时计算。
直接从导航器运行*.py文件并不能解决在mt5中建立专业的自定义图表的问题。
你需要在Py脚本中计算的mt5自定义实时图表。
为此,你需要从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. Рекомендуется...
 

你好。

可能这个问题已经被问过了,但搜索(谷歌、论坛)没有得到肯定的结果。我想我可能已经能够在我的Ubuntu电脑上安装的jupyter笔记本上使用MetaTrader5。在我的电脑出现一些问题后,我换了它,并安装了一个新的硬盘。 在这个过程中,我失去了与软件包的连接,当我试图用pip install MetaTrader5命令安装该软件包时,我得到了以下信息。

错误:找不到满足MetaTrader5要求的版本(来自版本:无)。

错误:没有找到匹配的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:

你好。

可能这个问题已经被问过了,但搜索(谷歌、论坛)没有得到肯定的结果。我想我可能已经能够在我的Ubuntu电脑上安装的jupyter笔记本上使用MetaTrader5。在我的电脑出现一些问题后,我换了它,并安装了一个新的硬盘。在这个过程中,我失去了与软件包的连接,当我试图用pip install MetaTrader5命令安装该软件包时,我得到了以下信息。

错误:找不到满足MetaTrader5要求的版本(来自版本:无)。

错误:没有找到匹配的MetaTrader5的发行版本

敬请指教。
1.有可能在装有Ubuntu的电脑上安装该软件包吗?
2.如果是,我可以做什么来纠正我在安装时收到的错误?

不,这个库只适用于Windows版本的Python,因为它与Windows版本的终端一起工作。

 
Renat Fatkhullin:
我们将编写一个新版本的集成库,并在那里增加对所需账户的明确选择和授权

通过在编辑器设置中指定一个特定版本的解释器的路径,可以支持多版本。

软件包是手动安装的,这不是环境的问题。自动地做这件事,而且是在不了解的用户群众身上做这件事,就更加危险了。

将没有调试器,你可以在其他环境中调试。我们没有任务为Python制作一个成熟的调试器,只是它的执行环境和与终端的整合。


以后还会有吗?还是?

 
Almaz:

没有现成的函数,但你可以 在__init__.py中 看到简单的订单是如何完成的 待定的订单也是类似地完成。

传递给order_send的字段。

他们是相似的:https://www.mql5.com/ru/docs/trading/ordersend

_init_.py是从哪里来的?我在哪里可以看到它?