文 | 局长 出品 | OSC开源社区(ID:oschina2013)


— EOF —
转自:https://mp.weixin.qq.com/s/UFfrgczVpiBSi1J6KQvNVQ
分享个人经验,保留阅读记录,做时间的朋友
文 | 局长 出品 | OSC开源社区(ID:oschina2013)
— EOF —
转自:https://mp.weixin.qq.com/s/UFfrgczVpiBSi1J6KQvNVQ
今天市场稍微有所反抽,但目前而言还没触底,大盘空间看3520-3500区间,或者横盘震荡4个交易日左右。这是在没有消息刺激的情况下,有消息刺激就要看刺激程度。大致就是再过过3-4天应该差不多。
最近后台很多人留言说老师你预测这么准,能不能透露一些你学过的东西,指点一下。既然大家想学,又加上马上有国庆7天长假,正好可以学习,今晚就来说一下我的投资架构,以便大家也能系统地搭建自己的投资架构。
以往,相信大家都有去看过一些关于技术分析或者基本分析的书籍或者文章,更痴迷的可能还报过相关的炒股课程。这个过程中我们就会面临以下问题:
1、东看西看,东拼西凑,学的东西不完整,不系统,有时候管用,有时候不管用;
2、别人教你的东西不完全正确,还有教你的人是否真的懂,或者有没有真正告诉你。
授人以鱼不如授人以渔,今晚就来说一下我的投资框架:
相信这里也有金融、经济专业相关或者在私募或者投资机构工作的人,你们一定会遇到过这样的困惑:“在书本上学的金融和经济理论来到股市大部分会失灵”!即使后面去专门系统地学习大师级的价值投资理论,最后还是一筹莫展。
这是为什么呢?
因为知识门槛的原因,有点像我们古代的宗派,自家宗派的真材实料一般都不外传。那么,近代经济学或者金融学起源于西方,西方就对全世界玩了这么一手,他们给出来的经济学理论或者金融理论,基本不是完整的,甚至是有误导性的。
而且可以告诉大家,截止目前为止,在经济学领域,还没有具备科学性的经济学或金融理论,西方的理论基本是经验性总结。关于这一点,大家可以去看缠中说禅经济学,或者陈平的理论。
在一开始的时候,我也在这里头瞎转悠了很久才发现现在学校或者很多人传播的理论是有问题的。需要说明的是,这些理论在某些方面是适用的,只是不具备全方位涵盖性。
因此大家学习东西的时候要注意自己看的东西是否存在问题。上面说的,是希望大家不要走弯路。
在之前的文章曾经提及过一些框架的东西,首先是从宏观着手,然后再到市场,再到板块,才到个股,最后到买卖点。
这里说的宏观,其实对于多数人而言,没有必要深究,因为你们不是搞研究的,只需知道就行,因为宏观的东西一般两三年甚至十几年才会有明显的变化。
现在的宏观就是中美博弈,为什么会出现中美博弈呢?
直接原因是中国经济不断发展危及美国的霸主地位。再深一层原因就是人口级别更迭,目前处于人口序列中2亿5千万主导向12亿5千万主导过渡的阶段。宏观经济背景就是自1929年开启的信用经济拐点,目前就处于这个90年经济周期下行中,因为90年接近100年,管理层平时说的“百年未有之大变局”就是这么来的,就是从这个经济周期来的。
在这个交接期过了之后,中国经济将会一马平川,飞速发展,重回世界之巅,这些大家应该能够预感到。
现在的关键就在于要区分清楚中美博弈对市场的影响,因为目前还没分胜负,因此中美交锋会不间断出现,这就是未来1年的潜在投资风险。
中美博弈分胜负的标志是什么?美国金融市场崩溃。关于这个问题,在9月初的文章已经透露给大家了。一旦中美明显区分胜负了,国际资本将会快速逃离美国,我们也会打开对外的通道吸收美国出来的国际资本,这就是大破大立,先风险后大机会。
关于宏观经济周期,大家可以去看一下《涛动周期论》,这是前中信建投首席经济学家周金涛生前的演讲实录。他的理论相对来说通俗易懂也实用,不像现在的经济学家,开口就是一堆数据,说完了你还不知道他说了什么。这本书对生规划也很有帮助。
宏观的问题大概说了,有时间后面再深入一点,为了文章不那么长,暂时不深入讲解。下面就是大盘的问题,其实大盘主要跟政治经济相关,目前的政治博弈还是上面的中美博弈。经济问题还是这个90年经济周期下行趋势。
但有一点需要注意,我们炒股不是搞实业,炒股炒的是预期,不是实际情况,当然实际情况跟股市也有相关联,但更重要的是预期。因此,一般股市启动会先于经济启动。但前提是经济好转的预期要形成,就目前而言,经济还处于下行,今天PMI已经跌破50枯荣线了。
对于PMI跌破枯荣线,我们要有易经的思维,就是不要只想一边,要正反两面都要思考。很显然,PMI跌破枯荣线,说明经济不行。反过来,国家一直说维稳,那现在经济下滑,那是不是要维稳一下呢?
怎么维稳?放流动性。所以,这就可以知道,在至少中期经济是下行的,因此要小心,控制好仓位,但短期有可能释放流动性,那这就是一个短线的机会。
至于怎么捕捉这个流动性的机会,这就要结合到技术面。一般来说,如果处于下行趋势,没有出现下跌背驰的情况下,最好不要进场去博,因为还有可能下跌,等到你深套了再释放流动性,那就没有意义了。
只有在出现下跌背驰的情况下,这个时候行情要么止跌盘整,要么反弹修复背驰,这就没有下跌的风险,最多就是不涨,但不会亏钱,这就是战术问题。
看完大盘,那就看行业,在中国,行业主要由两方面主导,一是本身行业迎来利好,而是政策扶持。对于行业而言,其实也算是中期的,因为行业的东西不是三两天就会变的,那些隔三差五出来一个消息的,纯属是概念炒作,跟行业发展关系不是太大,只是借个名头来炒。
有时候觉得那些整天倡导价值投资的人天天出来说股票也是觉得奇怪。
现在行业方面,很显然就是涨价题材,电力供应不足等;国家政策方面,碳中和以及乡村振兴是主要方向。等美股崩盘了,就是金融方向。
我们知道了行业的情况,那就落实到个股。一般来说都是跟龙头,龙头有分2种,一是行业老大,这个就看市值,谁的市值大那很显然行业地位就大。第二是看概念,因为短期炒概念的一般比较猛。
如果有2个或者多个龙头呢,怎么选?这时就要考虑另一个因素:比价关系。
就是近期涨幅多还是少。关于这个比价关系,除了板块横向比较,其实还可以纵向比较。比如牛市里,金融股涨了50%了,科技股还没怎么动,那么从比价关系看,科技股的潜在空间显然比金融股要大。
宏观、大盘、板块、个股都比完了,最后筛选出来的股票是不是就可以买了?
还不行!
凡事关系到买和卖都要落实到技术面,这个时候就要从技术面去捕捉好的买卖点。这有点像追女孩,追女孩谈恋爱这事应该绝大多数人都有经验。你从一堆人里选出来目标了,是不是还要找合适的时机再下手,如果信任感都没建立,你就跟人家表白,成功的概率就很低。
股票跟谈恋爱有相似的地方,我们要通过技术面去找到股票适合介入的位置。那么怎么看呢?
这里从缠论的角度来给大家简单说一下三类买卖点:
第一类买点:经过下跌背驰产生,背驰的判断可以根据两段同向趋势对应的MACD红柱子面积大小做比对。
第二类买点:在第一类买点后进入上涨,在次级别回落止跌的位置就是第二类买点,一般比第一类买点高,但也有极少数比第一类买点低的情况。
第三类买点:突破中枢后,次级别回踩没有回到中枢的位置。
卖点就跟买点反过来。举例:
如上图 ,黄色是上涨趋势,绿色是下跌趋势。对比是否出现背驰,那就可以看进入和逃离中枢的前后两端力度比较,如:c段与b段对应的MAC柱子面积,上涨趋势对比看红柱子面积,下跌趋势对比看绿柱子面积。如果c段对应的红柱子面积比b段小,那后面就要被拉回到前面的中枢之内,这就可以提前预知拉回的空间大小。
详细的讲解,大家有空可以去看一下《缠论》(教你炒股票108课),下面这本书,千万别买套装,因为除了这一本,其他没什么用。《缠论》有多牛逼,大家去百度一下作者“缠中说禅”看看就知道。
宏观——大盘——板块——个股——买点 都解决了,那还有涨幅的问题,同样的买点,为什么有的一下子爆拉30%-40%甚至七八十个点,而有的只是涨七八个点十来个点呢?
这就涉及到周期共振的问题,要找到多周期共振的位置才能捕捉到更加的买点。关于周期共振,过几天再说。
转自:https://mp.weixin.qq.com/s/vPIAkqMNjvCT4Mg-5q12Kw
导语
近日,国家印发对学科类培训机构收费监管通知,对培训机构的收费、教师工资、营销费用方面都做出明确限制。学科类培训机构的公益性质愈加凸显,年薪百万名师、营销大战、收费乱象终成历史。在此情况下,教培机构将面临何种危机?盈利模式将如何重塑?
1
教培行业利润全无
此前,国家发展改革委、教育部、市场监管总局发布的《关于加强义务教育阶段学科类校外培训收费监管的通知》规定,义务教育阶段线上和线下学科类校外培训收费属于非营利性机构收费,依法实行政府指导价管理,由政府制定基准收费标准和浮动幅度,并按程序纳入地方定价目录。
北京作为首个即将出台义务教育阶段学科类校外培训收费标准的地区,其示范和借鉴意义重大,预计各省份和城市将陆续出台相应的收费标准。虽然,最后的收费标准未出,教培行业从业者对剩余的利润空间却不抱多大希望。
9月14日,浙江金华市婺城区英华时代教育培训有限公司成为浙江首家完成“营转非”登记的公司。“营转非”如火如荼进行,为教培行业学科类培训打上了“公益性”的烙印。
按照《民法典》的相关规定,“非营利”指不以向投资人分配利润为目的。在此背景下出台的收费监管标准精准整治培行业“名师百万薪酬”“营销大战”“价格乱象”等顽瘴痼疾。
意见指出,义务教育阶段,各地制定价格浮动幅度,上浮不得超过10%,下浮可不限,具体收费标准将参考线上、线下以及不同班型的课程时长来制定。其余两项要求为,培训机构老师平均工资不得明显高于公办教师;宣传费用不得超过销售收入的3%。
收回教培行业价格自定权意味着什么?有人说“2021年,教培行业死于限价。”
网传学科类校外培训收费标准上限为:一线和二线城市,小学生每小时30元,初中生每小时40元;三线及以下城市(含县城),小学生为每小时20元,初中生每小时30元。
以北京某机构的线下课程为例,小学阶段33课时、13课次课程收费为3360元,平均算下来为258元/课次,一次课2.5小时,每小时收费为103.2元。初中阶段36课时、24课次课程收费为3780元,折算下来157.5元/课次,一次课2小时,每小时收费为78.75元。
以广州某机构线下课程为例,小学低年级收费标准为225元/次课,一次课2个小时,折算下来每小时112.5元;初中收费标准为240元/次课,一次课2.5小时,折算下来每小时96元。
按10%上浮价格收费,小学生每小时33元,初中生每小时44元。目前一线城市市场主流学科类机构课程收费标准基本在100元/小时以上或附近区间浮动,收费价格是网传定价标准的2、3倍都不止。
线上大班直播课程价格收费较低一些,某网校共计48课时的小学在线课程收费为1760元,半个小时为1课时,每次上三个课时,折算下来为73元/小时;48课时的初中在线课程收费为1920元,折算下来为80元/小时。
之前的文章中,鲸媒体认为收费标准在60元/小时,线上大班课玩家通过节衣缩食削减开支,可能尚存一丝生存空间。但若真如传闻所言,以最高33元、44元每小时来收费,教培机构利润空间全无,倒闭和撤销K12业务是早晚的结局。
2
“限价”压垮教培行业
新商业模式在何方?
教育部规定义务阶段的辅导班不得在休息日、节假日和寒暑假展开学科培训,周一到周五的补课时间不能超过20:30。
另一项数据显示,截至9月22日,全国有7743.1万名学生参加了课后服务,学生参加率85%,其中有71.2%的学生每周5天全程参加。也就是说,大部分的学生都会在学校待到18:00及以后,教育机构的线上和线下课程能上课的区间为18:00/18:30-20:30,最长上课时长为2.5小时。
于是涨价成为顺理成章的事情,以提价来填补流失的时间。有家长反映,当地被列入白名单的机构在一段时期内有小幅的涨价。
如今,“限价”成为压垮K12业务的最后一根稻草,也戳破了教育公司希冀靠涨价来赚取时间与利润的幻想。
摆在教培机构面前的现实:义务阶段的课程收费降至毫无利润可言的价格、租金不降反增、政策对老师资质的要求和用工成本不断攀升、资金监管愈加严格……“双减”的下半场,每天都在重复上演“跑路”“破产”,一众企业面临“退市”的风险。
天眼查数据显示,截至8月份,2021年教培相关企业注销或吊销的数量超14万家,较2020年同期相比,增长约34.59%。
K12教育公司四季教育、精锐教育、朴新教育均在被强制退市的边缘徘徊(美股六个月低于1美元/股将退市)。
四季教育2021财年年报显示,小学业务营收为2.08亿元,中学业务营收为5090万元,二者合计占比高达92.3%。截至9月27日,四季教育股价为0.8美元,总市值为3700.99万美元。四季教育发布公告表示,将在12个月期间以美国存托股票的形式回购其总价值高达1500万美元的普通股。
精锐教育截至2021年2月28日的第二财季业绩显示,核心业务精锐个性化(K12 1对1教育)、精锐少儿教育和精锐在线,分别占总营收的78.9%、16.6%和3.5%。截至9月27日,精锐教育股价为0.37美元,总市值为5986.66万美元。
朴新教育5月24日发布的业绩报告显示,K12辅导服务的营收为5.51亿元,占总营收的80.17%。7月23日起,公司股价跌破1美元/股。截至9月27日,朴新教育股价为0.48美元,总市值为4198.24万美元。
从宏观的维度来看,“限价”颠覆了学科类机构的商业模式。在商业模式画布的九个主要构造块中,以K12为主业务的培训机构关键业务、成本结构、渠道通路、收入来源几个因素在政策影响下,剧烈波动。
在K12业务方面,目前为止,学而思培优行动是大范围关闭线下教学点,同时逐步将小初阶段的学科类课程全部转至线上;新东方则选择舍弃东方优播K12小班业务,未来或在秋季课程结束后停止小学、初中学科业务的线下招生,各个城市逐步关闭教学点。
然而,他们仍未能回答一个关键性的问题,行业利润空间骤降,以后靠什么盈利?转型中的素质教育、职业教育等课程,仍处于市场检验阶段。从试错、教学交付反馈、再次打磨产品、寻找核心盈利点从而建立起新的商业模式还需很长时间,也难怪高途陈向东称其为第三次创业。
就目前而言,行业利润空间压低,大部分产品或将不复存在。没有了商业利润支撑,可能只有毛利相对较高、规模较大的产品还有生存的可能。
当产品属性特征消失,教培行业服务属性会不会进一步凸显?毛利率还算高的教育硬件产品还有多大的想象空间?
经济学家熊彼特曾提出“破坏性创新”的概念,把创新视为不断破坏“旧的”而创造出“新的”经济结构,从根本上颠覆旧有的制度和模式。
也许,教培行业等待的是一场破坏性创新革命,也许是新兴的技术或理念完成整个行业的重塑。
– END –
来自公众号:凹凸数据
大家好,我是小五🧐
今年年初的时候,我写了一篇:别再问我Python打包成exe了!(终极版),相信解决了不少小伙伴的Pyinstaller打包问题。
不过我最近遇到了一个问题,自己打包好的exe文件还在,但是Python源文件不知什么时候被误删了。现在想改动一下功能,重写Python脚本工程量也太大了,怎么办?
请看下文:
小小明,数据、Python爱好者。个人博客地址:https://blog.csdn.net/as604049322
以最近写Python一键自动整理归类文件为例进行演示,运行所需的代码和文件都会在文末提供给大家。
打包成单文件所使用的命令为:
pyinstaller -Fw --icon=h.ico auto_organize_gui.py --add-data="h.ico;/"
打包成文件夹所使用的命令为:
pyinstaller -w --icon=h.ico auto_organize_gui.py --add-data="h.ico;."
不管是哪种打包方式都会留下一个exe文件。
首先我们需要从exe文件中抽取出其中的pyc文件:
抽取pyinstaller打包的exe中的pyc文件,提取pyc文件有两种方法:
pyinstxtractor.py 脚本可以在github项目 python-exe-unpacker 中下载,地址:
https://github.com/countercept/Python-exe-unpacker
下载该项目后把其中的pyinstxtractor.py
脚本文件复制到与exe同级的目录。
然后进入exe所在目录的cmd执行:
Python pyinstxtractor.py auto_organize_gui.exe
执行后便得到exe文件名加上_extracted
后缀的文件夹:
对两种打包方式产生的exe提取出的文件结构稍有区别:
pyi-archive_viewer是PyInstaller自己提供的工具,它可以直接提取打包结果exe中的pyc文件。
详细介绍可参考官方文档:ttps://pyinstaller.readthedocs.io/en/stable/advanced-topics.html#using-pyi-archive-viewer
执行pyi-archive_viewer [filename]
即可查看 exe 内部的文件结构:
pyi-archive_viewer auto_organize.exe
操作命令:
U: go Up one level
O <name>: open embedded archive name
X <name>: extract name
Q: quit
然后可以提取出指定需要提取的文件:
要提取其他被导入的pyc文件,则需要先打开PYZ-00.pyz
:
很显然,使用PyInstaller的pyi-archive_viewer 工具操作起来比较麻烦,一次只能提取一个文件,遇到子模块还需执行一次打开操作。
所以后面我也只使用pyinstxtractor.py 脚本来提取pyc文件。
有很多对pyc文件进行解密的网站,例如:
不过我们直接使用 uncompyle6
库进行解码,使用pip可以直接安装:
pip install uncompyle6
uncompyle6可以反编译.pyc后缀结尾的文件,两种命令形式:
uncompyle6 xxx.pyc>xxx.py
uncompyle6 -o xxx.py xxx.pyc
以前面编码过程中生成的缓存为例进行演示:
uncompyle6 auto_organize.cpython-37.pyc>auto_organize.py
执行后便直接将.pyc文件反编译成Python脚本了:
从编译结果看注释也被保留了下来:
对于不是pyc后缀结尾的文件,使用uncompyle6反编译时会报出 must point to a Python source that can be compiled, or Python bytecode (.pyc, .pyo) 的错误。
所以我们需要先对提取出的内容人工修改后缀:
对于从pyinstaller提取出来的pyc文件并不能直接反编译,入口运行类共16字节的 magic
和 时间戳
被去掉了。
如果直接进行反编译,例如执行 uncompyle6 auto_organize_gui.exe_extracted/auto_organize_gui.pyc
会报出如下错误:ImportError: Unknown magic number 227 in auto_organize_gui.exe_extractedauto_organize_gui.pyc
使用支持16进制编辑的文本编辑器查看一探究竟,这里我使用UltraEdit32
:
分别打开正常情况下编译出的pyc和从pyinstaller提取出来的pyc文件进行对比:
可以看到前16个字节都被去掉了,其中前四个字节是magic
,这四个字节会随着系统和Python版本发生变化,必须一致。后四个字节包括时间戳和一些其他的信息,都可以随意填写。
我们先通过UltraEdit32
向pyinstaller提取的文件添加头信息:
选择开头插入16个字节后,只需要替换前4个字节为当前环境下的magic:
然后执行:
uncompyle6 auto_organize_gui.exe_extracted/auto_organize_gui.pyc>auto_organize_gui.py
执行后可以看到文件已经顺利的被反编译:
考虑再反编译导入的其他依赖文件:
先用UltraEdit32
打开查看一下:
可以看到对于非入口运行的pyc文件是从12字节开始缺4个字节。
这里我们选择第13个字节再插入四个字节即可:
然后再执行:
uncompyle6 auto_organize_gui.exe_extracted/PYZ-00.pyz_extracted/auto_organize.pyc > auto_organize.py
然后成功的反编译出依赖的文件:
代码与原文件几乎完全一致:
如果一个exe需要被反编译的Python脚本只有3个以内的文件,我们都完全可以人工来操作。
但是假如一个exe涉及几十个甚至上百个Python脚本需要反编译的时候,人工操作未免工作量过于巨大,我们考虑将以上过程用Python实现,从而达到批量反编译的效果。
import os
import sys
import pyinstxtractor
exe_file = r"D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe"
sys.argv = ['pyinstxtractor', exe_file]
pyinstxtractor.main()
# 恢复当前目录位置
os.chdir("..")
[*] Processing D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe
[*] Pyinstaller version: 2.1+
[*] Python version: 37
[*] Length of package: 9491710 bytes
[*] Found 984 files in CArchive
[*] Beginning extraction...please standby
[*] Found 157 files in PYZ archive
[*] Successfully extracted pyinstaller archive: D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe
You can now use a Python decompiler on the pyc files within the extracted directory
def find_main(pyc_dir):
for pyc_file in os.listdir(pyc_dir):
if not pyc_file.startswith("pyi-") and pyc_file.endswith("manifest"):
main_file = pyc_file.replace(".exe.manifest", "")
result = f"{pyc_dir}/{main_file}"
if os.path.exists(result):
return main_file
pyc_dir = os.path.basename(exe_file)+"_extracted"
main_file = find_main(pyc_dir)
main_file
读取从pyz目录抽取的pyc文件的前4个字节作基准:
pyz_dir = f"{pyc_dir}/PYZ-00.pyz_extracted"
for pyc_file in os.listdir(pyz_dir):
if pyc_file.endswith(".pyc"):
file = f"{pyz_dir}/{pyc_file}"
break
with open(file, "rb") as f:
head = f.read(4)
list(map(hex, head))
['0x42', '0xd', '0xd', '0xa']
校准入口类:
import shutil
if os.path.exists("pycfile_tmp"):
shutil.rmtree("pycfile_tmp")
os.mkdir("pycfile_tmp")
main_file_result = f"pycfile_tmp/{main_file}.pyc"
with open(f"{pyc_dir}/{main_file}", "rb") as read, open(main_file_result, "wb") as write:
write.write(head)
write.write(b""*12)
write.write(read.read())
校准子类:
pyz_dir = f"{pyc_dir}/PYZ-00.pyz_extracted"
for pyc_file in os.listdir(pyz_dir):
pyc_file_src = f"{pyz_dir}/{pyc_file}"
pyc_file_dest = f"pycfile_tmp/{pyc_file}"
print(pyc_file_src, pyc_file_dest)
with open(pyc_file_src, "rb") as read, open(pyc_file_dest, "wb") as write:
write.write(read.read(12))
write.write(b""*4)
write.write(read.read())
from uncompyle6.bin import uncompile
if not os.path.exists("py_result"):
os.mkdir("py_result")
for pyc_file in os.listdir("pycfile_tmp"):
sys.argv = ['uncompyle6', '-o',
f'py_result/{pyc_file[:-1]}', f'pycfile_tmp/{pyc_file}']
uncompile.main_bin()
完整代码下载见文末。
这样我们只需将Python脚本、exe文件和pyinstxtractor.py
脚本文件 放置到同一文件夹下,运行我们的Python脚本。即可反编译exe。
可以看到已经完美的反编译出exe其中的Python脚本:
好了,相信大家已经明白了反编译的原理。那么既然是攻防,如何防止自己打包的exe被反编译呢?
只需在打包命令后面加上--key
命令即可,例如文章开头的命令可以更换为:
pyinstaller -Fw --icon=h.ico auto_organize_gui.py --add-data="h.ico;/" --key 123456
123456
是你用来加密的密钥,可以随意更换。
该加密参数依赖tinyaes,可以通过以下命令安装:
pip install tinyaes
打包后再次执行反编译:
exe_file = r"D:/PycharmProjects/gui_project/dist/auto_organize_gui.exe"
uncompyle_exe(exe_file, True)
结果只有入口脚本反编译成功,被依赖的脚本均被加密,无法直接被反编译:
可以看到抽取的中间结果变成了.pyc.encrypted
格式,无法直接被反编译:
可以看到,常规手段就无法直接反编译了。
这个时候还想反编译就需要底层的逆向分析研究了,或者pyinstaller的源码完整研究一遍,了解其加密处理的机制,看看有没有破解的可能。
转自:https://mp.weixin.qq.com/s/GAYapTRX82cklHw9dT9vhg
2004年的媒体报道
类似的事件在历史上并不是第一次出现,而每一次煤价上涨,火电企业联名上书,都会掀起一轮涨电价的呼声。但电价怎么涨、涨多少、谁说了算,背后是一场长达20年的电力市场化改革。
遗憾的是,从公开披露的信息来看,即便是翻云覆雨的顶级大佬,在火电行业的投资也是全身而退的少,阴沟翻船的多。
席慕蓉说,青春是本仓促的书,流着泪一读再读。在A股,申万火电指数是一个充满误会的指数,无数投资者都吃过它的苦。
由于火电”市场煤、计划电”的机制,煤价随行就市,但电价长期被限死。这就导致行业长期处于盈利有上限,亏损无下限的特征。自1999年该指数发行以来,可以说是只有周期,没有成长,长期原地踏步。
07-08年、14-15年两轮过山车行情,参与的投资者大多数时候都摔得鼻青脸肿,大家可以参考下图。
哪怕是高手、高手、高高手,买火电股,想挣钱也不是那么容易。A股有两位著名的火电投资者:邓晓峰和裘国根,一位是高毅的明星基金经理,一位是重阳投资的创始人,均为业内公认的投资大师。
但他们对火电的投资,似乎也不是特别顺利。
邓晓峰屹立A股十余年,历经几轮牛熊,业绩始终稳定在市场前列。回顾邓晓峰过去的几次经典投资案例,基本都是买在不露锋芒的拐点处。这既是由大资金的规模属性所决定的,也是因为邓晓峰注重长期回报的投资风格。
在2015年和2017年的两次采访中,邓晓峰详细拆解了自己若干经典投资案例的具体逻辑,其中就包括了在2011年的火电布局。
从2011年开始,邓晓峰开始坚定地布局国电电力等火电股。他认为电力的需求没问题,但煤价太高吃掉了发电企业的利润。2011年国家开始执行紧缩政策,固定投资开始退潮,煤价迟早要跌。
既然煤煤价要跌,那么火电肯定有机会。邓晓峰进一步给出了三大逻辑:
1、发电企业效率都很高,因为长期煤价很高,电价受限,内部已经把各种挖潜的办法都用上了;
2、供需会改善,因为电力公司持续亏损,投资长期不振,而电力需求却是与日俱增的,在2010年之后还有钱去投电厂的,就只有神华了;
3、电力公司杠杆上的很满,又都跌得很惨,一旦行业回暖,全行业的回报率会恢复到非常好的水平。
因此邓晓峰认为“电力行业的春天正在到来,机会来临时要用盆接,不能用针顶。”
我们研究了邓晓峰当时的持股,发现其配置最多的火电股是国电电力。不过在我们尝试拆解国电电力这笔投资的具体盈亏时,却得到了不同的结论。
邓晓峰管理的博时主题行业和社保一零三组合从2011年三季度开始布局国电电力,在2014年一季度悉数离场。如果按当季平均成交价计算,邓晓峰动用了十亿级别的资金,但历时两年多,只赚了一千多万。
更让人感叹的是,在邓晓峰离场后,国电电力反而迎来了一轮翻倍暴涨(主要是受益2014-2015年的牛市),把大佬安排的明明白白。
事先声明:这种计算略显粗糙,邓晓峰离场彼时也有即将离职的影响。但事实就是,邓晓峰2011年对国电电力的这轮投资实际上没有赚到太多钱,属于典型的“逻辑性感,结果骨感”。
坚定的价值投资者裘国根也很热衷于买火电股,其投资哲学的精华可以归纳为三句话:不要亏损!不要亏损!不要亏损!重阳的这种投资风格天然地让他们对公用事业股更为关注,尤其是火电股。
重阳首席投资官陈心就在采访中拿火电举例:
在发达国家,这是一个有比较稳定增长和估值的行业。但在我们的市场里,则以两三年为一个周期,上下波动非常剧烈。好的时候把它捧上天,烂的时候,尤其在香港市场一些火电股便宜得一塌糊涂。但这个行业是不可以没有的,这个时候往往是买这类股票最好的时点。
裘老板和重阳显然对火电行业”市场煤、计划电”的特征也洞若观火。
自2018年2月开始,裘国根及重阳集团大手笔布局港股华能国际电力,连续12次增持,动用资金超过26亿人民币。然而华能国际电力此后三年的股价却走了一个深v,在今年股价大涨超过65%的情况下,重阳却依然没能赚到钱。
裘国根和邓晓峰都算是机构投资者中的佼佼者了,对周期行业的理解都属于业内顶级水平,但两家大佬都没捞到什么好处,可见火电行业实在是凄苦。
有意思的是,两位大佬都在水电股上赚过大钱。邓晓峰在国投电力单只股票上赚过20亿,裘老板就更不用说了,投资长江电力已成为A股传世经典,盛传重阳研究员转正的条件就是算清楚长江电力的现金流。
相比水电,火电最大的基本面就是其商业模式的缺陷:这始终是个成本、定价、产量都不由企业控制的行业。想要在火电股里火中取栗,不如想想那句名言:不要在没鱼的地方撒网。
一个产业现象问题的背后,往往是一个产业的结构问题,而不是所谓的阳谋、大棋论和推背图。
中国在电力领域有没有深谋远虑的布局?有的。但具体到拉闸限电,还是要回归产业本身的特点去分析,所谓“定价权争夺战”、“倒逼出口企业涨价”这种为了减肥做截肢的论调,的确是在牵强附会。
煤电博弈、资源周期、电价管制、火电的逆周期属性等行业特点,是导致历次电力供需周期的核心原因,包括这次。而外围的进口煤炭下降、外需增长、双限只是加速了这个周期的运转。
从另外一个角度看,在中国每一次的大型公共事件,往往都会成为改革的契机。
2003年电荒之前,国内普遍认为依靠三峡和滇黔的西电东输供应长三角与珠三角已经足够。但大范围供电紧张后,决策层意识到发电投资的不足,加快了发电项目的审批进度。
彼时,两大电网+五大发电集团的格局刚刚形成不久,做大规模意愿正强,一轮火电投资的高潮期就此到来,这保证了2003年之后的经济起飞,也顺便让一批煤老板成为全国人们羡慕的对象。
而2011年“淡季电荒”后,尚未被终止的煤电联动机制随即迎来大调整,能源结构转型被提上日程。而这一轮的拉闸限电,也必然会促使产业界与决策层,重新审视国内能源结构的方方面面。
我国目前的能源结构,其实处于一个“未立先破”的局面:即传统能源投资下降、新型能源投资加速的切换已经完成,但对应的能源供给的切换还没有完成。而一些地方“运动式”的减碳,又将这个切换过程中的缺陷暴露了出来。
今年3月的采访中,丁仲礼院士就曾谈到这一点:
未来人民的生活水平要进一步提高,对能源的需求必然会增加,虽然说2030年要碳达峰,但不意味着现在就不能新增任何煤炭项目。在经济社会发展的用能需求上,一定要实事求是,不应该为了追求某些指标好看,或者为了达标而去搞“一刀切”。
丁院士其实很明确的阐述了一个道理:在涉及到关乎亿万老百姓生活的领域,要警惕“一刀切”或者“运动式”的搞法。而在社会舆论经常渲染“大是大非”的当下,尤其要把人民群众的利益放在最前面。
实事求是,其实就是最重要的“大是大非”。
全文完。感谢您的耐心阅读。
[1] “煤电顶牛”历史重现,宁夏煤电博弈内情,界面新闻
[2] “煤电顶牛”矛盾再升级,中国能源报
[3] 11家煤电企业上书“哭穷”:无力完成北京地区电力交易,中国新闻周刊
[4] 专访丁仲礼:实现“碳中和”需以市场机制为基础,技术迭代为前提,中国新闻周刊
[5] “电荒”往事——兼议目前电力股投资机会,光大证券
[6] 行业风火轮:十年电荒,卷土重来,东吴证券
[7] 供给才是主导本轮“电荒”的原因,国泰君安
[8] 以史鉴今,火电王者归来,华创证券
[9] 火电行业研究框架:周期依旧在,尚待格局改,英大证券
[10] 当前时点我们如何看火电V:市场电:从哪里来,又去向何方,华泰证券
转自:https://mp.weixin.qq.com/s/nhht4zx_3we82xFRSKAoNg