MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 85 1...7879808182838485868788 新评论 [删除] 2021.02.10 23:03 #841 Sivoraksha-ia: 很奇怪,但一张空桌子也到了。不需要像Quicksilver那样在终端本身打开任何东西来使卸货工作? 任何具有所需对数的图表(用于刻度线)。 yuribr 2021.02.11 14:27 #842 大家好。 我对使用Python API的order_send()请求后返回的OrderSendResult 结构有一个问题。返回的字段之一是 "评论",其中应包含经纪人对交易的评论。然而,这个字段返回的是传递给请求的相同注释,而不是应该的经纪人返回。 要重现该错误,请执行以下操作。 1.创建一个查询,结果是一个评论。在 "评论 "查询中填写一个假的评论。 2.使用Python API的order_send ()命令发送请求。 3.在返回的orderSendResult对象中,检查 "评论 "字段。 评论 "字段将传递相同的评论,而它应该有一个由经纪人返回的评论,这可以在MT5终端的 "日志 "标签中检查。 有人能证实这一点吗?有什么办法能让经纪人发表意见吗? Документация по MQL5: Торговые функции / OrderSend www.mql5.com OrderSend - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Rashid Umarov 2021.02.15 17:07 #843 Vladimir Perervenko:你会在文件中加入描述吗? 添加 市场_书籍_添加 市场_书籍_获取 市场_书籍_发布 Документация по MQL5: Интеграция / MetaTrader для Python / market_book_add www.mql5.com market_book_add - MetaTrader для Python - Интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Dmitri Custurov 2021.02.26 15:03 #844 我想用python组织一个虚拟贸易会计。我需要它来区分不同交易策略的特点。使用的经纪人是Otkritie。不存在网状物。仪器有一个共同的位置,停止和采取的位置是共同的。我决定这样做:我以任何策略在任何市场上开立交易,没有止损和止盈。相反,我下了一个相同规模的止损和限价订单。我分别记住了表中的订单。每隔一段时间,我就把订单=mt5.orders_get(symb的符号),并得到一个已知的票据订单列表.ticket.tolist()。 然后我通过我的交易表,检查在收到的未结订单列表中是否仍有止损或限价订单票。如果没有止损,意味着止损几乎已经触发;如果没有限价,意味着获利。然后我从我的表中删除该交易的条目,并删除该交易的剩余挂单。而且一切正常,除了一点--我不知道如何计算这笔交易的虚拟利润。在图片中,你可以看到卖出止损设置在141430,但实际上出现了滑点,开盘价是141350。我请求触发头寸的请求: deals = mt5.history_orders_get(ticket=246525084) (这个票据在下单时已经保存在系统中,如上图所示),但在我的回复中,我没有看到关于下单地点的信息,只有关于下单地点的信息。历史记录显示,卖出止损确实是在15215696号票中执行的,我可以在这个票中要求正确的价格。但首先我需要找到交易中的票据。我如何将此票与挂单票(卖出止损)相匹配? Dmitri Custurov 2021.03.01 19:17 #845 我的问题有了进展。通过请求关闭头寸的历史记录mt5.history_deals_get,我可以在订单中找到一个关闭订单的票据和它的执行价格。如果我在参数中指定一个时间范围,这就可以了。我也调用了同样的函数,将订单的票据传递给它--mt5. history_deals_get(ticket=TICKET) --但响应(-2,'终端:无效的参数')。有这个参数的函数到底能不能用? Dmitri Custurov 2021.03.02 09:10 #846 亲爱的开发者,请你对我之前的问题发表意见。history_deals_get(ticket=TICKET) 函数不起作用。响应总是(-2,'终端:无效参数')。同样的函数,但有一个不同的参数history_deals_get(position=POSITION) 可以工作,但我需要按票据顺序找到交易。 Maxim Dmitrievsky 2021.03.18 14:36 #847 是否有可能制作一个可以访问历史的Python api新闻日历,以进行研究? Roman Zhitnik 2021.04.07 10:43 #848 亲爱的,有谁在MOEX 上进行交易吗?谁有同样的问题,当你初始化连接到终端时,它重新连接到服务器并要求提供证书密码? Документация по MQL5: Интеграция / MetaTrader для Python / initialize www.mql5.com initialize - MetaTrader для Python - Интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 alex17127 2021.04.08 13:36 #849 order_send和order_check 返回无。我不明白该去哪里找。请告诉我什么是错的。请。 编码 import MetaTrader5 as mt if not mt.initialize(login=12345):# print("initialize() failed") mt.shutdown() terminal_info=mt.terminal_info() if terminal_info!=None: print(f"terminal {'''connected''' if terminal_info.connected else '''disconnected'''}") print("version: ",mt.version()) info = mt.symbol_info("Si-6.21") print(f"Si-6.21 {info.bid=} {info.ask=}") request = { "action": mt.TRADE_ACTION_PENDING, "symbol": "Si-6.21", "volume": 1, "type": mt.ORDER_TYPE_BUY_LIMIT, "price": 77300, "sl": 0, "tp": 0, "deviation": 0, "magic": 123, "comment": "test", "type_time": mt.ORDER_TIME_DAY, "type_filling": mt.ORDER_FILLING_RETURN, } check = mt.order_check(request) print("order check: ",check) ret = mt.order_send(request) print("order send: ", ret) if not ret is None: print(f" retcode:{ret.retcode}") 输出 terminal connected version: (500, 2875, '02 Apr 2021') Si-6.21 info.bid=77770.0 info.ask=77773.0 order check: None order send: None Process finished with exit code 0 我设法解决了这个问题。在请求中,volume,price,sl,tp字段应该有浮动类型。它的工作原理是这样的 request = { "action": mt.TRADE_ACTION_PENDING, "symbol": "Si-6.21", "volume": 1., "type": mt.ORDER_TYPE_BUY_LIMIT, "price": 77300., "sl": 0., "tp": 0., "deviation": 0, "magic": 123, "comment": "test", "type_time": mt.ORDER_TIME_DAY, "type_filling": mt.ORDER_FILLING_RETURN, } Ernesto Che 2021.05.22 07:28 #850 同事们,请指教。 1.我如何在Python中从mt5中按工具提取可用的交易时段并定期更新? 2.我是否希望在库中看到一种方法来请求和改变未结头寸 的追踪止损? 1...7879808182838485868788 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
很奇怪,但一张空桌子也到了。不需要像Quicksilver那样在终端本身打开任何东西来使卸货工作?
任何具有所需对数的图表(用于刻度线)。
有人能证实这一点吗?有什么办法能让经纪人发表意见吗?
你会在文件中加入描述吗?
添加
我想用python组织一个虚拟贸易会计。我需要它来区分不同交易策略的特点。使用的经纪人是Otkritie。不存在网状物。仪器有一个共同的位置,停止和采取的位置是共同的。我决定这样做:我以任何策略在任何市场上开立交易,没有止损和止盈。相反,我下了一个相同规模的止损和限价订单。我分别记住了表中的订单。每隔一段时间,我就把订单=mt5.orders_get(symb的符号),并得到一个已知的票据订单列表.ticket.tolist()。
然后我通过我的交易表,检查在收到的未结订单列表中是否仍有止损或限价订单票。如果没有止损,意味着止损几乎已经触发;如果没有限价,意味着获利。然后我从我的表中删除该交易的条目,并删除该交易的剩余挂单。而且一切正常,除了一点--我不知道如何计算这笔交易的虚拟利润。在图片中,你可以看到卖出止损设置在141430,但实际上出现了滑点,开盘价是141350。我请求触发头寸的请求: deals = mt5.history_orders_get(ticket=246525084) (这个票据在下单时已经保存在系统中,如上图所示),但在我的回复中,我没有看到关于下单地点的信息,只有关于下单地点的信息。历史记录显示,卖出止损确实是在15215696号票中执行的,我可以在这个票中要求正确的价格。但首先我需要找到交易中的票据。我如何将此票与挂单票(卖出止损)相匹配?
order_send和order_check 返回无。我不明白该去哪里找。请告诉我什么是错的。请。
编码
输出
我设法解决了这个问题。在请求中,volume,price,sl,tp字段应该有浮动类型。它的工作原理是这样的
同事们,请指教。
1.我如何在Python中从mt5中按工具提取可用的交易时段并定期更新?
2.我是否希望在库中看到一种方法来请求和改变未结头寸 的追踪止损?