宏观固收每日阅读笔记(2017-8-14)

 

看对宏观经济那纷繁复杂的分析,总是看得云里雾里。近期在陆陆续续看关于宏观经济分析的书籍和报告,也有一些感想(总结了一下宏观经济分析的维度)。还是要自己去建立一个分析框架体系,这样才能够在看卖方报告的时候,知道其在讲那块的内容。其分析隐含了什么样的假设,还有哪些东西是没有讲述到的。

 

【首席论坛】刘煜辉:苍白的新周期不值得一辩

在我看来,“新周期”是一个新造词,理论的空白使得这个词成为“任人打扮的小姑娘”,没有什么可辩的。因为周期对应的是需求端,现在有筒子讲这一轮的周期是由供给端所引导的,是由于供给侧的改革所引导一个新周期。所以既然不是一个知识体系培训出来的,讲起来就比较费劲。从真实物量的角度看,没有周期因子的驱动,无论是库存还是从产能的资本支出。但是名义值变化非常明显。中国的黑色是一朵奇葩,有点像2008年的原油和焦炭,十年前的一幕再一次重演,今天是中国的螺纹钢,从一年半之前的1800涨到了现在过了4000,一吨钢赚了一千多块钱,我印象中三四年前网上有一个段子,卖一吨钢还没有一斤白菜值钱。代表中国主要工业品的南华指数涨了30%,没有看到周期的因子,但是你从名义值看到的非常明显,所以它诠释的几乎全是价格效应。 【Note:关于是不是有所谓的“新周期”,这个事情,大家是相信情感还是相信逻辑?我的看法,从现在开始,差不多是准备现金为王吧。大家在18-19年的时候,如果还存有这封email,请拿出来看看是不是这样。】

经济政策只有转化为劳动报酬在国民收入比重的趋势提升,需求上升才能形成逻辑的闭环。

实际上寻找中国经济“漂亮50”的过程,某种程度上讲,核心的关键是对产业和新技术长期趋势的预判,这个过程甚至长达五到十年,你可能要去大胆体会一条新兴技术的成熟曲线的变化。

6月份天风在大连有一个中期策略会,(赵)晓光谈到从未来的五年来看,四个方向可能是我们寻找产业趋势的重点关注的方向。

第一,视频的创新,重新定义移动互联网和移动物联网。它将重新定义人和人的连接,从文字到语音再到音频的自然推理,这是一个波澜壮阔的机会,跟商业、游戏、金融、医疗、教育等每个领域都密不可分。美国的五大科创公司花巨资在这个方向上研发推进,中国的华为紧紧地跟上,说华为有一个未来五年的技术创新公司重点突破方向的排名,视频排第一位。

第二,数字化平台,是把所有的数据拿到,用未来的大数据、人工智能提供不可或缺的基础。从技术结构向生态支持的数字平台,实际上是要转化成为人和技术之间的桥梁——新商业平台模式的基础,比方说物联网平台,区块链。区块链概念正在得到人们认可,未来它将改变行业的经营模式。我们将看到区块链在金融服务业、制造业、政府、医疗和教育行业得到更快的认可和应用。

第三,AI,无处不在的人工智能(AI)。当然AI需要数据的支持,AI的核心不是算法,还是数据,AI如果离开了数字化的平台,就像一部没有燃料的跑车,跑不动。AI的厉害在于它自己有一个深度学习和强化学习的自我的能力,某种意义上讲,未来一切以技术和经验为核心的工作都有可能面临失业,当然数字化平台是人工智能的重要基础,为各种闭环领域和ToB领域提供了数据。

第四,新材料。比如说石墨烯,这是最近市场很火的概念,石墨烯,石墨烯作为一个新材料不是一个替代,不是新发现一个材料,实际上是和各种传统材料结合,比如橡胶、化工、电缆、金属等,提高这些传统材料的性能,非线性突破原有材料的技术瓶颈。这是一个很广阔的领域。

【首席论坛】伍戈:货币观经济

1、去年四季度以来,银行间市场利率系统性抬升,广义货币M2增速也单边下行至历史低位的个位数。尽管如此,中国的经济增长却表现出相当的“韧性”。【Note:对于货币的观察,可以从资产负债这两个方面去看。M2可以看做是金融机构的负债角度,M2已经不能够完全表征全社会的融资了,“M2+银行理财”的同比增速已经显著超过M2的增速,而且也显著超过工业增速。从资产角度来看,“社会融资总量+政府融资”能够更好的刻画资金需求。所以,有的时候,我们看到一些东西似乎在产生矛盾,那是因为现实在起变化,我们原来认为的有效指标已经在逐渐失效。这就是 经济中的因素是在不断变化的,因素和因素之间的关系也是在变化的。】如何理解上述货币与实体经济之间的背离?即期货币的变化又将如何影响未来实体经济的走势?这些都是当前市场关注的焦点问题。

2、中国经济正处于向市场经济转型的关键时期,单一的货币数量已难以准确刻画实际融资条件的松紧,但利率市场化又无法一蹴而就,利率价格尚未在资金配置中充分发挥作用。因此,同时考虑量与价的波动成为衡量当前货币松与紧的现实选择。此外,汇率也是不可或缺的重要方面。

3、近期中国经济增长表现出来的韧性及所谓的“新周期”与货币条件整体上的宽松不无关系。尽管过去一段时间名义利率有所抬升,但实际利率仍处于为负的历史低位。【由于各类利率指标的变化趋势基本一致,在此我们以R007利率作为典型代表进行分析。相对名义利率而言,实际利率更能科学衡量实体经济的实际融资成本,我们侧重于对后者的分析。实际利率=R007-PPI】各种货币数量指标(M2、M2+、社融+地方债等)虽已掉头向下,但其对经济的滞后制约效应尚未完全显现。此外,过去长达一年半的人民币汇率贬值对出口的拉动作用仍在持续。M2+(M2+理财+CD)增速与滞后1年的名义GDP走势基本一致,加入政府债的社会融资规模增速与滞后半年的名义GDP走势大体同步。随着M2+和社融+的见顶回落,目前名义GDP的高点已过。由此展望未来,宏观经济将稳中趋缓。

4、展望下半年,随着实际利率的不断抬升、货币增速趋缓的滞后效应逐步体现,再加之人民币汇率由贬趋升,整个货币融资条件将不再继续宽松,货币政策由此逐步走出后金融危机时代而回归常态。这势必引导实体经济进一步稳中趋缓,但劳动力市场整体无忧,客观上将更有利于经济结构的调整。

【首席论坛】蔡浩:债市参与者的情绪分水岭

6月初的指数与8月9日的指数几乎相同。这表明国内大宗市场的走强,主要还是受国内供给侧改革因素的影响。我们近期不断看到各级政府要求上游企业限产整顿的报道,以及环保部派遣督查组赴各省进行环保督查的消息,这都是去年以来供给侧改革落实措施的延续,目的依然是限制过剩产能,提振上游产品(以大宗商品为主)价格,恢复上游企业利润,以期带动中游和下游价格的提升。而从去年下半年PPI快速恢复而CPI表现持续低迷的情形来看,终端物价并未有明显起色,这表明经济总需求并未出现明显改善。

