[教學] 從0開始MultiCharts

最近開始練習用MultiCharts寫策略
順便就來寫一篇記錄並分享目前學到的

為什麼要用程式交易?

很簡單也很重要的一點, 程式沒有感情
因此不會有紀律問題
紀律問題一直都是每個交易者很難克服的
以我個人來說, 當停損點出現時我可能沒辦法立刻停損
就算心裡知道不能凹單, 還是會想攤平賭一把
這點老實說很危險
而用程式交易就不會有這問題

第二點是邏輯
透過程式能更好的回顧整個策略的邏輯性
雖然有點算個人偏見
但我認為如果只憑感覺做交易
那跟賭博其實沒什麼兩樣

程式交易另一個優勢是回測
回測雖然不能說絕對有效
但總比直接把策略丟到市場上驗證好
而且回測也能幫助我們透過過去資料來完善目前的策略
不過自己寫一套回測系統其實很麻煩
所以才需要用MultiCharts

安裝

MultiCharts有台灣代理版國際版
台灣版本比較舊, 國際版沒中文
我個人是用國際版, 下面也都會用國際版示範


進入網站後註冊信箱
系統就會將安裝檔透過email傳過來
(不想註冊的也可以直接載我之前留下來的)
安裝好後打開會看到試用畫面


直接點選試用(Trial)就好
等上手之後可以考慮買正版
覺得太貴網路上也有方法能一直試用

使用

由於MultiCharts沒有內建我們要的資料, 所以需要自行新增
首先依照圖片順序新增交易所


新增好交易所後, 在新增的交易所點右鍵匯入資料
資料可以從yahoo財經或財報狗下載
這邊提供台指的分k


匯好資料後叫出商品視窗
如圖, 或直接在空白處右鍵點選chart window


選擇剛剛的匯入資料的交易所

依需要在設定選取想要的區間
(圖中為5分K)


完成後可以看到K線圖


新增好後就可以開始寫策略

策略

如圖新增一個空白策略


下圖是我之前隨便寫的當沖策略
策略說明:
以每日前三根K棒最高/低價作區間, 向上突破則買進
震幅大於31時出場
當價格跌破當日前三根最低價時停損


概念是把當根K棒視為一個迴圈, 執行撰寫的code
vars/var為變數宣告, 用來儲存一些我們需要的值
input也是變數, 可以用來讓MultiCharts執行最佳化得出最好的參數
Marketposition是部位狀況, 1:多單, 0:沒部位, -1:空單
MultiCharts有預設一些常用的變數和函式
例如上圖code中的HighD, High和market, 分別代表當日最高價, 當根最高價和市價
基本上很直覺, 有需要時再搜尋確切用法就好

程式撰寫完之後按F3編譯
然後回到K線圖(商品視窗)點選右鍵
選擇insert study套入訊號


在signals找到剛剛撰寫的策略


K線圖上會出現策略的買進賣出訊號
綠線為盈, 紅線為虧


點選View看完整的策略報告


左側有內建的各種圖表和報表
無聊也可以跑內建的蒙地卡羅模擬


可以看到在沒有手續費的情況下的表現
接下來看怎麼設定手續費和滑價
點選format>strategy properties


設定滑價和手續費和其他細項


最後說明怎麼最佳化
在上排的工具列找到optimize strategy

依需求選擇需要的最佳化方式
這邊用regular示範



可最佳化的參數為撰寫策略時的inputs
可以不同條件最佳化, 例如最大淨利, 最小虧損等等
設定好後MultiCharts就會幫你回測出最好的參數

結語

MultiCharts本身雖然比較難跟其他語言串接
但提供一套很方便的回測系統
透過簡單的語法就能幫助我們驗證策略

延伸閱讀
About Sean Chaox
Me

I'm soulless, so I'm recompiling my soul
I'm lifeless, so I'm enriching my life
I'm homeless, so I build this House
I am Sean, welcome to my House

沒有留言:

張貼留言