Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:链接账号时g_pMainFormework->GetHolding2返回值为0

1楼
yu_xm 发表于:2015/5/14 9:33:16
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;
}
2楼
王锋 发表于:2015/5/14 12:34:29

不明白你的描述,能否再详细说明一下你的诉求?

3楼
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
}
4楼
王锋 发表于:2015/5/14 15:45:37
帐号正在连接后,持仓信息需要一定时间才能从期货公司柜台返回回来。
5楼
王锋 发表于:2015/5/14 16:13:26

 

你可以使用

g_pMainFormework->GetAccount(2); 如果返回值是255表示账户是未初始化完成或者连接无效的,这样配合使用,只有当这个函数返回正确值后再考虑读取持仓量

6楼
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
帖子也出现过相似的问题

请问有什么可靠的方法判断账户已经登录连接正常。
7楼
王锋 发表于:2015/5/20 12:47:32
VARIANT 是可变体类型,你不要去暴力使用intVal,应该判断里面的变量是什么样的值后再读取相应的字段
共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 2 queries.