[TS懶人包] [保險服務]

2010年2月11日 星期四

進出場指令

介紹到這邊…總算是進入程式交易的核心了。那就是進場和出場…基本上進場的指令就是 buy 和 sell,分別是買進和賣出。而出場則是 exitlong 和 exitshort,分別是多單出場和空單出場。下面分別介紹幾種進場和出場的模式。

首先是下一根 k 線進出場,那為什麼需要等到下一根 k 線呢?因為在盤中的時候,k 線是會一直跳動的…所以如果不是等待 k 線收完線就立刻進場,那可能會因為 k 線跳動的情況使得成立的條件又消失了。

所以會有以下的程式碼:

buy next bar at market;
sell next bar at market;

exitlong next bar at market;
exitshort next bar at market;


這樣的程式分別代表:
在下一根 k 線開盤買進。
在下一根 k 線開盤賣出。

在下一根 k 線開盤多單出場。
在下一根 k 線開盤空單出場。

那如果希望能夠用 this bar 的方式呢? TradeStation 2000i 只支援 this bar at close 的方式,也就是進出場在目前這根 k 線的收盤價。

不過其實在交易執行的過程中…程式是沒辦法知道 k 線什麼時候才算收盤的…所以它的判斷方式還是需等待下一根 k 線出場後,它才知道原來上一根 k 線已經收線了。

也就是 next bar at market 其實是和 this bar at close 是一樣的。只是在 k 線圖上面標示的進出場點位會不同而已。這點還請特別注意一下…因為有時候收盤價你是買不到的,以日線程式來說…你程式寫著你要進場在今天的收盤價,可是你必需等待明天開盤後才知道原來今天已經收盤了。所以其實你能進場的價位是在明天的開盤價。

不過程式回測卻是把你進場的點位標示在今天的收盤價,所以這就會產生了回測時候績效是錯誤的情況了。


再來就是,如果我希望是觸點就進出場的話呢?那就必需用到 stop 或是 limit 了。關於 stop 和 limit 的分別…請先參考一下:搞清楚 Stop 和 Limit

這個部份在進出場的話會寫成這樣:

buy next bar at 9000 stop;
sell next bar at 6000 stop;

exitlong next bar at 9000 stop;
exitshort next bar at 6000 stop;

等…分別代表著:
從下一根 k 線開始觸價 9000 點買進。
從下一根 k 線開始觸價 6000 點賣出。

從下一根 k 線開始觸價 9000 點多單出場。
從下一根 k 線開始觸價 6000 點空單出場。

當然你可以把 9000 或 6000 等固定的點位在程式內用一個變數取代它…而這個變數可能會是你計算出來的某個價位。

比較需要注意的是…即使是用觸價就進出場的方式…你還是必需等待下一根 k 線才會開始執行你的命令。假如你開的是 5 分 k 並寫下這樣的程式碼:

if time = 900 then
buy next bar at 6000 stop;


這樣最早的進場會是在 9:00 那根 k 線的下一根。並不會在當根 k 線就產生訊號。


基本上我是不太建議用 this bar 的方式來寫策略,因為會有回測的訊號和即時的訊號不一樣的情況產生。


總算可以有讓大家練習的機會了…請寫一下跳空開高就買進,跳空開低就賣出的程式吧。至於怎麼判斷開高、開低,那就動動頭腦想一下囉。下一篇會把這個練習程式寫出來。

沒有留言:

張貼留言

請留下您的大名…匿名者恕不回應…

Related Posts Plugin for WordPress, Blogger...