MultiCharts初體驗-訊號撰寫

2023/11/06閱讀時間約 5 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。
觀察指標帶來的靈感

觀察指標帶來的靈感

交易訊不會無中生有、憑空想像而出現,通常會將想要觀察的指標疊加在線圖上,再由圖上去找買賣規則的靈感,此篇就以前二篇開發連續創高或連續創低的指標來開發交易訊號。

首先觀察指標在線圖上的現象,連續創高後很有機會拉回,但以連續三根判斷,出現的標示點太多,且會有連續紅點或綠點出現,代表著若依紅綠點進行逆勢交易,會有進場過早的問題產生,此時,我們試著將連續三根改為連續五根觀察看看。

以連續五根K棒創高或創低的標示圖

以連續五根K棒創高或創低的標示圖

由上圖可發現,改為五根K棒後,紅、綠點的數量明顯變少,而且標示的K棒的位置當成進場點,則位置會比三根K棒的位置好多了。

在證券心理學中,有一很著名的投資偏差行為 - 「確認偏誤」:確認偏誤是認知心理學中的術語,用來描述人們自然傾向於接受能夠證實他們已有信念的信息。在行為金融學中,專家發現這一基本原則在市場參與者中尤其普遍。投資者常尋找能夠支持他們現有觀點的信息,同時忽略與之相矛盾的事實或數據。這種認知偏誤可能導致他們的決策價值下降。

我們可能只專注於有效的進場點,而忽略了其他進場點的虧損現象,因此最好的方式,就是將觀察到的現象,寫成交易訊號,利用歷史資料來確認觀察到的現象是否在歷史行情也可產生獲利。

新增訊號的空白文件

新增訊號的空白文件

在我們觀察過程中,發現由三根K棒改成五根K棒後,效果有變好,因此在訊號的輸入參數,就把K棒數當為參數,以利未來最佳化使用。在MC訊號的輸入參數均可拿來進行最佳化調整,讀者可把未來想要調整的參數寫到Inputs的參數名稱中。

Inputs:BarCount(5);
將K棒數當為輸入參數

將K棒數當為輸入參數

交易邏輯先以簡單的,連續創高點條件成立後,即在下根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;
條件成立後,在下根K棒以開盤價買進或賣出

條件成立後,在下根K棒以開盤價買進或賣出

很簡單的幾行程式碼就將一個逆勢交易訊號完成,當然績效如何,又另當別論,接下來將此訊號掛載至MC來看看交易績效如何。新增訊號與新增指標類似,一樣在圖表上按下滑鼠右鍵後,選擇「新增指標」,然後點選至「訊號」的頁籤,即可看到我們剛寫好的「_ContinueBreakOut」的訊號,點選後按下確定。


新增訊號

新增訊號

新增指標時,系統會以預設參數當成訊號的參數,在此先按下「Close」按鈕,讓訊號新增至圖表上。

以訊號預設參數新增

以訊號預設參數新增

_ContinueBreakOut訊號

_ContinueBreakOut訊號

新增後,在圖表上可看到我們設定的訊號名稱「LE_BreakOut」及「SE_BreakOut」的訊號在圖上顯示,表示該根K棒的開盤價是訊號的進場點,而在二個進場點之間,有綠色虛線或紅色虛線連接,代表著該筆交易是獲利或虧損(綠線表示獲利、紅線表示虧損,讀者可依自己習慣更改為自己習慣的顏色),本訊號程式只有多單進場及空單進場的訊號,即代表一但進場後,就沒有空手的時間點(這方法並不好,在後續的文章中,將對此進行探討及改善)。

在此先討論筆者在訊號的寫作習慣(當然讀者也可依自己的習慣用法修改),這些習慣方便於訊號的檢討改進,也盡量增加績效報表的可信度。

  • 訊號命名
    筆者在多單進場、多單平倉、空單進場、空單平倉會加上前綴字後,再接主要的訊號名稱,訊號名稱要取名有義意的名稱,在日後檢討時,才能一眼就看出是由那個訊號觸發,前綴字的義意如下:
    LE(Long Entry):多單進場(在MC的指令為Buy)。
    LX(Long Exit):多單平倉(在MC的指令為Sell)。
    SE(Short Entry):空單進場(在MC的指令為SellShort)。
    SX(Short Exit):空單平倉(在MC的指令為BuyToCover)。
    讀者若看到這樣的前綴字命名法,大概寫作者都是早期就接觸到TradeStation的前輩,會這樣加前綴字主要來自於TS在新增策訊號時,顯示這個訊號具有那幾種進出場,如下圖(圖片由TradeStation的教學文件截取)。
TradeStation 2000i 新增訊號

TradeStation 2000i 新增訊號



  • 進場時機點
    筆者在進場(或非停損的出場)均會使用Next Bar Open來寫,這代表著在下一根的開盤價買進,這寫法有二個優點,第一是用開盤價當交易價,在實單檢討時,方便紀錄滑價的點數(在自動交易再設定為市價單,就可避免用開盤價買不到的問題)。第二是使用下一根買進,有開發者會用This Bar Close,在日內週期的K線圖看起來是沒有什麼問題(本根的收盤會接下根的開盤),但若剛好遇到該交易時段的最後一根K時,就會系統出訊號且紀錄績效,但實單無法主場的問題(因為已收盤,無法進場)。在此建議讀者在進場訊號(或非停損出場訊號)均使用下根K進行觸發。

筆者以前在開發自動下單程式時,同行就發生過下單程式無法結案的例子,其原因就是委託人使用This Bar Close,在實單驗證時,就常發生漏訊號的情形,筆者在接這類委託案時,都會先確認委託者的寫法,以避免這類的尷尬情況發生。讀者在開發策略時,也要確實確認自己的程式,以避免這類的誤差。







15會員
55內容數
金融市場入門新手所必知的基本知識
留言0
查看全部
發表第一個留言支持創作者!