1. python的量化代碼怎麼用到股市中
2010 ~ 2017 滬深A股各行業量化分析
在開始各行業的量化分析之前,我們需要先弄清楚兩個問題:
第一,A股市場上都有哪些行業;
第二,各行業自2010年以來的營收、凈利潤增速表現如何?
第一個問題
很好回答,我們使用JQData提供的獲取行業成分股的方法,輸入get_instries(name='sw_l1')
得到申萬一級行業分類結果如下:它們分別是:【農林牧漁、採掘、化工、鋼鐵、有色金屬、電子、家用電器、食品飲料、紡織服裝、輕工製造、醫葯生物、公用事業、交通運輸、房地產、商業貿易、休閑服務、綜合、建築材料、建築裝飾、電器設備、國防軍工、計算機、傳媒、通信、銀行、非銀金融、汽車、機械設備】共計28個行業。
第二個問題
要知道各行業自2010年以來的營收、凈利潤增速表現,我們首先需要知道各行業在各個年度都有哪些成分股,然後加總該行業在該年度各成分股的總營收和凈利潤,就能得到整個行業在該年度的總營收和總利潤了。這部分數據JQData也為我們提供了方便的介面:通過調用get_instry_stocks(instry_code=『行業編碼』, date=『統計日期』),獲取申萬一級行業指定日期下的行業成分股列表,然後再調用查詢財務的數據介面:get_fundamentals(query_object=『query_object』, statDate=year)來獲取各個成分股在對應年度的總營收和凈利潤,最後通過加總得到整個行業的總營收和總利潤。這里為了避免非經常性損益的影響,我們對凈利潤指標最終選取的扣除非經常性損益的凈利潤數據。
我們已經獲取到想要的行業數據了。接下來,我們需要進一步分析,這些行業都有什麼樣的增長特徵。
我們發現,在28個申萬一級行業中,有18個行業自2010年以來在總營收方面保持了持續穩定的增長。它們分別是:【農林牧漁,電子,食品飲料,紡織服裝,輕工製造,醫葯生物,公用事業,交通運輸,房地產,休閑服務,建築裝飾,電氣設備,國防軍工,計算機,傳媒,通信,銀行,汽車】;其他行業在該時間范圍內出現了不同程度的負增長。
那麼,自2010年以來凈利潤保持持續增長的行業又會是哪些呢?結果是只有5個行業保持了基業長青,他們分別是醫葯生物,建築裝飾,電氣設備,銀行和汽車。(註:由於申萬行業在2014年發生過一次大的調整,建築裝飾,電氣設備,銀行和汽車實際從2014年才開始統計。)
從上面的分析結果可以看到,真正能夠保持持續穩定增長的行業並不多,如果以扣非凈利潤為標准,那麼只有醫葯生物,建築裝飾,電氣設備,銀行和汽車這五個行業可以稱之為優質行業,實際投資中,就可以只從這幾個行業中去投資。這樣做的目的是,一方面,能夠從行業大格局層面避免行業下行的風險,繞開一個可能出現負增長的的行業,從而降低投資的風險;另一方面,也大大縮短了我們的投資范圍,讓投資者能夠專注於從真正好的行業去挑選公司進行投資。
「2010-2017」投資於優質行業龍頭的收益表現
選好行業之後,下面進入選公司環節。我們知道,即便是一個好的行業也仍然存在表現不好的公司,那麼什麼是好的公司呢,本文試圖從營業收入規模和利潤規模和來考察以上五個基業長青的行業,從它們中去篩選公司作為投資標的。
3.1按營業收入規模構建的行業龍頭投資組合
首先,我們按照營業收入規模,篩選出以上5個行業【醫葯生物,建築裝飾,電氣設備,銀行和汽車】從2010年至今的行業龍頭如下表所示:
結論
通過以上行業分析和投資組合的歷史回測可以看到:
先選行業,再選公司,即使是從2015年股災期間開始投資,至2018年5月1號,仍然能夠獲得相對理想的收益,可以說,紅杉資本的賽道投資法則對於一般投資者還是比較靠譜的。
在構建行業龍頭投資組合時,凈利潤指標顯著優於營業收入指標,獲得的投資收益能夠更大的跑贏全市場收益率
市場是不斷波動的,如果一個投資者從股災期間開始投資,那麼即使他買入了上述優質行業的龍頭組合,在近3年也只能獲得12%左右的累計收益;而如果從2016年5月3日開始投資,那麼至2018年5月2日,2年時間就能獲得超過50%以上的收益了。所以,在投資過程中選擇時機也非常重要。
出自:JoinQuant 聚寬數據 JQData
2. 璇鋒暀python閲忓寲浜ゆ槗鏃剁敤鍒扮殑鑲$エ姣忓ぉ閫愮瑪浜ゆ槗鏁版嵁濡備綍鐖鍙栵紵
棣栧厛錛屾墦寮鏈熻揣浜ゆ槗杞浠訛紝鐧誨綍鑷宸辯殑浜ゆ槗璐︽埛銆傞夋嫨鐩稿簲鐨勬湡璐у悎綰︼紝榪涘叆浜ゆ槗鐣岄潰銆
鍏舵★紝鎵懼埌鈥滄垚浜よ板綍鈥濇垨鈥滈愮瑪鎴愪氦鈥濈瓑鐩稿叧鍔熻兘鎸夐挳銆傚湪涓浜涗氦鏄撹蔣浠朵腑錛岃繖涓鎸夐挳鍙鑳戒綅浜庝氦鏄撶晫闈㈢殑搴曢儴鎴栦晶杈規爮銆
鐒跺悗錛岀偣鍑燴滄垚浜よ板綍鈥濇垨鈥滈愮瑪鎴愪氦鈥濇寜閽錛岃繘鍏ユ垚浜よ板綍欏甸潰銆傚湪榪欎釜欏甸潰涓婏紝浣犲彲浠ョ湅鍒版渶榪戠殑鎴愪氦璁板綍鍒楄〃銆
鎺ヤ笅鏉ワ紝鎵懼埌鈥滃煎嚭鈥濇垨鈥滃煎嚭鎴愪氦鏄庣粏鈥濈瓑鎸夐挳銆傝繖涓鎸夐挳閫氬父浣嶄簬鎴愪氦璁板綍欏甸潰鐨勪笂鏂規垨涓嬫柟銆
鐒跺悗錛岀偣鍑燴滃煎嚭鈥濇垨鈥滃煎嚭鎴愪氦鏄庣粏鈥濇寜閽錛岄夋嫨瀵煎嚭鏂囦歡鐨勬牸寮忓拰淇濆瓨璺寰勩備竴鑸鏉ヨ達紝鎴戜滑鍙浠ラ夋嫨瀵煎嚭涓篍xcel鎴朇SV鏍煎紡鐨勬枃浠訛紝榪欐牱鍙浠ユ柟渚垮悗緇鐨勬暟鎹澶勭悊鍜屽垎鏋愩
鏈鍚庯紝鐐瑰嚮鈥滅『璁も濇垨鈥滃煎嚭鈥濇寜閽錛岀瓑寰呰蔣浠跺畬鎴愬煎嚭榪囩▼銆傚煎嚭鐨勯熷害鍙栧喅浜庢垚浜よ板綍鐨勬暟閲忓拰鐢佃剳鎬ц兘絳夊洜緔犮
涓鏃﹀煎嚭瀹屾垚錛屼綘灝卞彲浠ュ湪閫夋嫨鐨勪繚瀛樿礬寰勪腑鎵懼埌瀵煎嚭鐨勬枃浠躲傞氳繃鎵撳紑榪欎釜鏂囦歡錛屼綘灝卞彲浠ユ煡鐪嬪拰鍒嗘瀽鏈熻揣閫愮瑪鎴愪氦鏄庣粏浜嗐
瀵煎嚭鐨勬湡璐ч愮瑪鎴愪氦鏄庣粏鏂囦歡閫氬父鍖呮嫭浠ヤ笅淇℃伅錛氫氦鏄撴棩鏈熴佷氦鏄撴椂闂淬佹垚浜や環鏍箋佹垚浜ゆ暟閲忋佷拱鍗栨柟鍚戠瓑銆傝繖浜涗俊鎮鍙浠ュ府鍔╀綘榪借釜姣忎竴絎旀垚浜ょ殑鎯呭喌錛屽垎鏋愬競鍦虹殑涔板崠鍔涢噺鍜屼氦鏄撹屼負銆
閫氳繃瀵規湡璐ч愮瑪鎴愪氦鏄庣粏鐨勫垎鏋愶紝浜ゆ槗鑰呭拰鎶曡祫鑰呭彲浠ヨ幏鍙栦互涓嬫柟闈㈢殑淇℃伅錛
棣栧厛錛屼簡瑙e競鍦虹殑鎴愪氦鎯呭喌銆傞氳繃鏌ョ湅鎴愪氦浠鋒牸鍜屾垚浜ゆ暟閲忥紝鍙浠ュ垽鏂甯傚満鐨勪環鏍艱蛋鍔垮拰浜ゆ槗媧昏穬搴︺
鍏舵★紝鍒嗘瀽甯傚満鐨勪拱鍗栧姏閲忋傞氳繃緇熻′拱鍏ュ拰鍗栧嚭鐨勬暟閲忓拰姣斾緥錛屽彲浠ヤ簡瑙e競鍦虹殑澶氱┖鍙屾柟鍔涢噺瀵規瘮錛屽垽鏂甯傚満鐨勮蛋鍔垮拰瓚嬪娍銆
鍐嶆★紝鐮旂┒浜ゆ槗鑰呯殑琛屼負鍜岀瓥鐣ャ傞氳繃鍒嗘瀽鎴愪氦璁板綍錛屽彲浠ヤ簡瑙d氦鏄撹呯殑涔板崠琛屼負鍜岀瓥鐣ワ紝鍙戠幇涓浜涙綔鍦ㄧ殑浜ゆ槗鏈轟細銆
鏈鍚庯紝浼樺寲浜ゆ槗絳栫暐鍜岄庨櫓綆$悊銆傞氳繃瀵規湡璐ч愮瑪鎴愪氦鏄庣粏鐨勭爺絀訛紝鍙浠ュ彂鐜頒竴浜涘父瑙佺殑浜ゆ槗閿欒鍜岄庨櫓鍥犵礌錛屼粠鑰屾敼榪涜嚜宸辯殑浜ゆ槗絳栫暐鍜岄庨櫓綆$悊鑳藉姏銆
3. 股票超級量化買賣點公式
DIFF:=EMA(CLOSE,13) - EMA(CLOSE,34);
DEA:=EMA(DIFF,13);
MACD:=2*(DIFF-DEA/2);
AH:=HHV(MACD,13*1);
AL:=LLV(MACD,13*0.3);
STICKLINE(MACD>0,MACD,0,1,0),COLOR0000AA,LINETHICK1;
STICKLINE(MACD<0,MACD,0,1,0),COLOR008800,LINETHICK1;
趨勢線:=EMA(MACD,34);
IF(趨勢線>REF(趨勢線,1),趨勢線,DRAWNULL),COLORYELLOW;
IF(趨勢線<=REF(趨勢線,1),趨勢線,DRAWNULL),COLORFF5000;
DRAWBAND(趨勢線,RGB(255,255,0),REF(趨勢線,1),RGB(0,88,255));
K:=SMA(MACD,2,1);
D:=SMA(K,2,1);
J:=SMA(D,2,1);
STICKLINE(MACD>0,0.000001,0.000003,3,0),COLORRED;
STICKLINE(MACD<0,0.000001,0.000003,3,0),COLORGREEN;
DRAWTEXT_FIX(C>O,0.01,0.9,0,'
IF(K>REF(K,1),K,DRAWNULL),COLORRED;
IF(K<=REF(K,1),K,DRAWNULL),COLORGREEN;
IF(D>REF(D,1),D,DRAWNULL),COLORRED;
IF(D<=REF(D,1),D,DRAWNULL),COLORGREEN;
IF(J>REF(J,1),J,DRAWNULL),COLORRED,LINETHICK2;
IF(J<=REF(J,1),J,DRAWNULL),COLORGREEN,LINETHICK2;
STICKLINE(REF(MACD,1)
STICKLINE(MACD=AH,AH,K,3,0),LINETHICK1,COLORRED;
STICKLINE(REF(MACD,2)>MACD,MACD,REF(MACD,1),3,1),COLORGREEN;
4. 閲忓寲浜ゆ槗鏄浠涔堟剰鎬
閲忓寲浜ゆ槗鏄鎸囬氳繃浣跨敤璁$畻鏈虹▼搴忓拰鏁板︽ā鍨嬫潵榪涜屾姇璧勫喅絳栫殑涓縐嶄氦鏄撴柟寮忋傚畠鏄涓縐嶅熀浜庢暟鎹鍜岀粺璁″﹀師鐞嗙殑鎶曡祫鏂規硶錛岄氳繃瀵瑰競鍦鴻屾儏鐨勫垎鏋愬拰棰勬祴錛屼負鎶曡祫鑰呮彁渚涙洿鍔犲噯紜鍜岀戝︾殑鎶曡祫寤鴻銆
閲忓寲浜ゆ槗鐨勫嚭鐜板彲浠ヨ拷婧鍒頒笂涓涓栫邯80騫翠唬錛屽綋鏃惰$畻鏈烘妧鏈鐨勫揩閫熷彂灞曞拰閲戣瀺甯傚満鐨勬棩鐩婂嶆潅鍖栦績浣挎姇璧勮呭繪眰鏇村姞縐戝﹀拰鍑嗙『鐨勬姇璧勬柟娉曘傞殢鐫鎶鏈鐨勪笉鏂榪涙ワ紝閲忓寲浜ゆ槗涔熷緱鍒頒簡瓚婃潵瓚婂箍娉涚殑搴旂敤銆
閲忓寲浜ゆ槗鐨勪紭鐐瑰湪浜庡畠鑳藉熸秷闄や漢涓哄洜緔犵殑褰卞搷錛屽噺灝戞姇璧勮呯殑鎯呯華娉㈠姩鍜岄敊璇鍐崇瓥錛屼粠鑰屾彁楂樻姇璧勭殑紼沖畾鎬у拰鏀剁泭鐜囥傚悓鏃訛紝閲忓寲浜ゆ槗榪樿兘澶熷揩閫熼傚簲甯傚満鍙樺寲錛屽強鏃惰皟鏁存姇璧勭瓥鐣ワ紝鏈澶у寲鎶曡祫鏁堢泭銆
閲忓寲浜ゆ槗鍦ㄥ疄闄呭簲鐢ㄤ腑鏈夌潃騫挎硾鐨勫簲鐢錛屽寘鎷鑲$エ銆佹湡璐с佸栨眹絳夊氫釜棰嗗煙銆傚湪鑲$エ甯傚満涓錛岃稿氬熀閲戝叕鍙稿拰鏈烘瀯鎶曡祫鑰呴兘閲囩敤閲忓寲浜ゆ槗絳栫暐鏉ヨ繘琛屾姇璧勶紝鍙栧緱浜嗕笉閿欑殑鎶曡祫鏀剁泭銆
閲忓寲浜ゆ槗鐨勫簲鐢ㄥ満鏅
1.鑲$エ浜ゆ槗錛氬湪鑲$エ浜ゆ槗涓錛岄噺鍖栦氦鏄撳彲浠ラ氳繃鍒嗘瀽鍘嗗彶鏁版嵁銆佹妧鏈鎸囨爣鍜屽競鍦鴻秼鍔跨瓑淇℃伅錛屽府鍔╂姇璧勮呴勬祴鑲′環璧板娍騫跺埗瀹氫氦鏄撶瓥鐣ャ傚悓鏃訛紝閲忓寲浜ゆ槗榪樺彲浠ヨ嚜鍔ㄦ墽琛屼氦鏄擄紝鍑忓皯浜轟負騫叉壈鍜屾儏鎰熷洜緔犲逛氦鏄撶殑褰卞搷銆
2.鏈熻揣浜ゆ槗錛氬湪鏈熻揣浜ゆ槗涓錛岄噺鍖栦氦鏄撳悓鏍峰彲浠ラ氳繃鍒嗘瀽鍘嗗彶鏁版嵁鍜屽競鍦鴻秼鍔跨瓑淇℃伅錛屽府鍔╂姇璧勮呴勬祴鏈鏉ヤ環鏍艱蛋鍔匡紝騫跺埗瀹氱浉搴旂殑浜ゆ槗絳栫暐銆備笌鑲$エ浜ゆ槗涓嶅悓鐨勬槸錛屾湡璐т氦鏄撹繕闇瑕佽冭檻鍒板悎綰﹀埌鏈熺殑鏃墮棿鍜屼氦鍓叉柟寮忕瓑鍥犵礌銆
3.澶栨眹浜ゆ槗錛氬湪澶栨眹浜ゆ槗涓錛岄噺鍖栦氦鏄撳彲浠ラ氳繃鍒嗘瀽鍚勫浗緇忔祹鏁版嵁銆佹斂娌諱簨浠跺拰璐у竵鏀跨瓥絳変俊鎮錛屽府鍔╂姇璧勮呴勬祴奼囩巼鍙樺寲騫跺埗瀹氫氦鏄撶瓥鐣ャ傚悓鏃訛紝閲忓寲浜ゆ槗榪樺彲浠ラ氳繃鑷鍔ㄥ寲浜ゆ槗緋葷粺錛屽疄鐜伴珮鏁堛佺ǔ瀹氱殑浜ゆ槗銆
4.鏁板瓧璐у竵浜ゆ槗錛氬湪鏁板瓧璐у竵浜ゆ槗涓錛岄噺鍖栦氦鏄撳悓鏍峰彲浠ラ氳繃鍒嗘瀽鍘嗗彶鏁版嵁鍜屽競鍦鴻秼鍔跨瓑淇℃伅錛屽府鍔╂姇璧勮呴勬祴浠鋒牸璧板娍騫跺埗瀹氫氦鏄撶瓥鐣ャ備笌浼犵粺閲戣瀺甯傚満涓嶅悓鐨勬槸錛屾暟瀛楄揣甯佸競鍦虹殑娉㈠姩鎬ц緝澶э紝鍥犳ら渶瑕佹洿鍔犵簿緇嗙殑浜ゆ槗絳栫暐鍜岄庨櫓鎺у埗銆
鎬諱箣錛岄噺鍖栦氦鏄撴槸涓縐嶅熀浜庣戝﹀拰鏁版嵁鍒嗘瀽鐨勬姇璧勬柟娉曪紝閫氳繃璁$畻鏈虹▼搴忓拰鏁板︽ā鍨嬫潵榪涜屾姇璧勫喅絳栵紝鍏鋒湁杈冮珮鐨勭ǔ瀹氭у拰鏀剁泭鐜囷紝鏄鐜頒唬鎶曡祫棰嗗煙涓涓嶅彲鎴栫己鐨勪竴閮ㄥ垎銆