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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

或者這個(gè),就是整理版,有很詳細(xì)的公式推導(dǎo),不過(guò)代碼寫(xiě)的不清不楚的,應(yīng)該沒(méi)寫(xiě)完。

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


花了些時(shí)間研究下:

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

具體推導(dǎo)不研究了,直接看具體引用



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

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


代碼如下,這里調(diào)用ta-lib庫(kù)來(lái)計(jì)算均值和標(biāo)準(zhǔn)差,速度比起用numpy還快一些。用標(biāo)準(zhǔn)差做為 允偏量k;5倍標(biāo)準(zhǔn)差為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ù)導(dǎo)入 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ù)跑出來(lái),部分如下,好像有搞頭。代碼在我Github里面可以找到

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

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

總結(jié)

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

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