2008年4月24日 星期四
簡易說明HTS的交易指令
逛逛論壇或是看看許多對HTS有興趣,但仍在學習以HTS為交易平台的程式交易,交易指令上的運用算是一個很基礎但是卻有很常見到人犯錯的地方。
首先我先解釋一下什麼是交易指令。
程式交易通常就是先有了一串判斷行情變化後,接著決定當下是要買進還是放空或是把手上部位平倉的動作,而這個動作就是交易指令。
HTS的交易指令常見模式有這些,族繁不及備載:
BUY THIS BAR AT MARKET
BUY THIS BAR AT 9500 OR HIGHER
BUY THIS BAR AT 8500 OR LOWER
BUY THIS BAR AT CLOSE
BUY NEXT BAR AT MARKET
BUY NEXT BAR AT 9500 STOP
BUY NEXT BAR AT 8000 LIMIT
這是以買進指令為範例,要放空的話就是把BUY換成SELL,如果要多單平倉或是空單平倉則把BUY代換成EXITLONG、EXITSHORT。
從以上那一堆買進指令的模式可以看出,一個交易指令分成三個部份,第一部分為:做什麼動作?也就是BUY(買進)、SELL(放空)、EXITLONG(多單平倉)、EXITSHORT(空單平倉)共四種。第二部份則是動作的時間:THIS BAR(現在當下的K線)、NEXT BAR(下一根或是未來的K線)。最後則是價位:價位就可以任你指定或是一些常用的描述,比如MARKET(市價)、OR HIGHER(收盤價比指定價格更高)、OR LOWER(收盤價比指定價格更低)、STOP(穿價)、LIMIT(限定價)。
如果你看到這邊還沒暈倒的話,那麼請咬牙繼續看下去:他奶奶的不過是教一個笨電腦做點事嘛~弄得人昏頭轉向的。
接著我要提的是禁忌!
在交易指令上,不論你想做的動作是BUY、SELL、EXITLONG、EXITSHORT其實通常不會有太大問題,在HTS中,有一些交易指令的組合上只要你做了如下的配對,就可以保證你做出來的回測績效表絕對是BULL AND SHIT。
1. THIS BAR 配上 MARKET:在當下市價成交,這為什麼是錯的?因為所謂的MARKET在盤中與事後就是不一樣的,詳情請讀本人著作:期貨操作不靠內線。
2. THIS BAR AT xxx STOP:這個錯誤的原因是因為HTS用收盤價在事後當時是否條件成立。在盤中,也許價格真的穿過了你指定的價格,但是那根K線收盤價卻沒有超過你的指定價位,事後,HTS會把這筆交易訊號用立可白把它給塗了,當作沒發生過,可是盤中你的確看到他的交易動作了@@。
3. THIS BAR AT xxx LIMIT:這跟第2種是一樣的意思,盤中價格真的有拉回來,但是收盤價沒有,那這筆交易就被抹了。
4. 唯一THIS BAR可以使用的配對是OR HIGHER、OR LOWER,但這使用這樣的交易指令卻不可單獨使用,並且,你使用這樣的交易指令模式,所採用的判斷條件,絕對不能使用到含有當下K線的數據資料或其衍生數據(通常是指標數值,常常被用的KD、RSI、MACD、MTM...通通都是!)要使用這樣組合的交易指令的標準樣板如下:
IF HIGH >= 9500 THEN
IF OPEN >= 9500 THEN
BUY THIS BAR AT OPEN OR HIGHER
BUY THIS BAR AT OPEN OR LOWER
ELSE
BUY THIS BAR AT 9500 OR HIGHER
BUY THIS BAR AT 9500 OR LOWER
END IF
END IF
這是用於突破的穿價成交的模式。
其實,HTS的交易指令最大爭議就是THIS BAR這個部份,因為如果不能慎用在這我認為唯一可以使用的方式,HTS會幫你創造一個美麗回測績效表的幻夢,是的~只是幻夢,而且:The dream will never come true。
如果你自己不能很謹慎的掌握This Bar這個所謂的"當下",我建議你一律使用Next Bar這個下一根或未來的交易時間指定,這是一個在現在訂好計畫等著被執行的態度。不論是指定價格等著穿價成交的NEXT BAR AT xxx STOP、等著拉回才進場的NEXT BAR AT xxx LIMIT或是下一根K線一出現就立刻動作的NEXT BAR AT MARKET,這會是不容易出錯的交易指令。
但是,不管你的交易指令是否運用This Bar或是Next Bar,你在編寫完成交易程式後,有一件事仍是絕對不能省略的,那就是到K線圖上去確認每一根K線是否有與你的交易想法上不該出現交易訊號卻出現或是該有交易訊號卻沒出現,以及當時的標示價位是不是都是你指定的位置?三者不齊備的話,那個回測績效表就不用看了,而這樣的精神,不論你使用的交易軟體是HTS或是TS或是其他的軟體都是一樣的。想一想,你確定你的交易想法真的有讓笨電腦完全搞懂了嗎?也許問題不出在交易指令上,而是在條件判斷的邏輯上呢!
熱門文章
-
在 MultiCharts 裡,本來我以為 EntryPrice(0) 就代表了最後一個進場的成本價,經過測試後,確定了 EntryPrice( 0 ) 不是最後一次進場價,而是最後進場方向的第一筆價格(可查閱"程式交易語法大全 page 255")。什麼意思...
-
去年開發「 把策略訊號轉換成選擇權去執行 」的時候,一直有個實務上的困擾:標的物價格。 我要把訊號轉成選擇權的時候,事前不能精準的知道要交易哪一個履約價、Put 或 Call,需要在訊號或市況變化的當下才決定交易標的。但在 MultiCharts 的運作架構上,需要開啟欲取...
-
在 MultiCharts 或是 TradeStation 中都有 Set開頭的一些指令可以運用,比如 停損─SetStopLoss、停利─SetProfitTarget,這些都是所謂的 ThisBar 模式運作的特殊指令,它們讓你在條件成立的當根K棒就可以做出對應動作,而不是一...
-
看到朋友分享的一篇文章( https://www.facebook.com/eric.hsu.73/posts/9305791976115818 ),截圖如下: 簡單總結一下: 決策是否投入賭局,要在賭局對自己呈現正期望值,並且如果賭輸的損失發生時自己仍能多次承受的前提下才...