银行类机构于6月季末后,债券配置需求在慢慢释放,一级市场利率债发行投标倍数始终处于高位,且发行利率多数都低于预期。不过,一级市场的走好并未能传导给二级市场。这是因为,作为二级市场交易的活跃参与者,基金、券商等机构的情绪正慢慢向相反的方向变化。8月初,笔者通过与诸多金融市场同业交流发现,基金、券商等机构的从业者对债市后续的走势普遍看空,认为下半年收益率的高点会远远高于上半年,认为10年国债收益率会突破4%的也大有人在。而与此同时,多家不同类型的银行类机构都表示有配置需求,部分银行配置需求甚至较为强烈。

这种情绪上的分化,实质上与各机构的处境是分不开的。对于银行类机构来说,它们受累于风险资本的限制,多数配置需求集中在利率债上,而利率债当前的收益,在计入风险资本因素和税收因素后,与其实际贷款利率相比(关于债市收益率与贷款利率的关系,请参看“去杠杆下债市观察”系列文章第一篇和第二篇)是有优势的,这是银行类机构配置需求增加的原因。

而对于基金、券商等机构来说,其中长期资金多来源于银行,资金成本走势基本是与银行理财成本同向。根据中国银行业协会统计的会员理财产品平均收益率和融360公布的银行理财产品平均预期收益率来看,今年以来,理财收益率呈逐步走高的态势,7月银行理财收益率两项指标分别为4.56%和4.43%,而3、4月份银行间资金最紧时刻的收益率为4.26%和4.16%,这是因为理财产品的期限多在3个月以上,成本的上升有一定时滞性。成本上升再加上非银行类机构因为考核原因对绝对收益的追求,导致其对利率债的要求收益率更高,因此会更加看空利率债市场。一个侧面的佐证是,绝对收益率高的中低评级信用债(AA和AA-),其6月底以来的表现要远远好于利率债,整体收益率不但没升还下行了10多个bp。

笔者也不认为下半年债市收益率就无法突破上半年的高点,实际信贷利率的上升提高了债市的上限,而降杠杆和严监管的政策也会一直延续,时点上的政策趋紧难以避免,但远远超出前期高点的概率并不大。

杨成长:中国金融市场发展政策的四个重大转变

从2012年到2016年规模以上工业企业利润总额一致徘徊在6-7万亿元之间没有增长。这种金融和实体投资收益率倒挂状况引领社会资金脱实向虚,广义资产管理规模从18万亿元增加到超过100万亿元。在超过100多万亿的广义资产管理规模中,最终没有投向实体经济领域,而只是在金融机构之间交叉投资的总规模接近30多万亿元。

当前最突出的问题是企业需要增加资本金性的股权性融资,而金融市场和金融机构只能提供各种债务性融资。我国企业的高杠杆,本质上是金融市场资金配置结构扭曲的结果。我国每年要新增17-18万亿元的社会融资,除了1万多亿元的股权性融资外,剩下的全是增加企业债务的融资。社会融资增加多少,企业债务就增加多少,社会杠杆率就继续上升。降杠杆不是要减少对企业的融资,而是要调整融资结构,大幅度提升企业尤其是国有企业的股权性融资,扩张资本金。我国居民持有的金融资产余额约120-130万亿元,其中直接或间接的股权投资只有15万亿元,剩下的全是债权性资产。居民有多少债权性金融资产,企业就有多少债务性金融资产。

【首席论坛】李迅雷:热钱“脱虚向实”会否诱发通胀

观察楼市的销售额、A股与债券交易量、证券结算资金余额的变化,可以发现楼市和证券市场均呈现出资金流入量减少的现象。

从市值规模而言,国内大宗商品加起来的总市值,相较证券市场规模小得多;如全球大宗商品的资产管理规模不过3000亿美元左右,即便作为贵金属的黄金,全球总市值也不过7万亿美元左右。但国内A股加债市再加上楼市的总市值应该超过400万亿人民币,也就是说,如果其中占总市值5%的热钱真的要“脱虚向实”,那么,大宗商品的投资容量显然是不够的。因此,随着流入商品市场的热钱增加,今后大宗商品价格上涨对其他商品的传导并蔓延的可能性还是存在的。

可能有人会质疑,商品属于可贸易品,若国内价格上涨,则海外供给会不断增加,从而会抑制价格上涨。也就是说,在贸易自由度很高的今天,大部分商品价格都国际化了,应该不会出现“需求拉动型通胀”。

从目前看,上游商品涨价对中下游商品的价格传导也不畅,故似乎看不出有“成本推动型通胀”迹象。但价格上涨的一个重要因素还来自于预期,预期的提升使得中间商产生增加库存的需求,又可能导致消费者恐慌情绪抬升,从而追加消费量。从国内过往的农产品炒作案例看,大蒜、生姜等价格也有过多次被炒高的事例,所以,中国今后会否出现“热钱炒作型通胀”,值得关注和讨论。

也就是说,当经济脱实向虚的时候,会导致系统性金融风险加大,经济结构扭曲;而在引导经济脱虚向实的过程中,热钱可能又会从金融领域流向商品市场,导致实体经济价格体系扭曲,进而又衍生出新的风险。也就是说,通过市场资金转移而非市场出清的方式来解决金融、地产领域的资产泡沫和高杠杆问题,其结果往往只是风险的转嫁而非风险释放。

综上所述,一旦大量热钱流向商品领域,无论是否将引发通胀,都不会带来好的结果:如果因此发生通胀,则意味着PPI向CPI传导,这不仅会增加中低收入群体的生活负担,并可能导致经济滞涨,而且还会并迫使利率上行,可能触发资产价格泡沫破灭;如果不发生通胀,则意味着制造业的利润和投资增速将下降,经济下行压力会进一步加大。

估计今后监管部门应对大宗商品和其他商品价格上涨的办法主要将通过加强管制来实现,即管制将从当前的金融领域扩大到商品领域,这非常符合当前的政策逻辑,也确实会行之有效。但从长远看,市场机制的发挥空间会缩小,这恐怕就需要权衡市场调节和政策管制之间的利弊得失了。

酝酿中的货币基金新规,小银行受伤最深?——华创债券日报2017-08-11

债券市场投资策略:地缘政治发酵叠加近期资金面结构性宽松,带动债券市场收益率小幅下行,但是驱动收益率下行的因素并非趋势性因素。在人民币兑非美货币持续贬值,流动性和监管环境都未放松的情况下,市场更加关注基本面的变化和潜在预期差,综合来看债市收益率上行风险大于下行风险,本轮调整还将持续并大概率突破前期高点。【Note:作为投资人员来说,有很多要考虑的东西,债券市场,价格是一回事,能不能买到又是另一回事。债券市场的流动性,比股票市场无疑要差很多。】

据媒体报道货币基金监管新规或将限制对于同业存单的投资,未来货币基金投资同业存单或将参考债券和非金融企业债务融资工具的相关规定进行管理,评级需要AA+及以上,AA+的存单还需要遵守“双十限制”,未来存单不再参考存款相关规定。

