關(guān)于return問(wèn)題 [開拓者 TB]
- 咨詢內(nèi)容:
- Params
- Numeric offSet(1); // 委托價(jià)格偏移,為了保證成交
- Numeric BeforeMins(5); // 收盤前幾分鐘開始操作
- Vars
- Numeric tempPos; // 倉(cāng)位
- Numeric DeleteOrderTickCounter; //Tick計(jì)數(shù)器
- Numeric HasSendOrder(0); //撤單標(biāo)志
- Begin
- If(BarStatus == 0) //第一個(gè)bar時(shí),對(duì)Tick計(jì)數(shù)器、撤單標(biāo)志初始化、并存放全局變量
- {
- DeleteOrderTickCounter = 9999;
- HasSendOrder = 0;
- SetGlobalVar(0,DeleteOrderTickCounter);
- SetGlobalVar(1,HasSendOrder);
- }Else //其他bar、從全局變量中讀取撤單tick計(jì)數(shù)器撤單標(biāo)志的值
- {
- DeleteOrderTickCounter = GetGlobalVar(0);
- HasSendOrder = GetGlobalVar(1);
- }
- If(CurrentTime > (0.1459 - 0.0001*(BeforeMins-1)) && BarStatus == 2 && HasSendOrder == 0)
- {
- If(Data0.Close != InvalidNumeric && Data0.A_GetOpenOrderCount()>0) // 商品0全部撤單
- {
- Data0.A_DeleteOrder();
- DeleteOrderTickCounter = 1;
- }
-
- DeleteOrderTickCounter = DeleteOrderTickCounter + 1;
- SetGlobalVar(0,DeleteOrderTickCounter);
- If(DeleteOrderTickCounter < 5) Return; // 撤單后需要延遲幾個(gè)Tick才平倉(cāng)(Tick開始計(jì)數(shù),為了延遲5個(gè)Tick后的平倉(cāng)用)
- tempPos = Data0.A_BuyPosition();
- If(tempPos > 0) // 平多單
- {
- Data0.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data0.Q_BidPrice-offSet*Data0.MinMove*Data0.PriceScale);
- }
- tempPos = Data0.A_SellPosition();
- If(tempPos > 0) //平空單
- {
- Data0.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data0.Q_AskPrice+offSet*Data0.MinMove*Data0.PriceScale);
- }
-
- HasSendOrder = 1;
- SetGlobalVar(1,HasSendOrder);
- }
- End
- 誰(shuí)能說(shuō)說(shuō) If(DeleteOrderTickCounter < 5) Return;這條語(yǔ)句return返回到哪嗎?是不是返回程序的第一行,如果是的話那豈不是如果條件不滿足的時(shí)候會(huì)一直撤單,還有一個(gè)問(wèn)題就是,比如說(shuō)在15分鐘線上執(zhí)行程序,在某一根bar上檢測(cè)到撤單信號(hào),但是這跟bar要過(guò)15分鐘才轉(zhuǎn)到下一根bar那么這個(gè)程序在這跟bar是不是來(lái)回的執(zhí)行?
- Params
- TB技術(shù)人員:
執(zhí)行到return,那么后面的語(yǔ)句就不再執(zhí)行。待下一個(gè)tick或K線進(jìn)來(lái),從頭開始新一輪的運(yùn)算。
撤單執(zhí)行后,那么已報(bào)單就變成0,之后就不會(huì)再滿足撤單的條件了呀。所以不會(huì)一直撤單 的。
以你說(shuō)的15分鐘線例子,我沒有看懂,不明白轉(zhuǎn)到下一個(gè)bar與在當(dāng)前bar來(lái)回執(zhí)行的關(guān)系是什么? - TB客服:
小米 發(fā)表于 2014-8-28 15:33
執(zhí)行到return,那么后面的語(yǔ)句就不再執(zhí)行。待下一個(gè)tick或K線進(jìn)來(lái),從頭開始新一輪的運(yùn)算。
撤單執(zhí)行后,那 ...
我的意思是,15分鐘的bar不是要在一根bar上執(zhí)行15分鐘嗎,比如說(shuō)在這根bar一開始就已經(jīng)撤單,是不是這個(gè)程序還要在這根bar上執(zhí)行,給過(guò)一個(gè)tick執(zhí)行一次 - 網(wǎng)友回復(fù):
yekunpeng 發(fā)表于 2014-8-28 16:12
我的意思是,15分鐘的bar不是要在一根bar上執(zhí)行15分鐘嗎,比如說(shuō)在這根bar一開始就已經(jīng)撤單,是不是這個(gè) ...
整個(gè)公式是要不停地一遍又一遍地運(yùn)算的。 - 網(wǎng)友回復(fù):
小米 發(fā)表于 2014-8-28 16:15
整個(gè)公式是要不停地一遍又一遍地運(yùn)算的。
哦,差不多懂啦,謝謝。還想問(wèn)一下AvgEntryPrice建倉(cāng)平均價(jià)格怎么理解,比如說(shuō)以2300點(diǎn)買了一手股指期貨合約,是不是AvgEntryPrice==2300,如果以兩手買呢?
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容