另一個視角,使用對數化資料,計算非價位指標

張國平發表於2019-07-19

之前在做時序資料整理時候學習時候,發現很多程式碼都行情資料做了對數化處理。學習了下,發現是另一個視角。

知乎查了,這個答案比較全。

  • 在很多計算中(例如做極大似然的時候),取對數可以將本來需要做的乘法變成加法;
  • 取對數可以避免數值巨大,計算機難於處理的困難;
  • 與對數有關的資料可以反映出物理量尺度的變化,例如物理中,對於各個大小不同的體系,我們仍然會希望仍然可以比較這兩個體系,這時候就需要做一些尺度變換,利用到 的有關性質,這種時候用對數來處理是很方便的,因此在處理像重整化和有限尺度標度的時候會需要用到對數曲線,只有這樣,一個 20*20 的格子才能跟 200*200 的格子來進行比較。又例如金融資料中股票價格的漲落是與股票現在的價格有關的,高股價的股票漲跌 1 元跟低股價的股票漲跌 1 元起效果完全不同,這種時候大家考慮的是對數正態分佈;
  • 對數處理之後還可以使諸多 Power-Law 的效果凸顯出來,這時候的擬合也就變成了一個線性擬合的問題。

作者:傅渥成
連結:
來源:知乎

著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。


上面答案比較理論,下面這個更好理解。

我們平時看到的K線圖幾乎都是採用 普通座標 ,而有一種叫作 對數座標 的K線圖大部分人可能沒了解過。在介紹對數座標下的K線圖的前,我們先思考一個問題:從100點漲到1300點的漲幅大還是從1000點漲到6000點的漲幅大?

普通座標下的上證月K線圖

對數座標下的月K線圖

看了上證的兩幅圖是不是有點驚訝,漲的最厲害的不是2005-2007,而是股市剛建立初那兩三年。看慣了普通座標k線圖的股民們,眼裡只有2005-2007那一撥牛市,2005年之前的股市看起來好像平淡無奇。普通座標下K線圖100點漲到1100點k線的長度和1000點漲到2000點k線圖的長度是一樣的,而對數座標下是按照上漲/下跌的幅度計算k線圖的長度的,對數座標下,100點漲到110點和1000點漲到1100點K線圖的長度是一樣的。


做了一些策略實踐,發現對於均線,布林線,唐安期通道這樣直接基於價位求出指標,使用對數化資料計算指標相關並不好。而像MACD,KDJ,CCI這樣非價位指標,使用對數化指標後,分析起來更為合理。

這裡就簡單說說VNPY中MACD指標更新支援對數化。其實很簡單,直接呼叫np.log()方法,然後增加islog引數。如果True時候,就把傳入指標對數化再計算。

# ----------------------------------------------------------------------
def macd(self, fastPeriod, slowPeriod, signalPeriod, islog = False, array=False):
    """MACD指標"""
    if islog:
        macd, signal, hist = talib.MACD(np.log(self.close), fastPeriod,
                                    slowPeriod, signalPeriod)
    else:
        macd, signal, hist = talib.MACD(self.close, fastPeriod,
                                        slowPeriod, signalPeriod)
    if array:
        return macd, signal, hist
    return macd[-1], signal[-1], hist[-1]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2651104/,如需轉載,請註明出處,否則將追究法律責任。

相關文章