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.鏁板瓧璐у竵浜ゆ槗锛氬湪鏁板瓧璐у竵浜ゆ槗涓锛岄噺鍖栦氦鏄撳悓鏍峰彲浠ラ氳繃鍒嗘瀽鍘嗗彶鏁版嵁鍜屽競鍦鸿秼鍔跨瓑淇℃伅锛屽府鍔╂姇璧勮呴勬祴浠锋牸璧板娍骞跺埗瀹氫氦鏄撶瓥鐣ャ備笌浼犵粺閲戣瀺甯傚満涓嶅悓鐨勬槸锛屾暟瀛楄揣甯佸競鍦虹殑娉㈠姩鎬ц緝澶э紝鍥犳ら渶瑕佹洿鍔犵簿缁嗙殑浜ゆ槗绛栫暐鍜岄庨櫓鎺у埗銆
鎬讳箣锛岄噺鍖栦氦鏄撴槸涓绉嶅熀浜庣戝﹀拰鏁版嵁鍒嗘瀽鐨勬姇璧勬柟娉曪紝閫氳繃璁$畻鏈虹▼搴忓拰鏁板︽ā鍨嬫潵杩涜屾姇璧勫喅绛栵紝鍏锋湁杈冮珮鐨勭ǔ瀹氭у拰鏀剁泭鐜囷紝鏄鐜颁唬鎶曡祫棰嗗煙涓涓嶅彲鎴栫己鐨勪竴閮ㄥ垎銆