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

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

生活随笔

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

编程问答

还在买白酒?算法工程师们,量化投资了解一下

發(fā)布時(shí)間:2024/7/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 还在买白酒?算法工程师们,量化投资了解一下 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文 | 阿財(cái)@知乎?

本文已獲作者授權(quán),禁止二次轉(zhuǎn)載

賺取你認(rèn)知中的Alpha

堅(jiān)持用量化的觀點(diǎn)去看待宇宙的終極問(wèn)題:買不買,賣不賣。

很多人的在互聯(lián)網(wǎng)這一片方寸之地,表現(xiàn)出來(lái)的行為是矛盾的。舉個(gè)例子,相信技術(shù)指標(biāo)在交易實(shí)踐毫無(wú)用處的人(前面幾篇文章里評(píng)論者不乏這樣的觀點(diǎn))應(yīng)該不會(huì)看知乎上討論和教學(xué)量化的文章,他們就堅(jiān)持主觀交易就好了,否則拿什么東西去量化因子,基本面因子都算是廣義上的技術(shù)指標(biāo)。

量化交易者必須不能行為和認(rèn)知產(chǎn)生割裂,很多人不明白,割裂了做不成量化,量化的過(guò)程其實(shí)就是:你本人價(jià)值觀 ——> 選擇策略方式 ——> 發(fā)掘因子 ——> 程序代碼 進(jìn)行擬合的過(guò)程,所以必須 想法和行為合一,就是很多人愛(ài)掛在嘴邊的所謂的知行合一

其實(shí)他們的知行并不合一,因?yàn)槌扇说氖澜绶呛诩窗椎?#xff0c;所以我們應(yīng)該明白幾點(diǎn):

策略反映價(jià)值觀,什么人選擇什么策略,是他們價(jià)值觀的體現(xiàn)。

既然是價(jià)值觀體現(xiàn),那么就沒(méi)有所謂的絕對(duì)高下之分,也沒(méi)有什么絕對(duì)的有效無(wú)效之分,它們必然有適合的市場(chǎng)和適合的時(shí)間段,不要去隨便用特警判官式的口吻居高臨下的評(píng)判別人的策略不行。

總有初學(xué)者壓根不知道自己是什么價(jià)值觀,或者價(jià)值觀都尚未成型,瞎胡抄別人的策略咋呼。這種行為是沒(méi)用的,不是自己的認(rèn)知賺來(lái)的錢,長(zhǎng)久以往,他們的盈利最終會(huì)輸回去。

認(rèn)知體現(xiàn)了你的價(jià)值觀,價(jià)值觀會(huì)投射到你的量化交易策略上。沒(méi)有自己認(rèn)知的拿來(lái)主義的策略,是無(wú)法做演繹和迭代進(jìn)化的。最終你會(huì)在連續(xù)的虧損迷茫和懷疑,在時(shí)間漫漫的推移中抄來(lái)的Alpha也就會(huì)鈍化和失效。

程序員都應(yīng)該看過(guò)《人月神話》,人力有時(shí)窮,個(gè)人無(wú)法做完全部的idea,你要設(shè)定一個(gè)計(jì)劃,做自己的因子搜集,測(cè)試,優(yōu)先級(jí),能做的策略太多了,不可能全做。個(gè)人精力有限,比如我就放棄了基本面,用編制指數(shù)的金融專家?guī)臀疫x股票基本面的方式圈定股票池。

別聽(tīng)任何大V跟你講什么交易心態(tài)的雞湯,最多講一個(gè)月他就會(huì)轉(zhuǎn)移話題到拉群——貴金屬交易所開(kāi)戶的正路上面了。交易靠心態(tài)的話,遲早要還回去,因?yàn)槿说男膽B(tài)是不穩(wěn)定的,女性性格缺陷中有大姨媽周期,男性普遍的性格缺陷是男性易有阿斯(比女性高4倍),雙向情感障礙和躁郁癥。從醫(yī)學(xué)統(tǒng)計(jì)上,有著各種各樣心理問(wèn)題的可以達(dá)到人群中總數(shù)的35%以上。而且性格缺陷幾乎無(wú)解,心理醫(yī)生,精神科都解決不了,無(wú)論是雙相還是,吃藥也只能維持不能根治。

