|
提供一點想法;
1.
國外交易所大多能接收STOP單。因此您在TS類的策略中寫
if (xxxx) then BUY next bar AT yyyy STOP
其實真正的涵義是,當xxxx為真,則丟出一張觸yyyy價擇執行市價買進的停損委託單到交易所,由交易所執行接下來的觸價轉市價的洗價作業。
其中的next bar 隱含了一個丟出的委託單只在NEXT BAR有效的意念,這個在3會講
2.
同理 if (zzzz) then BUY next bar AT MARKET
指的就是zzzz為真就丟出一個市價買單。
3.
TS類的軟體,SIGNAL、STRATEGY都是只在KBAR結束的那個時刻,才執行計算一次,舉例來說五分鐘線,TS就就只會在 8:50:00, 8:55:00, 9:00:00, 9:05:00...13:45:00 各計算一次。
因此,下單命令裡面的NEXT BAR,所隱含的意義就是,既然每五分鐘才算一次,因此你的委託,是在NEXT BAR都有效的。亦即就算xxxx 在下個TICK上已經不成立,但是對不起,因為TS是五分鐘算一次,因此你的委託單在接下來的NEXT BAR的時間中,都是不會被取消的。
所以,在這類軟體原始的設計邏輯中,是沒有THIS BAR的觀念,因為他本來就是每個KBAR的結束才計算、丟出的委託單是在NEXT BAR有效的!!!!
4.
坊間的下單機,大多是從策略內把部位狀態的改變狀態送出,比方說原本部位是0,後來變成1,下單機就知道要立刻去執行買進一口。但是這邊衍生ㄧ個弔詭問題,就是上面講的,SIGNAL、STRATEGY是每根KBAR結束才運算一次,那下單機不是等於每5分鐘才能同步一次嗎? 因此早期,很多人回測用SIGNAL寫,而真正要跟下單機溝通時,就寫成INDICATOR把部位輸出。後來有[IntrabarOrderGeneration = Value]這種作法後就可以在SIGNAL裡面輸出部位解決問題了。
5.
臺灣人因為交易所沒提供STOP單的關係,思想都被侷限住了,因此當他們要寫例如 [如果價格突破PPPP 那麼就市價買進]這樣的語法的時候,十個有九個九會寫成 if c > PPPP then buy next bar at market。
然後回測了半天就是搞不懂為什麼好像都怪怪的,要嘛就是明明價格有點到過但訊號就是沒出來,要嘛就是實際下單時訊號總是慢了五分鐘。然後把腦筋動到NEXT BAR上,處心積慮想把它改成THIS BAR,想說只要THIS BAR 一定就可以解決!!!
其實這個命令只要改寫成 buy next bar at PPPP stop 就可以很簡單的解決問題了。
(最好笑的是韓國HTS還真順應民意而提供 THIS BAR 功能) |
|