2017年11月10日 星期五

選出每日新高的股票

由於我大部份時間都是選強勢股,做順勢交易,所以很重要的是要知道當前哪些股份是強勢股。

其中一個我常用的方法是看創新高股票的名單,這個名單在不少財經網站都會有。但既然有了Amibroker,那我就可以DIY自己的創新高股票名單了。不但可以自訂參數,或加上額外的條件,而且以後相同的程式碼亦可拿去放進策略裡測試。

在Amibroker裡,有一個很有用的Function:HHV(Highest High Value)。

語法是這樣的:HHV(X, n)

- X是O,C,H,L,V
- n 是時間參數

比如,10日內的最高價就是 HHV(High, 10)。

那選出創10日新高的股票就很簡單是 High > HHV(High, 10)。

可是,卻沒選出一隻股票出來。



這沒有可能,又不是大跌市,而且只是10天新高,又不是1000天,按理應該有很多隻,所以是哪裡有問題呢?。檢查了時間和選股範圍都沒有問題,那就應該是程式碼出問題。

對了,原來這10天內的最高是把今天的最高都算進去的,所以即使今天創了新高,今天的高位亦只能等於10天內的最高,自然是選不出任何股票了。

哪怎麼辦呢?

怎樣能寫出過去10天(不計今天)的最高呢?

原來要用到Ref這個Function。

這個Function正正是用來把數列移動的。

比如說,Close 就是收市價。那前一天的收市價就是 Ref(Close, -1)

既然,10日的最高價是 HHV(High, 10)。
那前一天的10日最高就是 Ref(HHV(High, 10), -1) 了。

我們再試一次:



有84隻股票選了出來呢!終於成功了!

但84隻太多了,我也不想看這麼多,把參數改一改,改成100:



只剩下33隻了。

好,我先看看這些股票,明天再說。









沒有留言:

張貼留言

200天EMA (二)

上次我指出恆指在明年第一季將會回落至200天EMA水平,理據是什麼? 其實主要是運用中值回歸(Mean Reversion)的概念。由1990年至今,恆指未曾試過有一年,指數是完全沒有掂到200天EMA的。換句話說,不論是牛市或熊市,每個日曆年,恆指都會至少一次回到200天...