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

 
Дмитрий Прокопьев:

谢谢你,我见过这个例子,它很有效。

我只是在说别的事情。


positions_get - 它将给我返回一个tradePosition的列表。原则上是可以的,你可以把它放在pandas里,而且工作得很好。

但这并不限于一只熊猫,如果你想得到这样的东西。

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

看一下positions_get 的例子,它使用了几个字符串。

例子。

输入MetaTrader5作为mt5
输入pandas作为pd
pd.set_option('display.max_columns',500)# 显示多少列
pd.set_option('display.width', 1500)# 显示的最大表格宽度
# 显示MetaTrader5软件包的数据
print("MetaTrader5软件包作者:",mt5.__author__)
print("MetaTrader5软件包版本:",mt5.__version__)
print()
# 设置与终端MetaTrader 5的连接
如果不是mt5.initialize()。
print("initialize() failed, error code =",mt5.last_error())
退出()

#接收美元兑瑞郎的未结头寸
positions=mt5.position_get(symbol="USDCHF")
如果位置==None
print("No positions on USDCHF, error code={}".format(mt5.last_error())
elif len(position)>0
print("USDCHF的总头寸=",len(position))
# 打印所有开放的职位
职位位置
print(position)

#获得名称中含有 "*USD*"的符号的头寸列表
usd_positions=mt5.position_get(group="*USD*")
如果usd_positions==None
print("No positions with group="*USD*\", error code={}".format(mt5.last_error())
elif len(usd_positions)>0:
print("position_get(group="*USD*")={}".format(len(usd_positions))
# 用pandas.DataFrame将这些头寸以表格形式输出
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys()
df['time'] = pd.to_datetime(df['time'], unit='s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)

print(df)

# 结束与终端MetaTrader 5的连接
mt5.shutdown()


结果
MetaTrader5软件包的作者:MetaQuotes软件公司。
MetaTrader5软件包版本: 5.0.29

positions_get(group="*USD*")=5
门票时间类型 魔法标识符 原因成交价_开盘价sl tp价格_现价交换利润符号评论
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0.10 -8.00 EurusD
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0.08 14.22 EurusD
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0.08 14.58 EurusD
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0.06 5.53 EurusD
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1.09536 1.04478 1.16587 1.10098 -0.08 11.24 EurusD

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

帮助中加入了3个新功能的描述。

此外,许多功能的描述也随着它们的完善而被改变。几乎所有的例子都被重写以反映新的功能。但是,以下功能的例子还没有在网站上更新,稍后会有。

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев:

先生们,下一个话题中的人正在问关于自由派的问题。

URL:https://www.mql5.com/en/forum/306742/page11#comment_15595095

你能给我支持吗?

在该主题中回答了

 
Rashid Umarov:

看一下positions_get 的例子,有几个字符串被用到了

谢谢你!

 
Rashid Umarov:

在该主题中回答了

Rashid,告诉我,是否可以在MetaTrader5中使用测试器?

在测试器中进行建模时,有一个非常有效的元素--在本地网络农场中模拟任务的并行化或

我想在MetaTrader5中使用测试者的资源。

 
Vladimir Perervenko:

你为什么需要这个?你不能用Python计算吗?我很惊讶。

我对Python一点都不熟悉,我刚刚准备从lua转到它,所以我正在学习这个东西...
 

帮助部分告诉你如何安装和更新库 -https://www.mql5.com/ru/docs/integration/python_metatrader5

Установка пакета в командной строке:

pip安装MetaTrader5

在命令行上升级软件包。

pip install --upgrade MetaTrader5



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov:

帮助部分告诉你如何安装和更新库 -https://www.mql5.com/ru/docs/integration/python_metatrader5

说实话,这并不十分清楚。因为没有VS就不能工作,而究竟需要从VS中得到什么--并不清楚(因为我不愿意因为不需要而安装整个工作室)。

如果你能澄清它,那就太好了。

 
Alexey Kozitsyn:

说实话,这并不十分清楚。因为没有VS就不能工作,而究竟需要从VS中得到什么--并不清楚(因为我不愿意因为不需要而安装整个工作室)。

如果你详细说明一下,那就太好了。

你为什么需要VS?Python不需要VS。

在谷歌上搜索类似window python的东西,你就可以了。

 

各位开发者,在下一个主题中提出了一个很好的观点。

这适用于**kwargs 处理,在编写测试的情况下--这是一个非常重要的点

https://www.mql5.com/en/forum/306742/page12#comment_15660939