2017年4月24日 星期一

[股票投組]動能投組

股票投組對我來說是個半被動的交易方法,一開始選定一些概念後從此就不再管他,讓他自己跑自己的,就像ETF一樣,之後需要決定的只是「要不要使用這個投組」,就跟要不要使用這個ETF一樣,而不是「想辦法修改這個投組」。

以下分享一個現在自己有在使用的投組:動能投組。

這個投組組成元素有:
1. 通道突破(5週)
2. 篩選EPS>0的股票
3. 做漲最多的股票
4. 一次持有5檔

也就是說我只持有那個階段最會漲的股票,當他突破5週高點就買進,而任何一支股票跌破5週低點我就換股,換的股就是突破5週高點且最近漲最多的。

一個不知道以後有沒有辦法達成的回測績效:


可以看到10年漲了15倍,相對期貨策略來說比較少且DD也比較大,但似乎比較有可能達成。

這個投組實際上在做的時候會有一些問題:
1. 沒辦法確實將資金分為5等份,除非購買零股
2. 買最近很會漲的股票有可能開盤直接開在漲停根本買不到
3. 這個投組DD有到40%,資金管理很重要

另外一個有篩選過成交量的投組回測,績效下降但更接近真實情況:


2017年4月21日 星期五

Multicharts陣列排序函數

繼續之前的股票投組架構

Manager是一個決定誰要進場的管理員,例如Signal的條件是「破5週高點」就進場,篩選出來的股票池可能有5檔,但是資金有限或是不想一次擁有太多股票等等原因,我如果只想要進兩檔的話就需要有Manager來管理。而要決定這5檔到底最後誰要進場,可以用下方函數最排序。

函數名:StockPortfolio_Rank


用以下範例解釋此函數用法

股票排序範例



由範例可以知道在排序前StockArray是由代號依序組成的陣列:[1101,1102,1103,1104,1105],排序基準則存在另外一個ValueArray陣列裡面:[5,10,9,3,6],而排序後StockArray陣列改為由每檔股票相對應的Value依序組成:[1102,1103,1105,1101,1104],這時候如果想要進兩檔股票,則選擇StockArray[0],StockArray[1]就可以了

2017年4月14日 星期五

Multicharts實現股票投組的方法

股票投組(程式交易)決定哪檔股票進場可分為以下幾階段

階段A:篩選股票池
階段B:由股票池中選出進場標的,一般會要決定用哪個參數(EX:動能)當做排序條件,越大的越先進場

Multicharts的pmm指令可以在Portfolio Trader中讓變數互傳
藉由pmm指令達成股票投組回測具體做法可以是

1. 建立三個投組
2. 投組一(計算):專門計算進出場點、排名需要的值,傳給投組二
3. 投組二(管理):接收投組一的值,決定最後進場者,傳給投組三
4. 投組三(執行):最後執行進出場者


下次再來講程式碼...