以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- [求助]帐户掉线重新登录导致持仓函数出错的问题~ (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=25183) |
-- 作者:bbking -- 发布时间:2012/9/3 14:34:43 -- [求助]帐户掉线重新登录导致持仓函数出错的问题~ 我用VBA监控某帐户的实际持仓的时候~ 经常有帐户掉线重连后持仓返回出错的问题~ 实盘中帐户掉线重连是个小概率事件~(比如说出金后金字塔显示交易成功~你点确定然后帐户就自动掉线重连) 但是还是需要考虑到这种情况~
Sub Application_VBAStart()
Sub Application_Timer(ID)
call Document.SetExtData("ACFL1_isac1",order.IsAccount(acfl))\'这个是跟踪帐户 If ID=0 and order.IsAccount(acfl) then
end if
==================== 以上代码在帐户800052登录的状态下把IF09上的持仓导出为一个外生全局变量~ 但是会出现这种情况~ 如果800052帐户持有1手IF09多单~然后退出帐户~ 这时候ACFL1_thold_if返回的还是1手多单没错~ 重连后~按道理ACFL1_thold_if不会变成0~而应该还是直接为1~ 但是我用后台监控这个全局变量~ 在800052这个帐户登录后ACFL1_thold_if这个全局变量会自动初始化一次~ 先变成0然后变成1~ 我想问一下金字塔的设计师这是为什么? 因为这个变动~我的另外一个帐户会多出一次开平操作... [此贴子已经被作者于2012-9-3 14:40:19编辑过]
|
-- 作者:bbking -- 发布时间:2012/9/3 14:52:59 -- 我以为是帐户重连后持仓暂时刷新不出来~先会显示帐户登录 然后帐户持仓再显示出来~中间可能差个几秒 于是我用后台监控里写上一段~ 800052帐户掉线重连后先sleep 20秒~ 然后再记录ACFL1_thold_if这个全局变量 谁知道~ACFL1_thold_if在20秒后还是先变成0再变成1~ 请问一下这是怎么回事? |
-- 作者:王锋 -- 发布时间:2012/9/3 15:06:34 -- 使用2.93版, Account2 方法
返回255表示当前是无效状态 |
-- 作者:rushtaotao -- 发布时间:2012/9/3 15:16:29 -- 那你断线之后全局变量里面的值有变化吗?我测了一下 我的全局变量里面没有变化 |
-- 作者:bbking -- 发布时间:2012/9/3 15:45:32 -- 以下是引用rushtaotao在2012-9-3 15:16:29的发言:
那你断线之后全局变量里面的值有变化吗?我测了一下 我的全局变量里面没有变化
==============================
FILEPATH:=\'C:\\debug\\t3.TXT\'; DEBUGFILE(FILEPATH,\'=======\',0);
用这个代码再监控一下 不间断监控(无论有无新行情...) 先手动退出那个目标帐户~再然后登录 我监控的结果是全局变量会变成0再变成6
我断线后全局变量是没有变化的 是重新登录之后全局变量会先变成0再变成6... 为什么他会先变成0~我一直搞不清这个问题~所以才发帖 [此贴子已经被作者于2012-9-3 15:46:32编辑过]
|
-- 作者:bbking -- 发布时间:2012/9/3 15:52:40 -- 怎么优化应用公式的指标参数??? 以下是引用王锋在2012-9-3 15:06:34的发言:
使用2.93版, Account2 方法
返回255表示当前是无效状态
我这里不是有个order.IsAccount来防止帐户掉线吗? 干嘛还要用那个Account2返回225呢?
我是不明白为什么帐户重连后那个全局变量会先变成0再变成真实持仓~ 能否帮我调试一下? 我非常确定不是我某段代码写错了...
我用的是2.93版 [此贴子已经被作者于2012-9-3 15:57:01编辑过]
|
-- 作者:bbking -- 发布时间:2012/9/3 16:02:05 -- 以下是引用王锋在2012-9-3 15:06:34的发言:
使用2.93版, Account2 方法
返回255表示当前是无效状态
If ID=0 and order.Account2(2,acfl)<255 then
我改成这样的确没出现全局变量变成0的情况了~ 明天交易时间我再测试一下... 谢谢啦 |
-- 作者:rushtaotao -- 发布时间:2012/9/3 16:16:56 -- 问题正在处理 |
-- 作者:rushtaotao -- 发布时间:2012/9/3 16:18:44 -- Sub Application_VBAStart()
Sub Application_Timer(ID)
call Document.SetExtData("ACFL1_isac1",order.IsAccount(acfl))\'这个是跟踪帐户
sub vbaend() |
-- 作者:rushtaotao -- 发布时间:2012/9/3 16:19:03 -- 金字塔数据导出问题 代码改下 我这里测了 用上面的vba就没你那问题了
|