我正在尝试使用此处托管的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),arg3
(datetime.date(2015,1,5)
)以将历史记录从此日期开始拉至(datetime.date(2019,1,5)
),以将历史记录拉到该日期和总数,即MT4ManagerAPI.intp()
,按设置要求。
我确信我传递日期的方式不正确,并且无法找到任何有关将Python datetime
转换为__time32_t const
类型的信息。
因此,有关该转换的任何指导将不胜感激。
答案 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安静,这令人怀疑,您可能需要在似乎时间戳记行为不正确的地方使用小数。