人民币兑美元升值并不代表人民币走强,由此期待外汇占款趋势性流入不现实。今年以来,人民币兑美元汇率升值主要是由于美元指数走弱引起的,但是人民币兑多数主要货币均是贬值的,而且今年上半年贬值幅度较大,从以一篮子货币组成的人民币指数来看,虽然人民币兑美元不断升值,但是人民币指数并没有因此上行,还处在下行通道中。因此,人民币兑美元相对走强,并不代表人民币真的走强,也不能因此认为人民币贬值压力有所缓和。

从外汇占款角度来看,虽然上半年人民币兑美元不断升值,但是外汇占款却持续流出,近期流出速度还有所增加,银行自身和代客结售汇也持续逆差,并且有不断走扩的趋势,因此指望人民币兑美元升值带来外汇占款的流入是不现实的。

对经济数据无需过度悲观—华创债券日报2017-8-15

8月份宏观数据有望反弹,因此也不可对经济下滑过于乐观。虽然短期内利多因素的释放将有利于利率的下行,但是这些利多因素难以延续,因此近期也有望确定短期内利率的底部,而这个底部似乎比前面的底部更要高一点。展望中期,影响债券市场的因素并没有发生根本的改善,我们建议机构短期内不可过于乐观,要注意利率底部的安全边际。

第一,近期市场针对周期行业的讨论比较多,也有观点认为CPI没有起来,因此周期行业没有起来。我们认为:(1)去年经济小复苏后,CPI已经出现了明显的分化。食品类CPI并没有起来甚至还出现了一波明显的下跌,但是非食品CPI,核心CPI都出现了反弹。本质上,食品CPI和经济变化的相关度不高,更多受到猪肉蔬菜的供需影响;核心CPI则反应了更多的经济周期的变化。(2)如果要看周期行业的变化,完全不用拐弯抹角去看CPI的变化来证明周期行业的变化。从去年开始,工业企业利润就出现了明显的反弹,直到现在

第二,需求不差,叠加直接控制产能和环保等供给侧改革支撑周期品涨价。近期周期品持续涨价,远高于市场预期,引发市场广泛关注,下游需求不差是近期周期品涨价的重要支撑,与此同时,今年以来供给侧改革进一步推广,钢铁、煤炭行业行政化去产能措施依旧,电解铝行政化去产能也开始逐步推广,而化工和有色行业环保督查力度趋严,有望支撑未来价格上涨。

第三,经济数据受天气扰动小幅回落,无需过度悲观。周一公布的经济数据均有所回落,且低于市场预期。对于7月数据的回落,一方面是上个月数据冲太高,另一方面是受高温天气、洪涝灾害以及去产能的影响。7月全国平均日最高气温为1961年以来同期最高,高温天数也是最多,影响到了工业生产和投资,而一些不受高温影响的表现依旧不错,比如网络购物,1-7月网络消费累计同比33.7%,反而较1-6月增加0.3个百分点,另外粗钢产量同比增加4.6个百分点至10.3%,为13年10月以来的新高,均反映经济并不差。后期随着这些因素的消退,数据有望回升,当然后期基数效应也将逐步显现,可能会对数据有所拖累,但我们认为影响有限,无需过度悲观,而且即使回落,只要在政府的容忍度之内,也不会使得货币政策出现放松。

【中金固收·宏观】划重点:政策稳,防风险,债券通,纳存单,管资管——央行二季度货币政策执行报告点评

超储率偏低导致资金面容易出现波动,也是去杠杆大背景下的政策设定。专栏一解释了超储率逐步走低的原因,认为超储率下降并不意味着银行体系流动性收紧和货币政策取向发生变化。

未来仍将维护银行体系流动性基本稳定、中性适度。

此外,央行也对市场较为关注的M2偏低问题进行了解释。央行认为当前M2增速比过去低一些,需要全面客观认识。未来M2保持在较低水平可能是新常态。M2的可测性、可控性以及与经济的相关性亦在下降,对其变化可不必过度关注。言下之意,央行不会因为M2偏低有明显的政策放松,容忍M2实际值与目标值有一定偏离。

在下一阶段主要政策思路中,流动性调节维度,央行仍坚持“保持总量稳定,调节好货币闸门”的说法,灵活运用多种货币政策工具组合,新增“削峰填谷”维护流动性基本稳定,并强调要处理好稳增长、调结构、控总量的关系。

——预计未来逆回购操作期限会从前期的7天为主转向7天、14天、28天甚至更长期限的操作,用以调节流动性。

基本面:并不担忧通胀,经济运行稳健

融资:贷款利率小幅上升,再度强调降低实体经济成本

这次货币政策执行报告中重新提到“把更多金融资源配置到经济社会发展的重点领域和薄弱环节,促进融资便利化,降低实体经济成本”,也提到“把发展直接融资放在重要位置,改善间接融资结构”,“切实发挥债券市场在提高直接融资比重、防范化解金融风险、优化资源配置方面的作用。”——我们在以前的报告中也多次分析过,在上半年债券市场融资持续低迷,信用债净增量持续萎缩的情况下,央行比较注重恢复债市融资功能,因此,适度引导债券收益率回落,使得债券需求和发行量能够恢复是符合央行意志的,这也是6月份以来资金面改善和债券收益率回落的重要背景。往前看,我们预计央行仍会有一定结构性措施来引导债券融资量进一步恢复,尤其是融资难度较高的民营企业和实体经济企业。债券收益率虽然未必有大幅的回落,但上升是不符合监管意志的。

货币政策执行报告首次提到:为了更全面地反映金融机构对同业融资的依赖程度,引导金融机构做好流动性管理,拟于2018年一季度评估时起,将资产规模5000亿元以上的银行发行的一年以内同业存单纳入MPA同业负债占比指标进行考核。对其他银行继续进行监测,适时再提出适当要求。

截至16年年末,有35家商业银行(不包括政策性银行)规模超过5000亿(四大行、邮储、交行、12家股份制银行、12家城商行、5家农商行)。如果不考虑存单的期限(所有的存单均计入),其中有约14家将同业存单纳入同业负债后占比超过33%,这些银行合计超标同业负债规模的量级在1万亿左右。实际中,由于只纳入发行期限为一年以内同业存单,超标的银行和超标的压力会较如上计算减轻。

明明:【债市终于扬眉吐气】宏观经济如期放缓,3.6%的顶部中枢再次得到证实

二季度经济数据公布以来,债市承受压力,特别是在商品市场暴涨之后,很多投资者担心通胀和经济强于预期同时出现,导致债市下跌,市场有声音认为10年国债到达3.7%只是开始,甚至有看到4.0%的观点出现。但我们坚持自己的逻辑,从基本面、政策面、海外形势几个方面推导,仍然保持10年国债3.6%的顶部中枢不变,事实上今天的数据出台和近期货币政策的走势也证明了我们的逻辑。

展望后市,考虑到美国近期通胀较为低迷,甚至不排除年内美联储只缩表,不加息的可能性,那么国债的顶部仍然是相对确定的,我们仍然保持中性偏乐观的态度,今年利率的区间走势非常明显,相信此前跟随我们坚定看利率顶部的投资者也都已经有所收获。未来机会仍然存在,把握利率区间波动的特征就是把握机会的核心所在。