一個(gè)人母胎性格說(shuō)白了是天生的。如果要靠天吃飯的老天賞個(gè)好心態(tài)才能解決交易一致性問(wèn)題,那交易員豈不是比天賦異稟的劉翔還稀少?那大家都只能喝西北風(fēng)去了。

所以在做交易之前,先確定你的對(duì)交易的認(rèn)知,錢從哪里,怎么賺到的錢,賺錢以后想干什么,把它們都寫(xiě)進(jìn)程序里。而交易的一致性,靠的是程序,程序,程序;交易的確定性,來(lái)自于是回測(cè)統(tǒng)計(jì)和貝葉斯公式。

所以我可以在這里放肆的交底牌——我的量化策略來(lái)自于我的認(rèn)知,也正是因?yàn)檫@個(gè)原因,我可以很大方的公開(kāi)出來(lái),因?yàn)椴恍诺娜司褪遣粫?huì)信,他看不進(jìn)去,這不屬于他的認(rèn)知,也就不用擔(dān)心他會(huì)偷走我的策略,分享我的Alpha。

波浪理論

這只是我對(duì)量化投資的認(rèn)知,你可以去尋找你的圣杯去。

波浪理論是證券技術(shù)分析的主要理論之一,由美國(guó)經(jīng)濟(jì)學(xué)家艾略特提出。一些交易員用以分析金融市場(chǎng)周期,預(yù)測(cè)市場(chǎng)趨勢(shì)。拉爾夫·納爾遜·艾略特,專業(yè)會(huì)計(jì)師,于1930年提出分析方法,認(rèn)為市場(chǎng)價(jià)格的走勢(shì)具有特定的形態(tài)。

艾略特波浪理論:
(https://zh.wikipedia.org/wiki/%E8%89%BE%E7%95%A5%E7%89%B9%E6%B3%A2%E6%B5%AA%E7%90%86%E8%AE%BA)

波浪理論更實(shí)踐化和具象化的交易指導(dǎo)思想就是道氏理論和纏論。不是我刻意引流,但是只要稍微研究深入一點(diǎn),你總會(huì)發(fā)覺(jué)纏論就在不遠(yuǎn)處向你招手,是回避不掉的。

教你炒股票1:不會(huì)贏錢的經(jīng)濟(jì)人,只是廢人!
(http://blog.sina.com.cn/s/blog_486e105c01000461.html)

當(dāng)然我對(duì)纏論持一種“酒肉穿腸過(guò),佛主留心中”白目狀態(tài):我知道它但我不鉆研它,也不妨礙我運(yùn)用它。因?yàn)橹灰业胶线m的程序代碼,自己改好成適配自己的量化平臺(tái)用的就行,原理我理解,所以實(shí)踐中能知道這個(gè)程序代碼是不是工作正確,這就夠了。

任何鉆研纏論的嘗試很容易導(dǎo)致“辯經(jīng)”心態(tài),這種現(xiàn)象這在知乎纏論話題下的討論中似乎極為常見(jiàn)。我認(rèn)為這對(duì)我們推進(jìn)量化交易學(xué)習(xí)進(jìn)度是不利的,因?yàn)橐粋€(gè)35歲程序員兼職做量化的時(shí)間并不算多到能拿來(lái)?yè)]霍的程度,在某乎跟人討論纏論“辯經(jīng)”辨贏了,并不能賺到錢的。

