交易訊不會無中生有、憑空想像而出現,通常會將想要觀察的指標疊加在線圖上,再由圖上去找買賣規則的靈感,此篇就以前二篇開發連續創高或連續創低的指標來開發交易訊號。
首先觀察指標在線圖上的現象,連續創高後很有機會拉回,但以連續三根判斷,出現的標示點太多,且會有連續紅點或綠點出現,代表著若依紅綠點進行逆勢交易,會有進場過早的問題產生,此時,我們試著將連續三根改為連續五根觀察看看。
由上圖可發現,改為五根K棒後,紅、綠點的數量明顯變少,而且標示的K棒的位置當成進場點,則位置會比三根K棒的位置好多了。
在證券心理學中,有一很著名的投資偏差行為 - 「確認偏誤」:確認偏誤是認知心理學中的術語,用來描述人們自然傾向於接受能夠證實他們已有信念的信息。在行為金融學中,專家發現這一基本原則在市場參與者中尤其普遍。投資者常尋找能夠支持他們現有觀點的信息,同時忽略與之相矛盾的事實或數據。這種認知偏誤可能導致他們的決策價值下降。
我們可能只專注於有效的進場點,而忽略了其他進場點的虧損現象,因此最好的方式,就是將觀察到的現象,寫成交易訊號,利用歷史資料來確認觀察到的現象是否在歷史行情也可產生獲利。
在我們觀察過程中,發現由三根K棒改成五根K棒後,效果有變好,因此在訊號的輸入參數,就把K棒數當為參數,以利未來最佳化使用。在MC訊號的輸入參數均可拿來進行最佳化調整,讀者可把未來想要調整的參數寫到Inputs的參數名稱中。
Inputs:BarCount(5);
交易邏輯先以簡單的,連續創高點條件成立後,即在下根K棒以開盤價賣出,連續創低點條件成立後,即在下根K棒以開盤價買進。
If _ContinueBreakOut(BarCount, 1) Then
Begin
SellShort ("SE_BreakOut") Next Bar Open;
End;
If _ContinueBreakOut(BarCount, -1) Then
Begin
Buy ("LE_BreakOut") Next Bar Open;
End;
很簡單的幾行程式碼就將一個逆勢交易訊號完成,當然績效如何,又另當別論,接下來將此訊號掛載至MC來看看交易績效如何。新增訊號與新增指標類似,一樣在圖表上按下滑鼠右鍵後,選擇「新增指標」,然後點選至「訊號」的頁籤,即可看到我們剛寫好的「_ContinueBreakOut」的訊號,點選後按下確定。
新增指標時,系統會以預設參數當成訊號的參數,在此先按下「Close」按鈕,讓訊號新增至圖表上。
新增後,在圖表上可看到我們設定的訊號名稱「LE_BreakOut」及「SE_BreakOut」的訊號在圖上顯示,表示該根K棒的開盤價是訊號的進場點,而在二個進場點之間,有綠色虛線或紅色虛線連接,代表著該筆交易是獲利或虧損(綠線表示獲利、紅線表示虧損,讀者可依自己習慣更改為自己習慣的顏色),本訊號程式只有多單進場及空單進場的訊號,即代表一但進場後,就沒有空手的時間點(這方法並不好,在後續的文章中,將對此進行探討及改善)。
在此先討論筆者在訊號的寫作習慣(當然讀者也可依自己的習慣用法修改),這些習慣方便於訊號的檢討改進,也盡量增加績效報表的可信度。
筆者以前在開發自動下單程式時,同行就發生過下單程式無法結案的例子,其原因就是委託人使用This Bar Close,在實單驗證時,就常發生漏訊號的情形,筆者在接這類委託案時,都會先確認委託者的寫法,以避免這類的尷尬情況發生。讀者在開發策略時,也要確實確認自己的程式,以避免這類的誤差。