開拓者while循環(huán)時,還能接收行情嗎 [開拓者 TB]
- 咨詢內(nèi)容: 平倉反手的交易,在平倉發(fā)出委托至成交之間,需要一個延時等待成交的循環(huán)語句,以保證有足夠的資金開新倉,問題是,在循環(huán)期間,是否還能接收新的行情信息。我的理解是:在循環(huán)期間,相當(dāng)于處理一個tick的程序還沒有運行完,按TB的運行機制,似乎不會處理新的tick信息。
Params
Vars
Numeric startime;
Begin
If (Close < Open)
{
sell(1,Close);
}
if(買條件)
{
startime = CurrentTime;
while(A_buyposition != 0)
{
if(Low == Q_LowerLimit)
Continue;//跌停板,難成交,繼續(xù)等待 問題:如果跌停板已打開,是否能收到新的行情信息呢?收不到并且發(fā)出的平倉委托本身有問題,這里就變成死循環(huán)了。
if(CurrentTime - startime > 0.000005)
break; //不是跌停板,而且超過5秒,還沒成交,不等了。
}
Buy(1,close);
}
End - TB技術(shù)人員: 我覺得也不會,而且tb應(yīng)該是單線程執(zhí)行的,沒測試過,不過你可以用系統(tǒng)調(diào)試一下看看,里面加一個FileAppend然后監(jiān)控一下是那個線程在做這個fileappend(通過系統(tǒng)監(jiān)控),什么時候在輸出什么log就可以知道了啊。
- TB客服: startime = CurrentTime 這一句永遠(yuǎn)都在 if(CurrentTime - startime > 0.000005)這個之前執(zhí)行,邏輯明顯有問題。。。
- 網(wǎng)友回復(fù): 回2樓:我沒開模擬,聽說模擬服務(wù)器不好,直接開的實盤,測試起來不是很方便。
回3樓:在執(zhí)行while循環(huán)時,如果沒有中斷,應(yīng)該不會去執(zhí)行while之前的語句的,也就是說,如果while條件一直存在(死循環(huán)),那么,CurrentTime(電腦時間)會一直在走,而startime卻停留在初始賦值的數(shù)值。 - 網(wǎng)友回復(fù): 本帖最后由 niubaisui 于 2012-1-12 19:23 編輯
我現(xiàn)在最擔(dān)心的是,在執(zhí)行while循環(huán)時,帳戶持倉發(fā)生了變化(A_buyposition 由大于0變成了1),卻沒能收到,就真成了死循環(huán)了。
另外,我需要這樣子延時,而不是采用tick延時,是因為每個tick都會把程序執(zhí)行一遍,導(dǎo)致其它變量改變不好寫。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容