我目前使用的纏論筆段分割代碼:
(https://github.com/zengbin93/czsc/github.com)

ARIAM模型

證券市場(chǎng)是周期性重復(fù)的,也就是恒沙一樣無(wú)數(shù)的貪婪和人性,左右了市場(chǎng)的波動(dòng)行動(dòng),最終導(dǎo)致了歷史總會(huì)一遍又一遍的重演。

時(shí)間序列中的預(yù)測(cè)模型是什么?
預(yù)測(cè)涉及使用其歷史數(shù)據(jù)點(diǎn)預(yù)測(cè)變量的值,或者還可以涉及在給定另一個(gè)變量的值的變化的情況下預(yù)測(cè)一個(gè)變量的變化。預(yù)測(cè)方法主要分為定性預(yù)測(cè)和定量預(yù)測(cè)。時(shí)間序列預(yù)測(cè)屬于定量預(yù)測(cè)的范疇,其中統(tǒng)計(jì)原理和概念應(yīng)用于變量的給定歷史數(shù)據(jù)以預(yù)測(cè)同一變量的未來(lái)值。使用的一些時(shí)間序列預(yù)測(cè)技術(shù)包括:

自回歸模型(AR)
移動(dòng)平均模型(MA)
季節(jié)回歸模型
分布式滯后模型

如何通俗易懂地解釋ARIMA模型:
(https://pic3.zhimg.com/v2-f2b41a923772474e80bb5955b33d9fd6_180x120.jpg)

這個(gè)知識(shí)點(diǎn)只需要了解就好了,因?yàn)楦鶕?jù)實(shí)戰(zhàn)應(yīng)用,它明顯沒(méi)有后面的一次九項(xiàng)式靈光。它只是幫助我們驗(yàn)證一點(diǎn):股票走勢(shì)行情是周期性的,人性撰寫(xiě)的歷史是一再重演的

周期分解算法

接上面的ARIAM模型,事實(shí)上我們只要稍加實(shí)踐,就會(huì)發(fā)現(xiàn)ARIAM模型在股票的走勢(shì)周期預(yù)測(cè)中擬合效果不好,為什么呢?它的分解級(jí)別不夠,它只是進(jìn)行了一次差分計(jì)算,事實(shí)上,股票在走勢(shì)行情中大約包含了7~17個(gè)不同周期級(jí)別的分量信號(hào)。所以我們需要探索更多更有效的數(shù)學(xué)和算法途徑。

信號(hào)與系統(tǒng)取巧的方法——EEMD經(jīng)驗(yàn)?zāi)B(tài)分解

Mr.括號(hào):這篇文章能讓你明白經(jīng)驗(yàn)?zāi)B(tài)分解(EMD)——基礎(chǔ)理論篇:
(https://pic3.zhimg.com/v2-983c8b1d17943f33cb7a4fc6e5e3d942_180x120.jpg)

實(shí)踐出真知,我拿滬深300指數(shù)作為范例,使用EEMD分解它的多次信號(hào)分量。

Python 代碼如下,我使用CCI進(jìn)行分解而不是收盤(pán)價(jià)是因?yàn)殚L(zhǎng)期主升浪的股票在單邊走勢(shì)中,起始點(diǎn)和最近日期和價(jià)格差距超過(guò)2倍以上,級(jí)別差距過(guò)大,會(huì)影響到分解指標(biāo)判斷。

#?python?實(shí)現(xiàn)對(duì)滬深300的?EEMD分解?解析出不同級(jí)別的自回歸周期頻率 import?numpy?as?np from?PyEMD?import?EEMD,?EMD,?Visualisation import?pylab?as?pltfrom?GolemQ.fetch.kline?import?(get_kline_price,get_kline_price_min, ) from?GolemQ.fractal.v0?import?(maxfactor_cross_v2_func, ) from?GolemQ.utils.parameter?import?(AKA,?INDICATOR_FIELD?as?FLD,?TREND_STATUS?as?ST,FEATURES?as?FTR, )if?__name__?==?"__main__":kline,?display_name?=?get_kline_price_min('399300',?frequency='60min',)features?=?maxfactor_cross_v2_func(kline.data)max_imf?=?17S?=?features['CCI'].dropna().tail(480).valuesT?=?range(len(S))#?EEMD計(jì)算eemd?=?EEMD()eemd.trials?=?50eemd.noise_seed(12345)E_IMFs?=?eemd.eemd(S,?T,?max_imf)imfNo?=?E_IMFs.shape[0]tMin,?tMax?=?np.min(T),?np.max(T)#?Plot?results?in?a?gridc?=?np.floor(np.sqrt(imfNo?+?1))r?=?np.ceil((imfNo?+?1)?/?c)plt.ioff()plt.subplot(r,?c,?1)plt.plot(T,?S,?'r')plt.xlim((tMin,?tMax))plt.title("399300.XSHE:CCI(14)")for?num?in?range(imfNo):plt.subplot(r,?c,?num?+?2)plt.plot(T,?E_IMFs[num],?'g')plt.xlim((tMin,?tMax))plt.title("Imf?"?+?str(num?+?1))plt.show()

