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

 
Roman:

谢谢你,钻石。
没有任何错误。
路径的拼写是正确的。
我删除了mt5.initialize()中的确切路径,重新启动了终端,图开始显示了。

你必须使用原始字符串或转义所有的反斜线。

option1 = r'C:\Program Files\MetaTrader 5\terminal64.exe'
option2 = 'C:\\Program Files\\MetaTrader 5\\terminal64.exe'
 
nicholi shen:

你必须使用原始字符串或转义所有的反斜线。

当阿尔马兹为确切的路径写信时,我也想到了屏蔽的问题。是的,它也起作用了,谢谢

 
Almaz :

你对图表中的条数有限制,你需要在终端中取消这个限制(工具->选项->图表中的最大条数)。
在未来的终端版本中,当尝试此类请求时,我们将返回错误(无)。

谢谢你的提示。

MT5现在可以正确地提供所有数据。

 

Python 3.8

建2470

软件包5.0.33


订单_获取函数失败

如果没有订单,回报不是 "NO"。

import MetaTrader5 as mt5

if not mt5.initialize():
    print( "initialize() failed, error code =" , mt5.last_error())
    quit()

orders = mt5.orders_get(symbol= "GBPUSD" )
if orders is None:
    print( "No orders on GBPUSD, error code={}" .format(mt5.last_error()))
elif len(orders) > 0 :
    print( "Total orders on GBPUSD:" , len(orders))
     for order in orders:
        print(order)

mt5.shutdown()


 
Christian:

Python 3.8

建2470

软件包5.0.33


订单_获取函数失败

如果没有订单,回报不是 "NO"。


全部正确,返回空集--表示没有订单,这不是一个错误,请求成功了,如果有明确的错误,则返回。但事实上,它也会在不在经纪人服务器上的符号上返回空集,这是一个错误,已纠正,将在下一次终端更新 中提供。
 
Almaz :
这是正确的,返回的空集--标志着没有订单,这不是错误,请求被成功处理了,如果有明确的错误,则返回。但它也会在不在经纪人服务器上的符号上返回空集,这是一个错误,已被修复,将在下一次终端更新 中提供。

好吧,我真的明白这个吗?


只有两种类型的答案。

1.没有

2.一个长度大于0的元组


在下一次集会中> 2470

 
Christian:

好吧,我真的明白这个吗?


只有两种类型的答案。

1.没有

2.一个长度大于0的元组


在接下来的建设中> 2470

没有。

1.如果出现一些错误,则为无

2.长度>=0的元组

 
Rashid Umarov:

没有。

1.如果出现一些错误,则为无

2.长度>=0的元组

好了,现在我明白了。

谢谢

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

请注意,mt5.terminal_info()显示。

path='C:\Works\\\\\MT5 - terminals\MetaTrader 5',data_path='C:\Works\\\\MT5 - terminals\MetaTrader 5',commondata_path='C:\Users\rip\AppData\Roaming\MetaQuotes\Terminal\Common'.

是相同的。它应该是这样的吗?

代码如下。

 
Almaz:

@Almaz
第一次运行copy_xxx_xxx函数时,当终端有一段时间没有启动时,
函数立即返回缺少历史的可用结果,而不等待历史交换的同步。
这意味着第一个函数调用 返回的结果中缺少历史记录。
只有后续的调用才会返回正确的结果,当历史被交换时。
有可能解决这个问题吗?而copy_xxx_xxx函数在第一次调用时,会等待历史被调换。