管理員老師好!我寫了一個(gè)日線交易系統(tǒng),想問有什么辦法可以實(shí)現(xiàn)每天收盤前的1分鐘下單開平倉,可否簡單舉例說明。因?yàn)槿绻胣ext bar at market開平倉的話容易遇到開盤價(jià)滑價(jià)較大或是跳空的情況,謝謝!
?
您的問題很明確,也很簡短,但是涉及的點(diǎn)很多!
第一、您的周期是日線周期,若要實(shí)現(xiàn)收盤前1分鐘下單,需要開啟bar內(nèi)模式;但是bar內(nèi)模式會(huì)每筆tick都計(jì)算一次,為避免不必要的計(jì)算,您可以使用if條件判斷語句,將主要的代碼放在條件判斷中,這樣可以減少不必要的計(jì)算量。
第二、收盤前1分鐘下單,也就是14:59到15:00之間,那么不活躍的商品合約可能提前收盤(也就是14:59之后沒有行情),這種情況就沒有辦法解決,所以您需要應(yīng)用到比較活躍的商品合約上。
第三、需要使用到判斷時(shí)間的關(guān)鍵字q_time,但是這個(gè)只能在實(shí)時(shí)行情中才可以取到值,不能用于回測中;而關(guān)鍵字time可以用于回測,但是一般情況下只能取到每根bar的收盤時(shí)間,若要取每根bar的bar內(nèi)的tick時(shí)間,需要使用開啟精細(xì)資料;當(dāng)然也可以將time和q_time的時(shí)間結(jié)合起來,需要作一些特殊處理。
第四、下面給一下簡單的例子,因?yàn)椴惶宄枰褂媚欠N情境:
[IntrabarOrderGeneration=true]
var: intrabarpersist ttime(0);
if ttime<1459 and q_time>=1459 then
buy next bar at market;
?
ttime=q_time;