以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 链接账号时g_pMainFormework->GetHolding2返回值为0 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=78579) |
-- 作者:yu_xm -- 发布时间:2015/5/14 9:33:16 -- 链接账号时g_pMainFormework->GetHolding2返回值为0 LRESULT CMainWindowDlg::OnNotifyUpdate(WPARAM w,LPARAM l) {
CString strText;
if(w == 2)
{
//行情刷新时处理止损信息
ReportUpdate(l);
}
else if(w == 3)
{
//委托状态改变
OrderStatus(pKsi);
}
else if(w == 4)
{
BARGAIN_NOTIFY_KSI * pKsi = (BARGAIN_NOTIFY_KSI*)l;
if(strcmp(pKsi->m_szStatus,"Connected") == 0)
{
//账户已经连接
WriteLog("账户已经连接");
GetHoldInfo(); ///////在这里获取持仓信息,g_pMainFormework->GetHolding2(szAccount);返回的信息竟然为0
}
else if(strcmp(pKsi->m_szStatus,"Disconnected") == 0)
{
//账户断开连接
WriteLog("账户断开连接");
}
}
return 0; }
|
-- 作者:王锋 -- 发布时间:2015/5/14 12:34:29 -- 不明白你的描述,能否再详细说明一下你的诉求? |
-- 作者:yu_xm -- 发布时间:2015/5/14 14:31:09 -- 账号连接时,去获取持仓信息,g_pMainFormework->GetHolding2(szAccount);获取到的持仓数量竟然为0(实际上有仓位的,且在交易时间),之后在别的地方调用相同的代码,持仓信息是可以获取的。 调用下面的代码:
else if(w == 4) { BARGAIN_NOTIFY_KSI * pKsi = (BARGAIN_NOTIFY_KSI*)l; if(strcmp(pKsi->m_szStatus,"Connected") == 0) { //账户已经连接 WriteLog("账户已经连接"); GetHoldInfo(); ///////在这里获取持仓信息,g_pMainFormework->GetHolding2(szAccount);返回的信息竟然为0 } |
-- 作者:王锋 -- 发布时间:2015/5/14 15:45:37 -- 帐号正在连接后,持仓信息需要一定时间才能从期货公司柜台返回回来。 |
-- 作者:王锋 -- 发布时间:2015/5/14 16:13:26 --
你可以使用 g_pMainFormework->GetAccount(2); 如果返回值是255表示账户是未初始化完成或者连接无效的,这样配合使用,只有当这个函数返回正确值后再考虑读取持仓量 |
-- 作者:yu_xm -- 发布时间:2015/5/20 11:29:05 -- 未登录账户状态: VARIANT
var = g_pMainFormework->GetAccount(2);var.intVal 值为1573119,并不是你说的255 GetAccount(2) http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=25452&replyID=&skin=1 帖子也出现过相似的问题 请问有什么可靠的方法判断账户已经登录连接正常。
|
-- 作者:王锋 -- 发布时间:2015/5/20 12:47:32 -- VARIANT 是可变体类型,你不要去暴力使用intVal,应该判断里面的变量是什么样的值后再读取相应的字段 |