對(duì)于之前就上線的onbaropen事件(開(kāi)盤觸發(fā)),已經(jīng)有不少用戶積極地使用了起來(lái),使得程序運(yùn)行效率提高。而現(xiàn)在TBquant繼續(xù)推出另一個(gè)息息相關(guān)的onbarclose事件(收盤觸發(fā))。
顧名思義onbarclose表示程序執(zhí)行過(guò)程中,在下一個(gè)baropen之前,可以再執(zhí)行當(dāng)前bar?最后一次,就會(huì)觸發(fā)onbarclose事件。
Onbarclose的利用同樣可以使得程序執(zhí)行效率可以提高,可以把需要在收盤執(zhí)行的命令放到收盤來(lái)執(zhí)行。而有了開(kāi)盤事件和收盤事件,兩者一前一后,前后呼應(yīng)可以把K線系統(tǒng)里2個(gè)關(guān)鍵的時(shí)間結(jié)點(diǎn)的任務(wù)歸納起來(lái)。
舉個(gè)例子,比如我們平時(shí)做收盤價(jià)金死叉交易,從舊的方法上講我們會(huì)等待一個(gè)K線走完,在第二個(gè)K線的開(kāi)盤進(jìn)行交易,那么理論上還是有那么些差別的,明明希望用的是close價(jià)格,但實(shí)際操作上必須把條件回溯一個(gè)周期,再使用當(dāng)前bar的open價(jià)格。
比如在onbar事件下的操作方法:
con_1 = crossover(ma1,ma2);
if( con_1[1] )
{
???????? Buy(1,open);
}
這樣的操作是正確的,但是從邏輯上講是進(jìn)行了一次轉(zhuǎn)換。
當(dāng)使用onbarclose的話:
???????? Con_1 = crossover(ma1,ma2);
if( con_1 )
{
???????? Buy(1,close);
}
從一致性上講,當(dāng)你想要用close價(jià)格去成交,開(kāi)倉(cāng)語(yǔ)句中使用的價(jià)格也是close,邏輯上不進(jìn)行轉(zhuǎn)換。
另外的,收盤價(jià)事件有一個(gè)特殊節(jié)點(diǎn),就是在即將跨日的K線上,比如當(dāng)根K線即將收盤時(shí),比如11;30或者15:00這樣的時(shí)間。如果卡在最后一刻進(jìn)行交易的話,那么程序雖然執(zhí)行邏輯無(wú)誤,但是因?yàn)榫W(wǎng)絡(luò)等多重因素,你的報(bào)單很可能成為廢單,所以我們?cè)谠O(shè)計(jì)onbarclose事件時(shí)把這點(diǎn)也考慮了進(jìn)去,客戶可以控制距離收盤K線結(jié)束前的一小段時(shí)間,比如15:00收盤,我們控制該onbarclose觸發(fā)的時(shí)間為15:00前的5秒。這樣就可以完美規(guī)避,收盤最后沒(méi)入場(chǎng)的尷尬。實(shí)戰(zhàn)中這是一個(gè)非常重要的問(wèn)題,所以我們?cè)谠O(shè)計(jì)時(shí),把這個(gè)問(wèn)題提前解決了。
以上幾點(diǎn)是onbarclose的一些應(yīng)用和設(shè)計(jì),用戶可以通過(guò)公式直接在收盤價(jià)操作,該事件讓編程基礎(chǔ)一般的朋友也能得心應(yīng)手。
?
?
?來(lái)源:CXH99.COM
如果是在小時(shí)k線中,應(yīng)用onbarclose中,SetTriggerBarClose(0.095900),直到9:59:30才出開(kāi)倉(cāng)信號(hào),會(huì)在9:59:30或稍后幾秒即時(shí)開(kāi)倉(cāng)嗎?
?
就告訴一下??SetTriggerBarClose(settime); 放哪里的功夫,都不肯回答。這個(gè)社區(qū)是用來(lái)干嘛的?
回答個(gè)問(wèn)題有那么難嗎?