這幾天圈內都在傳底蓓離什么的。作為嚴肅的量化自媒體,我們就不跟著吃這波瓜了。不過,我一直很關注技術指標的頂背離和底背離,一直在追問它的成因如何,以及如何預測。
底蓓離把我目光再次吸引到這個領域來,于是突然有了一個猜想。雖然我還沒來得及完全證實它,但這個猜想,值得你鎖定我的頻道。
這個猜想是:RSI的日線頂背離,是因為周線還有上升空間。當周線RSI也達到前期高點時,就會觸發回調。此時日線雖然創新高,但高位籌碼不穩,回調增多,導致RSI下降。
背離的定義
Investopedia對技術指標的#頂背離定義為:
在國內,我們一般使用頂背離和底背離這兩個術語。最早大V中較多討論這兩個術語的,可能是炒股養家或者纏中說禪,說明這一現象在實戰中是比較受到關注的。
下圖中的右圖展示了一個日線的頂背離。左圖則是對應的周線情況。
附圖指標我使用的是RSI,它是一個非常好的震蕩指標,深刻反映了當前市場的賺錢效應和強弱力量對比。
在圖中,程序自動標注出來了k線的每一個峰和谷。這些標注使用了我們自己的自適應參數算法,在絕大多數時間、無論周期是哪個級別,都能工作得很好。不過這一次,在周線級別上,沒能觸發它標注出3月22日那一周的高點。
從右圖中我們注意到,日線上存在2月27日和3月18日兩個峰,后一個峰的價格高于前一峰,但后一個峰的RSI略小于前一峰的RSI(前高78.3,后高77.7),形成了頂背離。
我們在課程中詳細介紹過一個獨創但更準確地理論,在運用RSI時,不是低于30就會反彈,高于70就會回調,而是要看它跟前一個峰(或者谷)的RSI相比較,如果上漲時,RSI高于前一個峰對應的RSI,則有可能回調。
但這個結論也有自身的問題:一是在圖中,日線在2月27日之前,就已經突破了2024年1月25日下降通道中高點RSI,為何一直到2月27日才回調?我們在課程中已經解決了這個問題。
二是為何在2月27日之后,股價還能一直上漲,直到3月18日出現頂背離?這個頂背離問題,我也一直沒有思路,但自己著手寫了好幾個檢測頂背離的例程。
猜想和驗證
現在我們給出回答第二個問題的一個猜想,即盡管2月27日的日線RSI已經達到高位,但周線RSI仍在低位,它沒有表示反對和阻止上漲的意思,因此日線短暫調整后,在其它因素趨動下繼續上漲,直到3月22日那一周,盤中突破前高60.5,才引發了一個周線級別的大回調。
RSI是反轉指標。它只能以一定概率給出會不會反轉,但你不應該指望它給出趨勢延續的預測。那是趨勢類指標的任務。最重要的趨勢類指標,莫過于判斷均線的斜率,如果線性回歸誤差在可接受范圍以內的話。在回歸誤差較大而失效的情況下,課程中也給出了一個非常魯棒的方法。
我們還是拿數據驗證一下:
# 日線2月27日、3月18日頂背離,前者RSI 78.3,后者RSI 77.7
dclose = dbars["close"].astype(np.float64)
drsi = ta.RSI(dclose, 6)for dt in (datetime.date(2024, 2, 27), datetime.date(2024, 3, 18)):mask = dbars["frame"] == np.datetime64(dt)i = np.flatnonzero(mask)[0]print(dt, dclose[i], drsi[i])# --- output ---
# 2024-02-27 5394.03 78.3
# 2024-03-18 5648.01 77.7
從數據看出,盡管日線價格在上漲,但RSI卻下降了,構成了日線頂背離。
接著看周線:
# 周線rsi前高出現于2023年11月17日,數值為60.5
wclose = wbars["close"].astype(np.float64).copy()nov_17 = np.datetime64(datetime.date(2023,11, 17))
i = np.flatnonzero(wbars["frame"] == nov_17)[0]rsi = np.round(ta.RSI(wclose, 6), 1)
rsi[i]
前高為60.5。這里有一個技巧,如果沒看明白,可以給我留言:
# 3月22日,周線rsi數值盤中突破 61.9,高于前高60.5,觸發回調mar_22 = np.datetime64(datetime.date(2024, 3, 22))
i = np.flatnonzero(wbars["frame"] == mar_22)[0]wclose[i] = wbars["high"][i]rsi = ta.RSI(wclose.astype(np.float64), 6)
rsi[i]
rsi后高為61.9,因此觸發回調,并且這個阻力得到了確認。
引申結論及思考
在這個市場上,存在各種不同操作頻率(這是FFT和wavelet應該有用的原因)的資金。
對高頻量化,他們看的是tick級數據,可能持有幾分鐘就會調倉;散戶和量化多在日線和周線頻率上操作,持有數天就調倉;長線資金以季度為單位。越是長線的資金,資金量越大,調倉時對走向的影響越強。
現在,你應該已經猜到了,有一部分資金會在日線RSI高點時撤出;大量的資金會在周線的RSI高點撤出;而更大量的資金會在月線的RSI高點撤出。
但我猜沒有資金會根據季線的RSI高點撤出。許多真理,都不能線性外推。
我這么說的原因是,季線資金會按照基本面來進行操作,而不是技術面。有的同學會拿基本面因子與技術面因子揉在一起,無論是多因子回歸,還是機器學習,這都是不對的。它們只會相互打架、抵消。
所以,從現在起,你應該給你的股票上個鬧鐘,計算出它的日線、周線和月線RSI前期高點,然后實時監控這些指標。
一旦三者都達到高點,這輪行情就結束了。如果月線達到高點,日線和周線不在高位,但發生過頂背離,那么,勢必在高位產生過滯脹(量在堆積,但上漲幅度不大),此時主力的籌碼很多已經被交換掉了。
此時不走很危險。接下來的回調時間,可能以月計。老胡說,“我不割肉,你怎么割我?”但胡錫進終究是等不到那一天。