Mt4Manager API Python包装器-无法获取交易历史记录

时间:2019-07-29 10:16:03

标签: python mt4

我正在尝试使用此处托管的PyMT4ManagerAPI提取MT4交易历史数据:

https://github.com/ipenn/PyMT4ManagerAPI

API可以很好地获取未平仓交易和用户信息。但是,当我尝试使用历史记录交易时,使用文件TradesUserHistory(self, login, arg3, to, total)中的函数MT4ManagerAPI.py,出现一个奇怪的错误:

argument 3 of type '__time32_t const'

我正在使用的参数是login(用户帐户的登录ID),arg3datetime.date(2015,1,5))以将历史记录从此日期开始拉至(datetime.date(2019,1,5) ),以将历史记录拉到该日期和总数,即MT4ManagerAPI.intp(),按设置要求。

我确信我传递日期的方式不正确,并且无法找到任何有关将Python datetime转换为__time32_t const类型的信息。

因此,有关该转换的任何指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

Mt4管理器对所有内容都使用了非常古老的数据类型。自从过去成功完成ep以来,我已经使用了int32或int几秒钟,只需将int从C#传递到c ++层即可。在python中应该等效。

需要考虑的一件事是,MT4人员使用C ++进行了一些时间操作,以从__time32_t获取实际时间。这是MT4ManagerAPI.h的摘录:

//--- time conversion ratio
#define TIME_RATE         ((double)1.6777216)
//--- conversion from our time to standard __time32_t
#define STDTIME(custom_time) ((DWORD)((double)(custom_time)*TIME_RATE))
//--- conversion from standard __time32_t to our time
#define OURTIME(stdtime)     ((DWORD)((double)(stdtime)/TIME_RATE))

尽管我从未发现使用这3个#define中的任何一个,但发现TIME_RATE安静,这令人怀疑,您可能需要在似乎时间戳记行为不正确的地方使用小数。