請(qǐng)求加入延時(shí)函數(shù),原因有幾點(diǎn)。希望能采納
作者:文華財(cái)經(jīng) 來源:cxh99.com 發(fā)布時(shí)間:2015年10月21日
- 咨詢內(nèi)容:
1,由延時(shí)來避免重復(fù)下單: tick行情500毫秒一個(gè)變化,舉例: data = Def_TickData("RB1505",1,2); IF( data[1].Bid1 > data[0].Bid1) T_Deal("RB1505",0,0,1,Offers("RB1505","bid1")); 延時(shí)500毫秒 這樣循環(huán)時(shí)因?yàn)橛?00毫秒的延時(shí),就避免了重復(fù)下單。2,減少CPU占有: 假如有10條if在判斷,算它10毫秒走完循環(huán),那么就算在 后面加個(gè)1毫秒延時(shí),也會(huì)減少模型占有CPU運(yùn)算的1/11。 何況是500毫秒一個(gè)tick。加個(gè)200,400毫秒的延時(shí)都不會(huì)錯(cuò)過行情判斷3,簡(jiǎn)單。能不能采納都告知我一下。謝謝
- 文華技術(shù)人員:
1. 重復(fù)下單,您可以加一個(gè)全局變量來解決。不需要延時(shí)函數(shù)。
比如:
data = Def_TickData("RB1505",1,2);
IF( data[1].Bid1 > data[0].Bid1 && M==0)
{
T_Deal("RB1505",0,0,1,Offers("RB1505","bid1"));
M=1;
}
2. 如果執(zhí)行一個(gè)IF,其他的IF不想在重復(fù)執(zhí)行。可以用ELSE IF來代替其他的IF.
比如:
IF(COND1)
{
....
}
ELSE IF(COND2)
{
....
}
ELSE IF(COND3)
{
....
}
- 文華客服:
這是我全部的語句,這么寫我會(huì)重復(fù)的下單,假如條件判斷里加了個(gè)M==0,條件成立后在執(zhí)行上再賦予M=1。這樣我重復(fù)是解決了,但語句就再也不會(huì)讓條件成立了。VAR_TICKDATA data;GLOBAL_VAR gdID,gdsj;VOID MAIN(){data = Def_TickData("RB1505",1,2); // 保存最近2筆的tick數(shù)據(jù)IF( data.State == 1 ){IF( data[1].Bid1 > data[0].Bid1){//MessageOut ("掛單");T_DeleteOrder(gdID);gdID=T_Deal("RB1505",0,0,1,Offers("RB1505","bid1"));//發(fā)出委托bid1gdsj=CurrentTime();}}IF (CurrentTime()==gdsj+5){//MessageOut("掛單撤銷");T_DeleteOrder(gdID);}IF (T_OrderState(gdID) == 1){//MessageOut("掛單成交,掛單止盈4點(diǎn)");T_Deal("RB1505",1,2,1,Offers("RB1505","bid1")+4);}}
- 網(wǎng)友回復(fù):
語句不會(huì)讓條件在成立是由于你沒有對(duì)M重新賦值為0 ,在平倉(cāng)委托成交后將M=0就可以了。
- 網(wǎng)友回復(fù):
我策略是tick每往上一跳時(shí)都掛買1價(jià)買,5秒沒成交就撤掛單。假如這筆掛單成交就掛賣1價(jià)+4個(gè)點(diǎn)平今。掛單平今的我會(huì)一直熬,但每個(gè)tick上跳我都會(huì)買