VBA監(jiān)控某帳戶時(shí)經(jīng)常有帳戶掉線重連后持倉(cāng)返回出錯(cuò)的問(wèn)題 [金字塔]
- 咨詢內(nèi)容:
我用VBA監(jiān)控某帳戶的實(shí)際持倉(cāng)的時(shí)候~
經(jīng)常有帳戶掉線重連后持倉(cāng)返回出錯(cuò)的問(wèn)題~
實(shí)盤中帳戶掉線重連是個(gè)小概率事件~(比如說(shuō)出金后金字塔顯示交易成功~你點(diǎn)確定然后帳戶就自動(dòng)掉線重連)
但是還是需要考慮到這種情況~
Sub Application_VBAStart()
Call Application.SetTimer(0,500) '設(shè)置一個(gè)0號(hào)計(jì)時(shí)器
End SubSub Application_Timer(ID)
dim acfl
acfl="800052"'跟蹤帳戶call Document.SetExtData("ACFL1_isac1",order.IsAccount(acfl))'這個(gè)是跟蹤帳戶
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登錄的狀態(tài)下把IF09上的持倉(cāng)導(dǎo)出為一個(gè)外生全局變量~
但是會(huì)出現(xiàn)這種情況~
如果800052帳戶持有1手IF09多單~然后退出帳戶~
這時(shí)候ACFL1_thold_if返回的還是1手多單沒錯(cuò)~
重連后~按道理ACFL1_thold_if不會(huì)變成0~而應(yīng)該還是直接為1~
但是我用后臺(tái)監(jiān)控這個(gè)全局變量~
在800052這個(gè)帳戶登錄后ACFL1_thold_if這個(gè)全局變量會(huì)自動(dòng)初始化一次~
先變成0然后變成1~
我想問(wèn)一下金字塔的設(shè)計(jì)師這是為什么?
因?yàn)檫@個(gè)變動(dòng)~我的另外一個(gè)帳戶會(huì)多出一次開平操作...
[此貼子已經(jīng)被作者于2012-9-3 14:40:19編輯過(guò)] - 金字塔客服:
我以為是帳戶重連后持倉(cāng)暫時(shí)刷新不出來(lái)~先會(huì)顯示帳戶登錄
然后帳戶持倉(cāng)再顯示出來(lái)~中間可能差個(gè)幾秒
于是我用后臺(tái)監(jiān)控里寫上一段~
800052帳戶掉線重連后先sleep 20秒~
然后再記錄ACFL1_thold_if這個(gè)全局變量
誰(shuí)知道~ACFL1_thold_if在20秒后還是先變成0再變成1~
請(qǐng)問(wèn)一下這是怎么回事?
- 用戶回復(fù):
使用2.93版,
Account2 方法
返回255表示當(dāng)前是無(wú)效狀態(tài)
- 網(wǎng)友回復(fù): 那你斷線之后全局變量里面的值有變化嗎?我測(cè)了一下 我的全局變量里面沒有變化
- 網(wǎng)友回復(fù): 以下是引用rushtaotao在2012-9-3 15:16:29的發(fā)言:
那你斷線之后全局變量里面的值有變化嗎?我測(cè)了一下 我的全局變量里面沒有變化
2012-09-03 15:43:37.936 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:38.927 =======
2012-09-03 15:43:38.928 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:39.948 =======
2012-09-03 15:43:39.949 跟蹤帳戶真實(shí)持倉(cāng)=0.00000
2012-09-03 15:43:40.962 =======
2012-09-03 15:43:40.963 跟蹤帳戶真實(shí)持倉(cāng)=0.00000
2012-09-03 15:43:41.969 =======
2012-09-03 15:43:41.970 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:42.995 =======
2012-09-03 15:43:42.996 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:44.004 =======
2012-09-03 15:43:44.005 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:45.022 =======
2012-09-03 15:43:45.023 跟蹤帳戶真實(shí)持倉(cāng)=6.00000
2012-09-03 15:43:46.030 =====================================
FILEPATH:='C:\debug\t3.TXT'; DEBUGFILE(FILEPATH,'=======',0);
DEBUGFILE(FILEPATH,'跟蹤帳戶真實(shí)持倉(cāng)=%.5f',extgbdata('ACFL1_thold_if'));
用這個(gè)代碼再監(jiān)控一下
不間斷監(jiān)控(無(wú)論有無(wú)新行情...)
先手動(dòng)退出那個(gè)目標(biāo)帳戶~再然后登錄
我監(jiān)控的結(jié)果是全局變量會(huì)變成0再變成6
我斷線后全局變量是沒有變化的
是重新登錄之后全局變量會(huì)先變成0再變成6...
為什么他會(huì)先變成0~我一直搞不清這個(gè)問(wèn)題~所以才發(fā)帖
[此貼子已經(jīng)被作者于2012-9-3 15:46:32編輯過(guò)]
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容