以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  资金帐户登陆失败,怎么tasset还判断大于0?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=166423)

--  作者:uranusmoon
--  发布时间:2018/11/11 10:43:05
--  资金帐户登陆失败,怎么tasset还判断大于0?
如题,本来是用tasset>0判断资金帐户登陆成功才运行交易模块。发现登陆失败仍可以运行,也就是说判断条件tasset>0仍然成立,怎么回事?
--  作者:yukizzc
--  发布时间:2018/11/12 9:06:11
--  

您可以用debugfile输出下tasset看下,另外确认当时账户是断开了的状态吗

 


--  作者:uranusmoon
--  发布时间:2018/11/12 21:21:15
--  
下单日志:
2018-11-09 07:30:19.281    【后台】 启动后台程式化交易
2018-11-09 07:30:23.328    【¥¥¥¥】开始持仓查询
2018-11-09 07:30:23.328    【回报】620849 : 登录成功
2018-11-09 07:30:26.031    【¥¥¥¥】持仓查询结束
2018-11-09 07:30:43.265    【后台】 启动后台程式化交易
2018-11-09 07:42:23.218    【回报】620849 : 连接断开
2018-11-09 07:42:23.359    【¥¥¥¥】开始持仓查询
2018-11-09 07:42:23.406    【回报】620849 : 登录成功
2018-11-09 07:42:25.343    【¥¥¥¥】持仓查询结束
2018-11-09 07:43:56.921    【¥¥¥¥】开始持仓查询
2018-11-09 07:43:57.953    【¥¥¥¥】持仓查询结束
2018-11-09 07:58:56.921    【¥¥¥¥】开始持仓查询
2018-11-09 07:58:57.953    【¥¥¥¥】持仓查询结束
2018-11-09 08:13:56.968    【¥¥¥¥】开始持仓查询
2018-11-09 08:13:57.953    【¥¥¥¥】持仓查询结束
2018-11-09 08:15:33.140    【回报】620849 : 连接断开
2018-11-09 09:00:25.718    【后台】J00 运行结束
2018-11-09 09:00:27.078    【后台】J00 运行结束
2018-11-09 09:00:28.453    【后台】J00 运行结束
2018-11-09 09:00:29.468    【后台】J00 运行结束
2018-11-09 09:00:30.171    【后台】J00 运行结束

--  作者:uranusmoon
--  发布时间:2018/11/12 21:25:44
--  
下单日志可以看出,8:15断开后一直到开盘,帐户始终没有连接上。但是我的交易模块一直在试图下单。而交易模块是以tasset>0为条件才运行的。
--  作者:FireScript
--  发布时间:2018/11/13 9:27:42
--  
你是将这个 tasset>0 作为整个程序初始的判断吗?也就是说这个判断不成立后面代码不执行? 从上面这日志看不出来你说的 “交易模块一直在试图下单”

--  作者:uranusmoon
--  发布时间:2018/11/13 19:10:49
--  
下单失败的记录没拷贝上来,没必要质疑这个。我设置的自动登录登出资金账号,怀疑程序判断账号状态有出错?
--  作者:无为剑
--  发布时间:2018/11/13 19:28:45
--  
判断账户是否有效,应该用专门的函数
TACCOUNT(53)
账户函数:返回当前交易账户是否处于有效状态。建议对账户持仓或资金进行读取时首先调用该函数对账户有效性进行判断,以免出现误操作。 

--  作者:uranusmoon
--  发布时间:2018/11/15 22:34:52
--  
以下是引用无为剑在2018/11/13 19:28:45的发言:
判断账户是否有效,应该用专门的函数
TACCOUNT(53)
账户函数:返回当前交易账户是否处于有效状态。建议对账户持仓或资金进行读取时首先调用该函数对账户有效性进行判断,以免出现误操作。 

没解释清楚啊。用tasset判断资金,当然认为是在帐户登陆情况下才能进行。如果说tasset在登陆状态不正确的情况下提取的值可能有误,那我认为是tasset函数的问题。版主推荐用诸如 TACCOUNT(1)、 TACCOUNT(53)的其他函数,用户怎么确信就一定正确?
--  作者:FireScript
--  发布时间:2018/11/16 14:02:28
--  
 本地测试的结果是如果没有登录的话,tasset返回值就是0 或者中间断开的话 也会按照0输出的.  建议用调试语句输出下tasset的值,以确认当时的情况。不一定是tasset判断的问题,但是上面提供的信息还不足以做其他判断。
--  作者:uranusmoon
--  发布时间:2018/11/19 23:36:56
--  
我再观察吧,怀疑是设置了自动登陆导致的,晚上交易时间结束后会休眠电脑,第二天早晨再唤醒,往往上午8:55不能自动登陆模拟资金帐户。