明明:【金融体系的杠杆如何测算?】银行和非银杠杆转移,稳杠杆政策目标得到体现

债市场内加杠杆以质押式回购为主,券商质押/买断两种回购方式并行。债市场内加杠杆以在银行间市场回购融入资金为主,方式主要有质押式回购和买断式回购两种。

商业银行债市场内杠杆稳中下行,杠杆向非银转移。我们采用总资产规模/自有资金的计算方式估算6、7月各金融机构债市场内杠杆水平,与之前测得2月的数据进行比较。证券公司杠杆率水平畸高,6、7两月杠杆率均超过200%,这与同业链条中券商承接资金成本较高有关。整体来看,规模较大的金融机构,如全国性商业银行、基金、保险等,杠杆率水平往往较低,而规模较小的机构,如城商行、农商行、证券公司等,杠杆率水平偏高。今年以来,商业银行杠杆率稳中下行,城商行、农商行杠杆率下降尤为明显。杠杆向非银机构转移,6月非银金融机构杠杆率水平较2月全线提升,整体杠杆水平最高的证券公司,杠杆率上行幅度最大。

金融机构杠杆

=(债券托管量-买断式待返售余额+买断式待购回余额)/[(债券托管量-买断式待返售余额+买断式待购回余额)+质押式待返售余额+买断式待返售余额-质押式待购回余额-买断式待购回余额]

=(债券托管量-买断式待返售余额+买断式待购回余额)/(债券托管量+质押式待返售余额-质押式待回购余额)

明明:【央行释放三大信号!】最深度的货币政策执行报告点评,严监管和宽货币的组合确立

此次央行货币政策执行报告透露出政策思路符合我们之前的分析:严监管与宽货币的全新政策组合。特别是央行释放出三大政策信号:一,近期将推出新的操作工具,货币市场利率稳定性提高利多长端利率走势;二、同业存单纳入MPA和资管监管逐步推进,存单对长期债券替代作用将有所缓解;三、劳动收入占比下降导致通胀低迷,货币政策保持缓和。具体来看:

第一,拟将同业存单纳入宏观审慎评估同业负债占比指标,并适时考虑推广至全行业全口径,以及对资产管理业务五大风险点的揭示和六大对策的提出,加强对资产管理业务的监管,促进资产管理业务规范健康发展。

第二,央行强调M2增速新常态和超额准备金率走低的正常化,表明央行对市场流动性水平较有信心;二季度稳健中性的货币政策得到延续,公开市场操作工具灵活化、精细化的改变将进一步深入,未来货币政策将更显连续和稳定,流动性水平将更加中性平稳。

第三,人民币兑美元汇率中间价逆周期因子的引入扭转了贬值预期,人民币阶段性升值,有助于缓解海外紧缩因素对国内债市的冲击,加速了人民币国际化进程,预计将大大减轻中国的资本外流压力,甚至导致资金流向的反转,有助于保持国内流动性充裕,利好国内债市。同时,债券通的启动对于吸收外资、缓解资本外流影响显著,境外投资者的进入会倒逼国内债券市场制度的不断完善并且与国际债市接轨,提高在全球债市的竞争力,利好债市。

第四,国内经济向好受外部经济复苏拉动,但随着海外主要央行货币政策转向正常化,劳动收入占比下降带来的消费增长受阻、政治不确定性提高等因素影响,导致通胀低迷。

明明:【货币市场利率的变化说明了什么?】R与DR利差由分化走向弥合,验证货币政策边际偏松

判断市场流动性紧张与否、观察央行货币政策的边际走向,可以从“量”和“价”两个维度着手,其中R007、DR007以及二者利差是最为关键的价格信号。从“量”上看,一是看流动性存量,如超储率、广义货币量等指标;二是看流动性增量,受央行公开市场净投放、财政收支、外汇占款变动等因素影响。从“价”上看,主要指标是各种利率,其中以DR利率更加直接地代表由于央行净投放导致流动性变化所形成的资金价格。

7月中下旬,在银行间资金面相对平稳的背景下,R007与DR007的利差却维持在90BP以上,明显超出上半年均值,表明非银机构资金紧张状况超出预期。R与DR分化局面的背后,一般有两种可能的情形,也可能是二者的结合。第一种情形是总量不足,即:市场上整体资金面紧张,机构资金拆借能力不足;第二种情形是结构分层,即:虽然银行体系流动性适中或偏松,但由于市场预期的干扰,导致银行态度谨慎,资金面结构性分层。

过渡到8月初,前两日R007与DR007维持较低水平,R与DR利差收窄,表明金融机构流动性分层的问题在逐步改善,验证我们此前关于货币政策将保持边际偏松的判断。从DR007的走势看,虽然上周后两天央行公开市场净回笼,但其目的只是针对当时资金利率过快下行而进行“削峰填谷”的中性操作,以保持银行体系流动性基本稳定,并非要边际转紧;从R007以及R、DR二者利差看,非银机构资金面阶段性偏紧的局面得以逐步缓解,验证我们此前关于货币政策将保持边际偏松的判断。

