2017年11月16日 星期四

新高新低比率 (一)

上星期分享了選出創新高股票的方法。週末時,我在想如果利用每天創新高創新低的股票比例,是否可以幫助判斷大市趨勢的改變呢?但要做這個分析,首先要有每天創新高創新低的股票比例的數據。

問題是,這個每天「新高股票數量」的數據要怎樣得到,和紀錄下來呢?

要得到某天的數據的話,可以用exploration,但總不能一天一天人手紀錄下來這麼笨吧!最後,我終於找到解決之法,就是運用AddToComposite這個Function。

AddToComposite可以幫我們把數列存到一個新的Ticker中。到底是什麼一回事?我直接用例子說明。

比如我們想紀錄「22天新高股票數量」這個數列:

1.首先,我們設定這個公式條件,像前文講過的:
 High > Ref(HHV(High, 22), -1)

為了方便易看,我們用一個Variable代替這條件:
New_High_ Amount = High > Ref(HHV(High, 22), -1);

2. 然後,用AddToComposit,其語法是這樣的,詳細可參考Amibroker內的Help Content:
AddToComposite(array, "ticker", "field")

AddToComposite( New_High_ Amount, "~NewHighAmount", "X");

我講解一下,array就是把選股條件放進去,"ticker"就是輸入ticker的名稱,"field"可填"O","C","H","L","V"或"X",意思是指定把數列放進ticker中的OCHLV哪一個欄裡,如果填"X"就是放到所有欄中的意思。

3. 最後,由於要Scan才能run到這段code,所以我們要加上一段 Buy = 0; 的Code。Formula的部份就完了。


4. 那我們就可以Scan了。(當然要選好Scan的範圍,這裡就不重複了)



5. Scan完後,我們可以看到,在Market 253中,會多了~NewHighAmount。而且,在圖中,會看到一堆點,這個就是每天「22天新高股票數量」。



現在,我們終於有了「22天新高股票數量」這個數據,但又來了兩個問題:

1. 怎樣把它放到跟指數一起看,方便分析?
2. 現在是一個absolute的數量,每周都有新股上市,股票數量不斷增加,如果分析的時間跨度長的話,「22天新高股票數量」一定會愈來愈大,就很難拿以前的數字作參考。因此,必須把它化為relative的比率,這又要怎樣做呢?

續。



沒有留言:

張貼留言

200天EMA (二)

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