常態服務: 程式交易課程  交易管理系統  

2016年8月24日 星期三

日權益記錄檔(Excel)單位權益版下載


程式交易小學堂─期貨投機事業的王道
目前我用來記錄自己帳戶績效的 Excel 檔,是用 單位淨值(就是仿效基金淨值那種)的觀念為記錄的基礎,這是為了方便如果有在帳戶做入出金的需要,也不會影響到績效的評估。並且把每日單位淨值自動畫成走勢圖,就是我每增加一筆資料它就會多畫一筆上去。

如下圖,當我要從帳戶出金的時候,先把出金前的權益總值記錄下來,然後才填入出金的金額(出金用負值,入金用正值)。隔日再填入權益總值就會把出入金的因素去除後,計算單位淨值的變化。單位淨值起始值為 10,會以左上角的 期初權益 為基準點。

2016年8月8日 星期一

交易訊號穿透性


程式交易小學堂─期貨投機事業的王道
要談論穿透性這個題目之前,得先說一下什麼是穿透性。簡單的定義是,當你以某一種 pattern 而去開發出來的交易訊號(通常我們會是為了某一個商品去開發、測試訊號),不做任何修改、不改參數直接套用到別種商品,也能看到回測上的獲利的話,這樣的現象被稱為:穿透。而穿透性是指具有穿透這個現象的程度。

舉例來說,一開始我以某商品為標的,寫了個當價位在 30分線圖表的 30EMA 上時,觸及當天高點買進、價位在 30EMA 下時,觸及當天低點放空,回測顯示能夠獲利。接著我再把這個訊號套用到其他的商品去,看到有任何第二個商品也能夠回測獲利,這就是穿透的表現,而如果能夠看到獲利的商品數越多,就是更強的穿透能力,也就是比較好的穿透性(適應性)。

2016年7月30日 星期六

投資組合回測:相同參數在多商品的最佳化


程式交易小學堂─期貨投機事業的王道
我忘記了過去在哪個論壇(很有可能是 Kway),有人曾經問過如何在投資組合的回測中,做多商品都使用同參數的最佳化?有點饒舌,是嗎?容我先解釋一下這是怎樣的狀況。

因為越來越多人強調、認同,訊號應該要對不同的商品具有穿透性,以同一個訊號(參數一致)套用到多商品去看看是否其他商品(尤其是同類型)也能獲利,用來檢測這個訊號本身的穩健性的良莠如何?而在檢測訊號對參數選擇的依賴程度時,我們也會透過最佳化報表來看看是否有參數績效高原的現象存在?於是... 我們就很直覺的這麼做,讓多個商品直接執行同一個訊號,掛在同一個策略中。它會是這樣的:

2016年4月24日 星期日

進出場的方法也能最佳化


程式交易小學堂─期貨投機事業的王道
承繼自上篇「函數:十進位轉二進位」。
說實在的,這篇文章在我自己的心中就像是在引導讀者走向 Curve over fitting。這個方法,基本上這麼做跟把圖表攤出來,搞 DataMining 也滿接近了 XD

過去,我們會在策略的測試中使用"參數"最佳化,但是不同的交易方法,就寫很多個訊號,一個一個慢慢對個別交易訊號做參數最佳化,不論你的目的是找出在歷史上表現最優秀的參數,還是為了檢查參數對績效的敏感度。現在,我們可以把所有你知道的進出場"方法",做各種可能組合的最佳化。當然,個別方法中的參數也能一併最佳化。

2016年4月22日 星期五

函數:最近第N個交易時段的日線最高價


程式交易小學堂─期貨投機事業的王道
在上一篇文章(http://www.yctseng.net/2016/04/n.html),我們有了正確計算目前 K棒是該交易時段內的第幾根,接著要來引用它做出取代 highD(N) 的函數:抓取最近第N個交易時段的最高價,名稱: _highSession(N),參數:第N個交易時段,回傳值類型:數值。

函數:交易時段內的第N根


程式交易小學堂─期貨投機事業的王道
好些開發策略應用在台指時的常用簡單觀念與寫法,轉進國外期貨的時候常常會發現一堆奇奇怪怪的狀況出現,比如:我想知道最近第幾天前的高點的價位。在台灣,交易時段的時間不會出現跨日的狀況,但是現在沒有不保證未來不會有呢。當我要知道昨天日線的最高點,通常就直接引用內建函數 highD(1),一點問題都沒有。但是國外期貨呢?

2016年4月16日 星期六

函數:十進位轉二進位


程式交易小學堂─期貨投機事業的王道
緣起於某位參加我課程的同學來信問我的問題:要如何以最佳化的方式測試各種不同出場方法的組合可能?(實際內容就不在這邊贅述了)。一開始,我們用了 Switch... case 的方式去做,透過 case 的數值來做最佳化,以最佳化的方式去做,是為了大量測試。但這只能得擇一的測試結果。於是,我想到了可以用二進位的方式來做!

我們可以指定一個參數值,用這個參數值去跑最佳化,但把參數值轉換成二進位表示,然後以二進位表示中,逐位數的 0 與 1 作為待測試出場方法的...開關。這樣做,就可以大量測試各種你想得到的出場方法去做組合,甚至把各種出場方法內使用不同的參數一併做測試了。於是,我們就需要一個把十進位轉成二進位的函數了。

熱門文章