運(yùn)行程序,實(shí)際上EEMD算法有個(gè)缺點(diǎn):跟K-Means聚類和隱馬爾科夫鏈HMM算法很像,就是它管分解,但是不管標(biāo)注或者理解具體模態(tài)的含義。

模態(tài)的含義(代表主次,漲跌)必須程序員再次處理數(shù)據(jù)進(jìn)行解讀,在自動(dòng)分解出來(lái)的結(jié)果中,我們還需要寫(xiě)更多的代碼匹配出我們的“主級(jí)別”周期和當(dāng)前周期。但是因?yàn)閷?shí)踐中并沒(méi)有使用這個(gè)算法,我就不再列出曾經(jīng)寫(xiě)過(guò)的主級(jí)別和當(dāng)前周期適配代碼了。

第二個(gè)缺點(diǎn)——跟小波分析,聚類分析一樣,未來(lái)信息會(huì)反向傳播,前面一篇文章中提到的時(shí)候已經(jīng)有網(wǎng)友評(píng)論說(shuō)小波分解和EEMD分解的這個(gè)缺陷有專有叫法叫“端點(diǎn)漂移”(因?yàn)槲乙磺凶约貉芯?#xff0c;所以叫法有時(shí)會(huì)自創(chuàng)不同)。時(shí)移窗口會(huì)發(fā)生抖動(dòng),但是不影響對(duì)波浪所處相位象限區(qū)間和趨勢(shì)判斷。但是這終究是不好的。所以EEMD經(jīng)驗(yàn)?zāi)B(tài)分解我在量化交易中僅作為理論研究使用。EEMD算法再一次幫助我們驗(yàn)證一點(diǎn):股票走勢(shì)行情是周期性的,人性撰寫(xiě)的歷史是一再重演的

最終我真正量化交易實(shí)踐中運(yùn)用的周期分解方法為

一次九項(xiàng)式擬合

