您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

VBA监控某帐户时经常有帐户掉线重连后持仓返回出错的问题 [金字塔]

  • 咨询内容:

    我用VBA监控某帐户的实际持仓的时候~

    经常有帐户掉线重连后持仓返回出错的问题~

    实盘中帐户掉线重连是个小概率事件~(比如说出金后金字塔显示交易成功~你点确定然后帐户就自动掉线重连)

    但是还是需要考虑到这种情况~

     

    Sub Application_VBAStart()
        Call Application.SetTimer(0,500)      '设置一个0号计时器
    End Sub

     

    Sub Application_Timer(ID)
    dim acfl
    acfl="800052"'跟踪帐户

     

    call Document.SetExtData("ACFL1_isac1",order.IsAccount(acfl))'这个是跟踪帐户

        If ID=0 and order.IsAccount(acfl) then
    call Order.HoldingInfoByCode2("if09","zj",BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin,acfl)
    call Document.SetExtData("ACFL1_thold_if",BuyHolding-SellHolding)

     

        end if
    End Sub

     

     

    ====================

    以上代码在帐户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编辑过]

     

  • 金字塔客服:

    我以为是帐户重连后持仓暂时刷新不出来~先会显示帐户登录

    然后帐户持仓再显示出来~中间可能差个几秒

    于是我用后台监控里写上一段~

    800052帐户掉线重连后先sleep 20秒~

    然后再记录ACFL1_thold_if这个全局变量

    谁知道~ACFL1_thold_if在20秒后还是先变成0再变成1~

    请问一下这是怎么回事?

     

  • 用户回复:

    使用2.93版,

    Account2 方法

     

    返回255表示当前是无效状态

     

  • 网友回复: 那你断线之后全局变量里面的值有变化吗?我测了一下 我的全局变量里面没有变化

     

  • 网友回复: 以下是引用rushtaotao在2012-9-3 15:16:29的发言:
    那你断线之后全局变量里面的值有变化吗?我测了一下 我的全局变量里面没有变化

     

     


    2012-09-03 15:43:37.936    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:38.927    =======
    2012-09-03 15:43:38.928    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:39.948    =======
    2012-09-03 15:43:39.949    跟踪帐户真实持仓=0.00000
    2012-09-03 15:43:40.962    =======
    2012-09-03 15:43:40.963    跟踪帐户真实持仓=0.00000
    2012-09-03 15:43:41.969    =======
    2012-09-03 15:43:41.970    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:42.995    =======
    2012-09-03 15:43:42.996    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:44.004    =======
    2012-09-03 15:43:44.005    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:45.022    =======
    2012-09-03 15:43:45.023    跟踪帐户真实持仓=6.00000
    2012-09-03 15:43:46.030    =======

     

     

    ==============================

     

    FILEPATH:='C:\debug\t3.TXT'; DEBUGFILE(FILEPATH,'=======',0);
    DEBUGFILE(FILEPATH,'跟踪帐户真实持仓=%.5f',extgbdata('ACFL1_thold_if'));


     

     

    用这个代码再监控一下

    不间断监控(无论有无新行情...)

    先手动退出那个目标帐户~再然后登录

    我监控的结果是全局变量会变成0再变成6

     

    我断线后全局变量是没有变化的

    是重新登录之后全局变量会先变成0再变成6...

    为什么他会先变成0~我一直搞不清这个问题~所以才发帖

    [此贴子已经被作者于2012-9-3 15:46:32编辑过]

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容