上次我們看到,在過去數年,若新高新低比率背馳,常能預視大市將作出轉勢。
然而,在今次的升浪中,卻未能發出有效預測。
16年4月時,出現了一次頂背馳,其後出現了一次小型調整。其後,在今年4月,再出現了一次頂背馳。但這一次,非但沒有回調,更突破急速向上。
到底是什麼原因令到今年背馳失效呢?我認為有兩個可能原因:
1. 過去數年是大型上落市,因此,轉角的情況較多;而今年是單邊升市,所以即使背馳也不影響升勢。
2. 今年證監打擊殼股市場,嚴重影響炒作氣氛,導致中小股炒作活動減少,未能隨大市上升。要知道,港股主板雖有1800多隻,但有超過1000隻都是無投資價值的小型、蚊型炒股、殼股。當這堆股半死不活,自然影響比率數字。
現時,再次出現一次頂背馳,到底這次會出現一次較為顯注的調整,還是繼續突破向上呢?也許我們需要從更多其他角度分析,才能找出答案。
2017年12月1日 星期五
2017年11月28日 星期二
新高新低比率 (三)
上次成功地製作出22天新高比率的數據,並畫到股價圖的下方,方便分析。
新朋友可以重溫一下:
Scan完後,便會多了一個記錄著22天新低數據的Ticker: ~NewLowAmount。
把它除以所有股票數量,得出22天新低比率,然後用Foreign plot出來,變大功告成。
我把新高比率設定成綠色,新低比率設定成紅色,方便觀看。
初步可以看到,大部份時間指數上升時,新高比率會愈來愈高,直至見頂回落;而指數下跌時,新低比率則會愈來愈高,直至見底回升。
為了更直觀地查看指標,我決定把新低比率變成負數,同時把指標變成Histogram。
這樣,指標升跌的方向就會變得跟指數升跌的方向一樣,方便分析任何異常情況。
比如說,技術分析中,常用的背馳概念,或許在這個新高新低比率中,也能應用,幫助分析後市?
比如說,2013、2014、2015年均出現指數與新高新低比率的走勢背馳的情況。指數上升,但創新高的股票比率卻下跌,此現象我們稱為頂背馳,或熊背馳,結果後市見頂回落。
有頂背馳,自然就有底背馳,2012、2014、2015均出現過此現象,指數一底低於一底,但創新低的股票卻愈來愈少,其後大市均見底或出現中期反彈。
假如將其套用到這兩年的市況,又是否適用呢?
續。
新朋友可以重溫一下:
這一次,我打算把新低指標也加到圖上,再來看看是否有助預測後市走勢。
既然我們已知道新高比率如何製作,現在要製作新低比率並不難。
在原本的Formula 上加兩行即可:
New_Low_Amount = Low < Ref ( LLV (Low, 22), -1);
AddToComposit ( New_Low_Amount, "~NewLowAmount", "X");
既然我們已知道新高比率如何製作,現在要製作新低比率並不難。
在原本的Formula 上加兩行即可:
New_Low_Amount = Low < Ref ( LLV (Low, 22), -1);
AddToComposit ( New_Low_Amount, "~NewLowAmount", "X");
Scan完後,便會多了一個記錄著22天新低數據的Ticker: ~NewLowAmount。
把它除以所有股票數量,得出22天新低比率,然後用Foreign plot出來,變大功告成。
我把新高比率設定成綠色,新低比率設定成紅色,方便觀看。
初步可以看到,大部份時間指數上升時,新高比率會愈來愈高,直至見頂回落;而指數下跌時,新低比率則會愈來愈高,直至見底回升。
為了更直觀地查看指標,我決定把新低比率變成負數,同時把指標變成Histogram。
這樣,指標升跌的方向就會變得跟指數升跌的方向一樣,方便分析任何異常情況。
比如說,技術分析中,常用的背馳概念,或許在這個新高新低比率中,也能應用,幫助分析後市?
比如說,2013、2014、2015年均出現指數與新高新低比率的走勢背馳的情況。指數上升,但創新高的股票比率卻下跌,此現象我們稱為頂背馳,或熊背馳,結果後市見頂回落。
有頂背馳,自然就有底背馳,2012、2014、2015均出現過此現象,指數一底低於一底,但創新低的股票卻愈來愈少,其後大市均見底或出現中期反彈。
假如將其套用到這兩年的市況,又是否適用呢?
續。
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的比率,這又要怎樣做呢?
續。
要得到某天的數據的話,可以用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的比率,這又要怎樣做呢?
續。
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隻了。
好,我先看看這些股票,明天再說。
其中一個我常用的方法是看創新高股票的名單,這個名單在不少財經網站都會有。但既然有了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隻了。
好,我先看看這些股票,明天再說。
訂閱:
文章 (Atom)
200天EMA (二)
上次我指出恆指在明年第一季將會回落至200天EMA水平,理據是什麼? 其實主要是運用中值回歸(Mean Reversion)的概念。由1990年至今,恆指未曾試過有一年,指數是完全沒有掂到200天EMA的。換句話說,不論是牛市或熊市,每個日曆年,恆指都會至少一次回到200天...
-
上次我們看到,在過去數年,若新高新低比率背馳,常能預視大市將作出轉勢。 然而,在今次的升浪中,卻未能發出有效預測。 16年4月時,出現了一次頂背馳,其後出現了一次小型調整。其後,在今年4月,再出現了一次頂背馳。但這一次,非但沒有回調,更突破急速向上。 到底是什...
-
上次我指出恆指在明年第一季將會回落至200天EMA水平,理據是什麼? 其實主要是運用中值回歸(Mean Reversion)的概念。由1990年至今,恆指未曾試過有一年,指數是完全沒有掂到200天EMA的。換句話說,不論是牛市或熊市,每個日曆年,恆指都會至少一次回到200天...
-
上一次,我們成功得到了「22天新高股票數量」這個數據,但又來了兩個問題: 1. 怎樣把它放到跟指數一起看,方便分析? 2. 現在是一個absolute的數量,每周都有新股上市,股票數量不斷增加,如果分析的時間跨度長的話,「22天新高股票數量」一定會愈來愈大,就很難拿以前的數...












