日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

变点理论CUSUM在择时交易中的应用

發(fā)布時間:2023/12/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 变点理论CUSUM在择时交易中的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前看到一篇文章,變點理論CUSUM在量化交易中;列了一堆數(shù)據(jù)和公式,說結(jié)果不錯。鏈接如下:

https://max.book118.com/html/2017/0726/124391946.shtm

或者這個,就是整理版,有很詳細的公式推導,不過代碼寫的不清不楚的,應該沒寫完。

https://wizardforcel.gitbooks.io/python-quant-uqer/134.html


花了些時間研究下:

原理描述:CUSUM控制圖的設(shè)計思想是對信息加以累積,將過程的小偏移累加起來,達到放大的結(jié)果,從而提高檢驗小偏移的靈敏度。CUSUM作為一個統(tǒng)計量,其由來具有嚴格的數(shù)學推理,總的來說,是一個變點假設(shè)檢驗通過極大似然法推導得到的統(tǒng)計量。

具體推導不研究了,直接看具體引用



其實就是我之前文章說到那個那個對數(shù)收益率,形成一個對數(shù)收益率的近似正太分布。如上圖,這里有一個上下允偏量k,這里設(shè)為k = 0.02, 先說上閾值, 那么時序隊列里面,下一個時段的對數(shù)收益率大于0.02,yi則差值為正;如果差值累計yi的和Ci大于h,比如h為0.5。則觸發(fā)向上趨勢。

其實就是如果多次超過 允偏量收益率發(fā)生,或者一次非常大的收益率情況發(fā)生,使得c值大于h 就會觸發(fā)向上趨勢判斷。如果只是偶爾一次大于 允偏量,那么下一次小于k (0.02)時候,差值為負值,和值Ci就變小了,這里Max的作用就是保證C為正,不會因為多次低于k值為負值。向下趨勢判斷也是同理。


代碼如下,這里調(diào)用ta-lib庫來計算均值和標準差,速度比起用numpy還快一些。用標準差做為 允偏量k;5倍標準差為h 閾值。

#?encoding:?UTF-8 import?numpy?as?np import?pandas?as?pd import?matplotlib.pyplot?as?plt import?talib def?detect_via_cusum_lg(ts,?istart=30,?threshold_times=5):"""detect?a?time?series?using??cusum?algorithm:param?ts:?the?time?series?to?be?detected:param?istart:?the?data?from?index?0?to?index?istart?will?be?used?as?cold?startup?data?to?train:param?threshold_times:?the?times?for?setting?threshold:return:"""S_h?=?0S_l?=?0S_list?=?np.zeros(istart)meanArray?=?talib.SMA(ts,timeperiod?=?istart)stdArray?=?talib.STDDEV(np.log(ts/meanArray),timeperiod?=?istart)for?i?in?range(istart+1,?len(ts)-1):tslog?=?np.log(ts[i]?/?meanArray[i?-?1])S_h_?=?max(0,?S_h?+?tslog?-?stdArray[i-1])S_l_?=?min(0,?S_l?+?tslog?+?stdArray[i-1])if?S_h_>?threshold_times?*?stdArray[i-1]:S_list?=?np.append(S_list,1)S_h_?=?0elif?abs(S_l_)>?threshold_times?*??stdArray[i-1]:S_list?=?np.append(S_list,?-1)S_l_?=?0else:S_list?=?np.append(S_list,?0)S_h?=?S_h_S_l?=?S_l_return?S_list #數(shù)據(jù)導入 df5min?=??pd.read_csv("bar5rb8888.csv") dt0?=?np.array(df5min["close"]) listup,listdown?=?[],[] s_list?=?detect_via_cusum_lg(dt0,istart=30,?threshold_times=5) for?i?in?range(0,len(s_list)):if?s_list[i]?==?1:listup.append(i)elif?s_list[i]?==?-1?:listdown.append(i) plt.subplot(2,1,1) plt.plot(dt0,?color='y',?lw=2.) plt.plot(dt0,?'^',?markersize=5,?color='r',?label='UP?signal',?markevery=listup) plt.plot(dt0,?'v',?markersize=5,?color='g',?label='DOWN?signal',?markevery=listdown) plt.legend() plt.subplot(2,1,2) plt.title('s_list') plt.plot(s_list,'r-') plt.show()


用5分鐘螺紋鋼數(shù)據(jù)跑出來,部分如下,好像有搞頭。代碼在我Github里面可以找到

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/22259926/viewspace-2654170/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責任。

轉(zhuǎn)載于:http://blog.itpub.net/22259926/viewspace-2654170/

總結(jié)

以上是生活随笔為你收集整理的变点理论CUSUM在择时交易中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。