2010年5月22日 星期六

老闆,我要買0口!


程式交易小學堂─期貨投機事業的王道
這個標題是很奇怪的東西,因為自己 Coding 寫程式去交易的人,我還沒聽過有人這麼幹的,如果您是的話,請出個聲讓我知道,我希望...我不是怪咖啊 XD

在交易的語句中,多數下個買進指令可能是這樣 :條件成立下一根市價買進。
if Condition1 then
  Buy ("作多") next bar at Market
end if

我在開發新的交易策略時,無意中發現了這樣的一個鬼訊號,盤後我看到這個訊號,還真的不知道它是什麼鬼。阿Sir, 我的 EntryName 或是 ExitName 去哪了?槍決也要給個罪名吧...

我看著這個訊號取想這個策略中只有一個買進條件符合這個標示著見鬼了的地方,於是我去把這個買進的動作 Remark 掉,這見鬼的訊號就不見了。因為這個買進條件的交易指令是 Buy M share next bar at XXXX stop 而且是盤後可以讓它在控制下的出現/消失,所以這不是什麼 Bug ,問題一定出在這個指令上。

注意一下我這行買進指令 Buy M share next bar at XXXX stop ,M 是一個變數,用來決定這個買進動作要買幾口,也就是說,一樣的買進條件成立,但是我要買進口數不是固定的,M 這個變數由另外的條件去決定。今天這個鬼訊號的發生經過我確認是在這個時候 M=0 了,也就是說買進條件成立了,所以買進的訊號發出,但買進 0 口!本來有空單部位要變成買進 0 口。

搞懂了嗎?或許不懂~無所謂,我想說的是當交易指令成為「買進 0 口」(Buy 0 contract)的時候,效果等同 ExitShort(空單出場),很妙,這是我第一次發現這樣的效果。

至於我為什麼會讓 Buy M share next bar at XXXX stop 的 M 有機會變成 0 ?很簡單,我在限制交易次數,這是當沖的策略,我不希望這個會加碼投入的條件,在多次交易後還在動作,所以我給了它在當天交易次數超過幾次後 M=0 ,原本我的用意只是讓它變成不會動作而已,今天我發現這會變成有 ExitShort 的效果。


另外,因為這個所以我實驗了另一邊的效果,會得到 Sell 0 contract → ExitLong。這樣的效果可以有精簡程式碼的作用。

熱門文章