本技巧的原始出處:
唐進(jìn)民:多項(xiàng)式曲線擬合
(https://pic3.zhimg.com/v2-96702fac9fbdefb7d93aef386ee4d236_ipico.jpg)

這里使用了一個(gè)技巧就是滾動(dòng)窗口計(jì)算。

直接上代碼。

def?strided_app(a,?L,?S):??'''Pandas?rolling?for?numpy#?Window?len?=?L,?Stride?len/stepsize?=?S'''nrows?=?((a.size?-?L)?//?S)?+?1n?=?a.strides[0]return?np.lib.stride_tricks.as_strided(a,?shape=(nrows,L),?strides=(S?*?n,n))def?rolling_poly9(s:np.ndarray,?w:int=252)?->?np.ndarray:'''一次九項(xiàng)式滾動(dòng)分解擬合'''x_index?=?range(252)def?last_poly9(sx):p?=?np.polynomial.Chebyshev.fit(x_index,?sx,?9)return?p(x_index)[-1]if?(len(s)?>?w):x?=?strided_app(s,?w,?1)return?np.r_[np.full(w?-?1,?np.nan),?np.array(list(map(last_poly9,?x)))]else:x_index?=?range(len(s))p?=?np.polynomial.Chebyshev.fit(x_index,?s,?9)y_fit_n?=?p(x_index)return?y_fit_n#?用法示例 features['POLYNOMIAL9']?=?rolling_poly9(features['HMA10'].values,?252)

通過(guò)一次九項(xiàng)式擬合,策略代碼自發(fā)性的尋找到周期規(guī)律——如果對(duì)象標(biāo)的存在不符合周期性波動(dòng)的規(guī)律(例如政策性很強(qiáng)的黃金股,紙黃金ETF),那么會(huì)在擬合中出現(xiàn)一種奇特的 ”與K線價(jià)格走勢(shì),HMA10相關(guān)性偏低的現(xiàn)象“。

通過(guò)核驗(yàn)特定指標(biāo)的相關(guān)性,我就可以判斷這個(gè)標(biāo)的適合或者不適合我的量化策略進(jìn)行交易。同樣生效的算法還包括 最小遞增序列的OLS線性擬合和回歸樹(shù)轉(zhuǎn)折點(diǎn)算法,它們的組合,我稱為:”咸魚(yú)(波動(dòng)性很差的股票)檢測(cè)算法“。關(guān)于實(shí)現(xiàn)這種1秒鐘判斷一個(gè),5分鐘就可以從1700個(gè)超大股票池中判斷“咸魚(yú)”,“弱勢(shì)”,“持有”,“做多”,“做空”的Python代碼,我后面會(huì)寫(xiě)專文討論。

就像這樣

print(u'分析和展示計(jì)算結(jié)果...') ret_codelist?=?featurs_printable_formatter(ret_codelist) codelist_saltedfish,?ret_codelist_saltedfish,?ret_codelist?=?find_fratcal_saltfish(ret_codelist) codelist_combo,?ret_codelist_combo,?ret_codelist?=?find_fratcal_bootstrap_combo(ret_codelist) codelist_action,?ret_codelist_action,?ret_codelist_combo?=?find_action_long(ret_codelist_combo) codelist_weak,?ret_codelist_weak,?ret_codelist?=?find_fratcal_weakshort(ret_codelist) codelist_short,?ret_codelist_short,?ret_codelist_unknown?=?find_action_sellshort(ret_codelist) #codelist_hyper_punch,?ret_stocklist_hyper_punch,?ret_codelist?= #find_action_hyper_punch(ret_codelist) codelist_unknown?=?[index[1]?for?index,?symbol?in?ret_codelist_unknown.iterrows()]#?將計(jì)算的標(biāo)的分成四類?——?買入判斷'buy',持有判斷'long',做空判斷'short', #?'slatfish'是垃圾咸魚(yú)票,既沒(méi)有價(jià)格波動(dòng)性也沒(méi)有想象空間 if?(eval_range?in?['etf',?'csindex']):full_etf_list?=?perpar_symbol_range('etf')full_csindex_list?=?perpar_symbol_range('csindex')ret_codelist?=?ret_features_pd.loc[(each_day[-1],?slice(None)),?:].copy()symbol_list?=?ret_codelist.index.get_level_values(level=1).unique()symbol_list_grouped?=?[(symbol,?'etf')?for?symbol?in?list(set(symbol_list).interp(set(full_etf_list)))]?+?\[(symbol,?'csindex')?for?symbol?in?list(set(symbol_list).interp(set(full_csindex_list)))]if?(eval_range?in?['etf']):symbol_list_grouped?=?[(symbol,?'etf')?for?symbol?in?symbol_list]elif?(eval_range?in?['csindex']):symbol_list_grouped?=?[(symbol,?'csindex')?for?symbol?in?symbol_list]symbol_list_grouped?=?list(set(symbol_list_grouped)) else:symbol_list_grouped?=?[(symbol,?'buy')?for?symbol?in?codelist_action]?+?\[(symbol,?'long')?for?symbol?in?list(set(codelist_combo).difference(set(codelist_action)))]?+?\[(symbol,?'weak')?for?symbol?in?codelist_weak]?+?\[(symbol,?'short')?for?symbol?in?codelist_short]?+?\[(symbol,?'saltedfish')?for?symbol?in?codelist_saltedfish]?+?\[(symbol,?'unknown')?for?symbol?in?codelist_unknown]

經(jīng)過(guò)它們快速分類。

后臺(tái)回復(fù)關(guān)鍵詞【入群

加入賣萌屋NLP/IR/Rec與求職討論群

后臺(tái)回復(fù)關(guān)鍵詞【頂會(huì)

獲取ACL、CIKM等各大頂會(huì)論文集!

總結(jié)

以上是生活随笔為你收集整理的还在买白酒?算法工程师们,量化投资了解一下的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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