对于债市而言,央行货币政策维持边际偏松,流动性总量和结构问题逐步改善。过渡到8月份,随着央行货币政策维持边际偏松,R与DR由分化走向弥合,流动性从分层转向缓和,债市明显波动的可能性不大。考虑到下半年政策面或保持监管偏紧、货币偏松的环境,我们认为短端利率大概率将保持低位,同时坚持10年期国债收益率3.6%为顶部中枢的判断不变。
[流动性与监管,央行怎么说? (天风研究·固收 孙彬彬/唐笑天)

和前面的差不多,就不摘录了。

明明:【债市的“韧性”来自哪里?】从R007看货币政策目标和信用利差的变化规律

近期市场波动和分歧加大,特别是工业品价格的回升,导致市场对经济周期回升的预期有所加强。但债市却表现出了“一定的韧性”,这种韧性也是我们对债市后市仍保有信心的基础。

近半年以来,信用利差一直处于历史较高水平,但6月以来,信用利差走阔的趋势开始发生变化。自7月起,高评级信用利差缩窄至1.0%~1.2%的水平,与去年12月到今年1月水平相当,低评级信用利差也缩窄至1.60%~1.80%的水平。有观点认为信用利差近期的明显收窄是牛市末期现象。但我们发现,近期的信用债收益率下降、信用利差收窄,更可能是6月之后是R007波动性减小的结果。而央行调控DR007的同时,稳定R007的波动,正是债市“韧性”的来源。

从历史上看,信用利差缩窄的时期往往伴随着国债收益率的下行。2014年初开始,信用利差开始了近两年的收紧,与此相伴的是国债收益率的一路下行。五年期国债收益率在这一时期由4.47%下降至2.28%,而同期限的高等级信用利差由1.7%收窄至0.57%,同期限高等级信用利差由3.09%下降至1.20%。而当利率债收益率调头上升时,信用利差也在逐步走阔。信用利差与利率债收益率具有较高的同步性,当信用利差收窄的时候,往往是国债收益率下降的时期。因此,从历史经验上看,似不能说明信用利差收窄是债牛末期的警报。

信用利差与R007的波动率具有很高的相关性,R007波动率高的时期,信用利差往往走阔,R007波动率降低的时期,信用利差往往会收窄。R007反映非存款金融机构融资成本,信用债的持有者多是非存款性金融机构,R007的走势对信用利差极其重要。目前,仅有16.01%的企业债掌握在银行手中,余下83.99%则由非银行金融机构持有。R007波动性减小说明资金市场稳定性提高,非银机构因此增加对信用债的配置,造成信用利差收窄。【Note:考虑到央行未来的操作,信用利差还有望进一步收窄。】

6月份受MPA监管和MLF大量到期的影响,被认为是资金面较为紧张的时点。但人民银行在6月加大了逆回购投放,使市场平稳度过6月,可见央行也在保持流动性的稳定,避免资金面出现剧烈波动。我们认为下半年货币政策与监管政策将加强配合,大概率不会重现5月前后的资金面大幅波动情况,R007波动性不会再度回到前期高位。基于以上预期,我们认为信用利差的收窄不能简单地被视作牛市的末期,从这个角度来看利率债收益率也没有强烈的上行压力,我们仍坚持10年期国债收益率3.6%的顶部中枢判断不变。

未来绝非金融地产!——海通宏观债券每周交流与思考第231期(姜超、周霞、顾潇啸)

贷款利率正在回升。央行最新货币政策报告显示,17年2季度的银行房贷平均利率为4.69%,比1季度回升14bp,比16年末的最低点回升17bp,已经回到了15年末的水平。央行同时表示当前合意的货币利率中枢DR007在2.75%-3%,而这比16年上半年的低点上升50bp,这意味着17年下半年的房贷利率仍有上行空间。因此,过去货币政策没有影响并不代表未来没有影响。

债市难上难下短期市场对经济基本面的分歧仍大,虽然上半年经济企稳超预期,但随着后续7、8月经济数据公布,基本面预期或再次变化,对长端有支撑。短期货币政策仍将维持中性偏紧,短端下行空间有限,在期限利差仍窄情况下,短端对长端依然有制约,由此利率将维持区间窄幅震荡,难上难下,我们维持10年国债利率区间3.3-3.7%不变。

通胀传导受限,贷款利率回升——海通宏观债券周报(姜超、周霞、顾潇啸)

没啥想摘录的,算了。

报告请见百度网盘:

链接:http://pan.baidu.com/s/1dFvkTHZ 密码:vrps

近期阅读宏观经济分析的一些感想

近期在阅读学习宏观经济的内容,把之前翻过的一些书又翻了一下(宏观经济的相关书籍请见http://www.tangrenke.com/2017/07/20/macroeconomics-books,其中还很多本是我没有读的。)。

自己开始对宏观经济有一点点模糊的概念,虽然是很不成熟,也尝试着将其写下来吧。

对于宏观经济的分析,需要首先在大脑中有一个整体的概念框架,我想下面的这些问题是比较重要的。

  1. 宏观经济:
    • 政府对宏观经济期望的目标是什么?
    • 这些目标如何去衡量,他们之间的关系是怎么样?
  2. 涉及到哪些主体:
    • 这些主体之间扮演什么样的角色?这些主体各自的诉求和约束条件是什么?
    • 各个主体能够做什么(手上有什么工具可用)?
    • 主体之间如何相互影响?
  3. 微观市场的表现:
    • 有哪些可观测的指标?
    • 不同的指标,对于投资者而言有什么样的含义?
    • 这些指标之间的关系?

宏观经济的目标包括经济增长、稳定物价、充分就业、结构调整、国际收支平衡/汇率稳定、金融稳定/资产价格水平稳定等,央行和中央政府可采取的调控措施包括货币政策、财政政策、行政干预等来期望实现预期的目标。在宏观经济的目标中,1,2,3,5是大家相对而言比较熟悉的,第4个目标是近期我国政府在一直提倡并期望实现的,第6个目标在国际上也逐步受到关注。在之前的经济学的观点中,并不认为资产价格的变化会影响经济的增长,但是近些年来,各国政府都对此开始重视。

宏观经济分析的维度:

  • 结构化分解:一个事物若从整体去看,可以没有觉得有什么特别的东西可发现。但是如果将该事物拆分成几部分来看,我们就能够找到一些有意思的东西。
  • 产业链:经济活动可以按照产业链来进行划分,产业链的各个环节相互影响,而在分析上,也可以通过产业链各个环节进行相互验证。
  • 需求 vs 供给:一般而言,需求层面的因素弹性比较大。经济中大部分冲击来自于“需求”,少部分来自于“供给”。需求端是个快变量,而供给端是一个慢变量。
  • 实物(产品或服务)vs 资金:实物和资金是运行的一体两面(当然虚拟经济中,资金本身就能力脱离实物而独立运作)。
  • 名义 vs 实际:价格的变化会增加宏观变量的波动,名义变量无法反映真实的数据,在分析实际值的时候,我们要用价格指数把这个名义数据平减掉。
  • 短期 vs 长期:有些因素长期而言是中性的,但短期并不是。短期而言,一些变量是恒定的,而长期而言,变量都是可变的。
  • 周期 vs 波动:周期是一个循环往复,波动是看似有所循环,实则一去不复返。
  • 外生 vs 内生:外生冲击是来自经济体“外部”的因素,与经济体本身无关;内生冲击是来自经济“内部”的因素,经济体系会“自发调整”。内生都是“可逆的”,影响也是短期的。外生冲击会对经济体系造成“不可逆转”的影响,一般来说都是中长期的。
  • 固定 vs 可变:在短期内,一些项目可以视为是固定不变的;而在长期,所有项目都是可变的。
  • 价vs量:在对金融市场分析的时候,既需要分析价格的变化,也需要考虑交易量的变化。

数据分析方法:

  • 同比、环比
  • 季节性调整
  • 单期与累计
  • 移动平均

为了实现宏观经济目标,中央政府和央行可采取的调控措施包括货币政策、财政政策、行政干预等来期望实现预期的目标。

货币政策是市场所最为关注的内容,在分析货币政策上,有几个内容需要进一步了解:

  1. 央行期望实现怎么样的目标,各个存在的冲突的目标中,央行是如何来权衡取舍的?
  2. 央行有哪些货币政策(央行手里有哪些工具),它们各自的作用是什么?
  3. 在某一市场情况下,央行是如何对未来进行判断的,它接下来会怎么做?
  4. 资金是如何流动的?基础货币–>金融机构(银行及非银金融机构)–>实体经济和资本市场
  5. 金融市场上各个机构的诉求和约束条件是什么?
  6. 货币市场和资本市场都有哪些指标可以去观察?他们之间是如何被影响的,他们之间的关系又是如何?

关于分析框架,在此摘录 张五常、高善文、徐寒飞的一些话语。

张五常:

科学的研究方法

科学的形成基于三个重要的信念:(1)凡是现象或行为,其存在是靠主观的判断,而大家不能在这主观上有分歧。(2)所有被众所认同的现象,都是有迹可循,有规律的。(3)从事科学研究的人,一定要坚信任何事情的发生不会是无缘无故的。

凡是有解释能力的理论,一定要有被事实推翻的可能,但却没有被事实推翻。理论要有被事实推翻的可能,一个先决条件是:理论的本身要清楚地显示有错的可能。

科学的进步,不是因为对的理论替代了错的,而是有更广泛解释力的,替代了较狭窄的。

一个特殊的理论,若是特殊到只能解释一个现象,是站在科学理论的一个极端,完全不能一般化,用场极少。站在另一端,却是一般化得离谱,在任何情况下也不可能错的“理论”,这就是哲学上所说的套套逻辑(Tautology)[1]了。特殊理论内容太多了,而套套逻辑则没有内容。可取的理论,一定是在特殊理论与套套逻辑之间。

大有可取的、足以解释世事的理论,永远是在特殊理论和与套套逻辑这两个极端之间。科学的进步,往往是从一个极端或另一个极端开始,逐步地向中间发展的。

[1] 套套逻辑:是指一些言论,在任何情况下都不可能错。例如“四足动物有四只脚。”

(高善文, 2013年6月, 页 19)对宏观分析对投资的意义有如下论述:

从现实情况看,投资者需要对未来6~12个月经济趋势进行判断,以解决多空问题;由于这样的原因,宏观经济需要专注于对过去几年数据比较全面的分析和把握,并重点回答三个问题:经济走向、政策立场、资金松紧。

商业性质的宏观研究需要做好的3个方面:

  1. 数据把握要全面。
  2. 重点关注方向和趋势,而不过分计较数值的大小和误差,不过分计较琐碎的细节。
  3. 做好数据在横断面上的交叉验证和横向比对,绝不轻信单一数据来源。

对于短期数据分析,有两个假设:

(1)在横向上数据之间应该存在紧密的关联,并且可以相互印证和说明。这使得我们可以合理把握和预期主要变量的方向,并且通过数据之间的相互验证对框架及其推论的合理性建立信心。

(2)一件事情发生一定会留下一些痕迹,一定会在不同的领域都有所表现。这一假设在于识别冲击,从而把握对原来预测可能形成的偏离。

研究的4步骤:

  1. 观察现象,提出问题;
  2. 提出假说,提出理论;
  3. 从假说和理论出发,从其内在逻辑出发,去做出一系列的预测。
  4. 系统性地搜集经验、事实和证据,并把这些经验、事实和证据同理论的预测相对照。

逻辑必须能够提出可以观察的、确定的、排他性的预测,并得到经验事实的支持。

理论分析的简化过程要遵循两个原则:(1)要使分析过程尽可能的简单,这通常意味着需要考虑一些理论的极限情形;(2)分析过程不能太过简单,相对分析的目的而言,分析过程必须保留足够强的解释和预测能力。

徐寒飞:

        好的分析框架应该是基于最简单和最核心的经济学和金融学原理来搭建的。

分析框架需要多维度的动态视角。各个维度、各种因素对某一个市场(如债券市场)的影响,可以用参数或者是敏感系数来度量。一个市场的“微观结构”特征,在某些冲击下会出现“结构性”变化,导致分析框架暂时“失灵”,这个时候需要做的是:修正框架,并且修正相关参数。综合而言,这种动态,既包括影响市场的重要因素是动态的,也包括这些因素之间的关系是动态的。

Multiprocessing

最近在写一个代码,感觉要run很久,在群里问,有人建议采用multiprocessing。开始看官方文档。然而有一个程序却测试跑不出来。

# -*- coding: utf-8 -*-
"""
Created on Sun Jul 30 19:42:12 2017
multiprocessing_test
"""

import multiprocessing as mp

def f(name):
      print('hello', name)

if __name__ == '__main__':
       p = mp.Process(target=f, args=('bob',))
       p.start()
       p.join()
# 在anaconda的spyder中,一定要有这一句才ok。
# 但是在fluent python中,不需要这一句
      p.run() #output为 hello bob

#下面的程序运行正常
def f2(x):
     return x**x

if __name__ == '__main__':
     with mp.Pool(5) as p:
            print(p.map(f2, [1, 2, 3])) #output为[1, 4, 9]

Trump, Yellen

今天一位在米国的投资机构人员来拜访,大家正好相互交流一下。他对中国好像有些陌生了,而我们也正好请教一下米国市场的情况。

简要记录一下问的几个问题及他的回答。

  1. 关于Trump。
    1. 米国之前是左派和右派(知乎上有一个比较说明)之争,但无论左派和右派,代表的都是政治精英。而trump的上台,是普通民众相对精英的胜利。trump这个人就是一个商人,他没有什么立场,有的只是利益。
    2. Trump在未上台之前,是代表所谓普通民众的利益。但是他上台之后,他会考虑什么问题?经济要保持稳健(加息显然是不利于经济增长的),自己能够获得连任。从经济增长的角度看,trump显然也不太希望加息。
    3. 以前经常是一方有总统,另一方有两院。而现在总统、参议院、众议院现在都在共和党手里,2018年的中期选举马上就要来了,如果共和党还不做点成绩出来,那不是正好被民主党攻击?
    4. 关于医疗方案、减税。共和党是不太希望看到政府赤字太高的。如果医疗方案能够通过,那么这将为美国政府降低财政支出。那么,减税的方案就相对容易通过。如果医疗方案不通过,那么,减税这事情就难了,或者会采取部分减税的方式(例如对美国企业在境外的利润流入到国内降低税率)。
    5. Trump是不喜欢Yellen的,他想把Yellen换成自己更喜欢的人。但是,其实面临很多的挑战。Trump本来要提名700+人到政府的各个部门任职,但到现在,才通过了40+个,这个速度是有史以来最慢的。如果trump要换美联储主席,那么又会影响对其他人提名的任职。
  2. 利率、缩表:
    1. 美国的资产价格泡沫,增值的是谁,是那些有钱的阶级。对普通民众而言,资产价值泡沫,对他们没有什么好处,他们看到的只是更高的资产价格。高利率会损害谁?高利率会使得资产价格泡沫破灭,那些有钱的阶级当然不想看到。
    2. 关于加息。目前美国的利率相比欧洲、日本来说是高的,如果美国加息,那么资金就会流入美国。从某种意义上来说,是欧洲、日本的低利率压制了美国的加息。从经济调控的角度,是想趁有机会,先把利率调上去,这样等下一次危机来临的时候,政府和央行才会有一些可用的调控工具。
    3. 关于缩表。在美联储扩表之前,曾经有研究认为美联储的扩表使得美国的利率下降了100-200bp,而现在普遍预期美联储将在9月将进行缩表,但一些分析却认为缩表只会使得利率提升20-40bp。这难道不是一个很奇怪的事情吗?市场在90%的时候是对的,但也有10%的时候是错的。如果这次是市场错了呢?

groupby_fillna_for special columns

Well, there is no problem to merge data and fillna.

sometimes we want to fillna with groupby, more specifically, we need to fillna with different methods, some are ffill, while others are fillna(0).

the following code can deal with this situation.

# -*- coding: utf-8 -*-
“””
groupby_fillna_special columns
https://stackoverflow.com/questions/21284585
“””

import pandas as pd
from io import StringIO

# fillna with groupby
csvdata=”””
STK_ID RPT_Date sales opr_pft net_pft
002138 20130331 2.0703 0.3373 0.2829
002138 20130630 NaN NaN NaN
002138 20130930 7.4993 1.2248 1.1630
002138 20140122 NaN NaN NaN

600004 20130331 11.8429 3.0816 2.1637
600004 20130630 24.6232 6.2152 4.5135
600004 20130930 37.9673 9.2088 6.6463
600004 20140122 NaN NaN NaN

600809 20130331 27.9517 9.9426 7.5182
600809 20130630 40.6460 13.9414 9.8572
600809 20130930 53.0501 16.8081 11.8605
600809 20140122 NaN NaN NaN
“””
sio=StringIO(csvdata)

df=pd.read_csv(sio, sep=’\s+’,header=0,dtype={“STK_ID”:object,”RPT_Date”:object,
“sales”:float,’apr_pft’:float,
‘net_pft’:float})
df.set_index([‘STK_ID’,’RPT_Date’],inplace=True)

#ffill all columns with groupby
#DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)[source]
df.groupby(level=0).apply(lambda grp: grp.fillna(method=’ffill’))

#fillnow the lastrow with groupby
def f(g):
last = len(g.values)-1
g.iloc[last,:] = g.iloc[last-1,:]
return g
df.groupby(level=0).apply(f)

# fill certain columns
df[[‘sales’,’opr_pft’]]=df.groupby(level=0)[[‘sales’,’opr_pft’]].fillna(method=’ffill’)
#or you can write as following
df[[‘sales’,’opr_pft’]]=df.groupby(level=0)[[‘sales’,’opr_pft’]].apply(lambda grp: grp.fillna(method=’ffill’))

upsampling with multiindex

I want to resampling(more specifically, upsampling) data with multiindex.

Thanks for stackoverflow, https://stackoverflow.com/questions/39737890/, I find a solution.  the code has some minor error, I have corret it.

# -*- coding: utf-8 -*-
“””
upsampling with multiindex
“””

import pandas as pd
import datetime
import numpy as np
np.random.seed(1234)

arrays = [np.sort([datetime.date(2016, 8, 31),
datetime.date(2016, 7, 31),
datetime.date(2016, 6, 30)]*5),
[‘A’, ‘B’, ‘C’, ‘D’, ‘E’]*3]
df = pd.DataFrame(np.random.randn(15, 4), index=arrays)
df.index.rename([‘date’, ‘id’], inplace=True)
print(df)

df1=df.unstack().resample(‘W-FRI’).last().ffill().stack()
print(‘\n df1:\n’,df1)

the result is as following:

                         0                    1                2                 3
date            id
2016-06-30 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-07-31 A -0.202646 -0.655969 0.193421 0.553439
B 1.318152 -0.469305 0.675554 -1.817027
C -0.183109 1.058969 -0.397840 0.337438
D 1.047579 1.045938 0.863717 -0.122092
E 0.124713 -0.322795 0.841675 2.390961
2016-08-31 A 0.076200 -0.566446 0.036142 -2.074978
B 0.247792 -0.897157 -0.136795 0.018289
C 0.755414 0.215269 0.841009 -1.445810
D -1.401973 -0.100918 -0.548242 -0.144620
E 0.354020 -0.035513 0.565738 1.545659

df1:
0              1                2                 3
date            id
2016-07-01 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-07-08 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-07-15 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-07-22 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-07-29 A 0.471435 -1.190976 1.432707 -0.312652
B -0.720589 0.887163 0.859588 -0.636524
C 0.015696 -2.242685 1.150036 0.991946
D 0.953324 -2.021255 -0.334077 0.002118
E 0.405453 0.289092 1.321158 -1.546906
2016-08-05 A -0.202646 -0.655969 0.193421 0.553439
B 1.318152 -0.469305 0.675554 -1.817027
C -0.183109 1.058969 -0.397840 0.337438
D 1.047579 1.045938 0.863717 -0.122092
E 0.124713 -0.322795 0.841675 2.390961
2016-08-12 A -0.202646 -0.655969 0.193421 0.553439
B 1.318152 -0.469305 0.675554 -1.817027
C -0.183109 1.058969 -0.397840 0.337438
D 1.047579 1.045938 0.863717 -0.122092
E 0.124713 -0.322795 0.841675 2.390961
2016-08-19 A -0.202646 -0.655969 0.193421 0.553439
B 1.318152 -0.469305 0.675554 -1.817027
C -0.183109 1.058969 -0.397840 0.337438
D 1.047579 1.045938 0.863717 -0.122092
E 0.124713 -0.322795 0.841675 2.390961
2016-08-26 A -0.202646 -0.655969 0.193421 0.553439
B 1.318152 -0.469305 0.675554 -1.817027
C -0.183109 1.058969 -0.397840 0.337438
D 1.047579 1.045938 0.863717 -0.122092
E 0.124713 -0.322795 0.841675 2.390961
2016-09-02 A 0.076200 -0.566446 0.036142 -2.074978
B 0.247792 -0.897157 -0.136795 0.018289
C 0.755414 0.215269 0.841009 -1.445810
D -1.401973 -0.100918 -0.548242 -0.144620
E 0.354020 -0.035513 0.565738 1.545659

read h5 and remove prefix ‘b’

h5文件是存储大数据的一种较好格式,在读取该文件的时候,有时候会有prefix ‘b’.因此,要设法去除该prefix。

# -*- coding: utf-8 -*-
import tables as tb
import pandas as pd
import numpy as np
import time

time0=time.time()
pth=’d:/download/’

# 读取交易的数据
data_trading=pth+’Trading_v01.h5′
filem=tb.open_file(data_trading,mode=’a’,driver=”H5FD_CORE”)
tb_trading=filem.get_node(where=’/’, name=’wind_data’)
df=pd.DataFrame.from_records(tb_trading[:])
time1=time.time()
print(‘\ntime on reading data: %6.3fs’ %(time1-time0))
# in python3, remove prefix ‘b’
for key in [‘Date’, ‘Code’]:
df[key] = df[key].str.decode(“utf-8”)

# the following two methods are
# method 1
#str_df = df.loc[:,[‘Date’,’Code’]]
#str_df = str_df.stack().str.decode(‘utf-8′).unstack()
#for col in str_df:
# df[col] = str_df[col]
#method 2
#df.loc[:,’Date’]=[[dt.decode(‘utf-8′)] for dt in df.loc[:,’Date’]]
#df.loc[:,’Code’]=[[cd.decode(‘utf-8′)] for cd in df.loc[:,’Code’]]

time2=time.time()
print(“\ntime on removing prefix ‘b’: %6.3fs” %(time2-time1))
print(‘\ntotal time: %6.3fs’ %(time2-time0))

运行结果如下

time on reading data: 1.508s

time on removing prefix ‘b’: 9.315s

total time: 10.823s

不知道有没有更快捷的方式。

Add new column to Pytables

h5是很好的保存文件的格式,该文件格式有一个优势是支持快速读取,但是在写入列上有些麻烦。比较好的写入新列的方式,是将新生成的数据写入到一个新的表中,然后删除原来的表。

以下代码就是实现上述功能(此后文章未加说明,均为在Windows+Python 3 上实现)

  1. # -*- coding: utf-8 -*-
  2. # read data from h5 file and add one colume, then write new data to a new file
  3. import tables as tb
  4. import pandas as pd
  5. import numpy as np
  6. import time
  7. import sys
  8. time0=time.time()
  9. pth=‘d:/download/’
  10. data_file=pth+‘data0.h5’
  11. #read data from the file
  12. filem=tb.open_file(data_file,mode=‘a’,driver=“H5FD_CORE”)
  13. df0=filem.get_node(where=‘/’,name=‘FinancialData’)
  14. df = pd.DataFrame.from_records(df0[:])
  15. df[‘UniqueorNot’]=np.where(df.duplicated(subset=[‘Date’,‘Code’]),‘Duplicated’,‘Unique’)
  16. # convert object to string, because table can not accept object
  17. def foo(atype):
  18.     if atype==np.object_:
  19.         return ‘S10’
  20.     return atype
  21. def df_dtype(df):
  22.     cols = df.columns
  23.     if  sys.version_info[0] == 2:  # python 2 needs .encode() but 3 does not
  24.         types = [(cols[i].encode(), foo(df[k].dtype.type)) for (i, k) in enumerate(cols)]
  25.     else:
  26.         types = [(cols[i], foo(df[k].dtype.type)) for (i, k) in enumerate(cols)]
  27.     dtype = np.dtype(types)
  28.     return dtype
  29. dty = df_dtype(df)
  30. # write to a new PyTables table
  31. data_file=pth+‘data1.h5’
  32. data_h5 = tb.open_file(data_file, ‘a’)
  33. # make a definiton of creating Pytables
  34. def c_table(f,tname,tdty,data):
  35.     try:
  36.         f.create_table(where=‘/’, name=tname, description=tdty)
  37. #    if the table has already been created, then do nothing
  38.     except tb.NodeError:
  39.         print(\n, tname, ‘is existing’)
  40.         pass
  41. #    get data from table
  42.     c=f.get_node(where=‘/’,name=tname)
  43. #   data can be list, and internal type is tuple
  44.     ts = [tuple(s) for s in data]
  45.     c.append(rows=ts)
  46.     c.flush()
  47. # if you do not want to save the file to csv, you can drop the following two rows.
  48. #    df = pd.DataFrame.from_records(c[:])
  49. #    df.to_csv(pth+’data1.csv’)
  50. # write new data to file
  51. namelist=[‘FinancialData’]
  52. for c in namelist:
  53.     c_table(data_h5,c,dty,df.as_matrix())
  54. #flush and close the file
  55. data_h5.flush()
  56. data_h5.close()
  57. # check the time elapsed
  58. time2=time.time()
  59. print(\n%8.4fs’ %(time2-time0))

宏观经济的书籍

ID 书名 作者 版本 出版社 出版时间 ISBNID 书名 作者 版本 出版社 出版时间 ISBN

  1. Economic Principles: How the Economic Machine Works Ray Dalio 英文版 Bridgewater
  2. 成本冲击、通胀容忍度与宏观政策 伍戈、李斌 中文版 中国金融出版社 2013年6月 9787504968999
  3. 信用创造、货币供求与经济结构 李斌、伍戈 中文版 中国金融出版社 2014年12月 9787504976987
  4. 货币数量、利率调控与政策转向 伍戈、李斌 中文版 中国金融出版社 2016年1月 9787504982858
  5. 新货币政策框架下的利率传导机制 马骏、纪敏 中文版 中国金融出版社 2016年4月 9787504984302
  6. 货币政策实施:理论、沿革与现状 Ulrich Bindseil 中译本 东北财经大学出版社 2013年12月 9787565414671
  7.  货币政策理论与分析 明明 中文版 中国金融出版社 2017年3月 9787504989000
  8. 中央银行与货币供给(第二版) 盛松成 中文版 中国金融出版社 2016年8月 9787504986214
  9. 汇率的本质 管涛 中文版 中信出版社 2016年8月 9787508665245
  10. 经济指标解读:洞悉未来经济发展趋势和投资机会 Bernard Baumohl 伯纳德·鲍莫尔 中译本 中国人民大学出版社 2005年10月 9787300108506
  11. 我在高盛的经济预测法 Joseph H. Ellis约瑟夫 H.埃利斯 中文版 机械工业出版社 2011年6月 9787111347682
  12. 聪明投资:如何利用经济枯荣循环获利 乔治·达格尼诺 中译本 山西人民出版社 2011年1月 9787203071129
  13. 解读中国经济指标:在数字中锁定投资机会 Tom Orlik 中译本 中国经济出版社 2012年3月 9787513614443
  14. 逃不开的经济周期:历史,理论与投资现实 Lars Tvede拉斯·特维德 中译本 中信出版社 2012年11月 9787508635217
  15. 经济周期谁也逃不开:中国企业怎么办 李嘉华 中文版 人民邮电出版社 2013年7月 9787115323293
  16. 经济周期模型 Robert E.Lucas,Jr 中译本 中国人民大学出版社 2013年1月 9787300169446
  17. 渐行渐远的红利:寻找中国新平衡 彭文生 中文版 社会科学文献出版社 2013年4月 9787509744246
  18. 经济运行的逻辑 高善文 中文版 中国人民大学出版社 2013年6月 9787300173443
  19. 在周期的拐点上–从数据看中国经济的波动 高善文 中文版 中国发展出版社 2006年1月 9787800878725
  20. 透视繁荣–资产重估深处的忧虑 高善文 中文版 中国物价出版社 2007年11月 9787509202104
  21. 经济数据背后的财富密码 李迅雷 中文版 经济科学出版社 2017年6月 9787514181685
  22. 预测背后的逻辑 鲁政委 中文版 机械工业出版社 2012年9月 9787111393504
  23. 大势研判:经济、政策与资本市场 任泽平 中文版 中信出版社 2016年7月 9787508662091
  24. 中国PMI研究与实践 中国物流与采购联合会 中文版 中国财富出版社 2012年12月 9787504745347
  25. 经济学的思维方式(影印第12版) 保罗·海恩、彼得·勃特克、大卫·普雷契特科 英文版 世界图书出版公司·后浪出版公司 2012年10月 9787510049927
  26. 经济学300年(上、下) 何正斌 中文版 湖南科技出版社 2009年6月 9787535748256
  27. 正常的终结:理解世界经济新常态 [美]詹姆斯·K. 加尔布雷斯 中译本 中信出版社 2017年2月 9787508669014
  28. 投资交易笔记:2002-2010年中国债券市场研究回眸 董德志 中文版 经济科学出版社 2011年6月 9787514106701 
  29. 投资交易笔记续:2011-2015年中国债券市场研究回眸 董德志 中文版 经济科学出版社 2016年9月 9787514172331