健谈始于戊戌年
健谈始于戊戌年
暂无个人介绍
IP属地:未知
0关注
7粉丝
0主题
0勋章

好久不见

之前一直每个月选股,后来由于种种原因,耽误了1年。最近一周,美股又大涨。同时,美国债券市场开始反弹。这些都是市场对美联储停止加息预期的反应。今天说两个事情。第一个是我用Power BI 做了一个选股的工具。大概是长这个样子。最上边是选择大盘股或者中盘股,以及公司所在的国家。左上是板块,也可以选择。其他的就是数据展示了。有兴趣的读者可以留个言,你可能需要注册一个Power BI的账户。然后就可以使用了。这个是链接,大家可以试试看:US_stocks - Power BI或者试试这个:https://app.powerbi.com/groups/797dbaee-8672-4b26-a49f-e5f8f56ddb29/reports/cdd254f7-b18c-433e-b806-e98551c86742/ReportSectionbd2c2ae07e010226a033?experience=power-bi顺便说几句Power BI。它BI是微软Office里的一个新产品,只要有Word和Excel,应该就有Power BI。它可以从不同的数据源提取数据,最简单的例如Excel文件,或者csv文件。也可以从各种数据库读数据,例如MySQL, IBM Natezza。当然也可以从云上读数据,例如AWS RedShift, Snowflake之类的。我这里的数据是从Github上读的。另外就是Power BI还可以连接Python或者R这样的软件。由于Power BI画图的功能有限,外接Python或者R以后,就可以画出各种花里胡哨的图了。Power BI其实和Tableau差不多。但Power BI是微软Office里面的产品,所以在安装和价格方面具有巨大的优势。就说这么多吧。另外一件事是我们的大盘股选股走势喜人。从2020年11月底创建至今,涨幅达到53%。远超同期标普指数
好久不见

健谈2022年11月A股价值投资精选

1.大盘股 每个月的月末,我都按照下列价值投资的标准筛选股票: (1)公司市值>500亿人民币; (2)上市超过7年; (3)连续7年盈利; (4)有分红; (5)五年收益增长>33%; (6)市盈率<15; (7)市净率<1.5。 用这些标准选出的股票,基本上就是A股“打折”的大盘,基本不会有明星股。利用A股2022年9月30日的收盘数据,筛选出的公司如表1所示: 表1(按照PE从高到低排序) 数据来源:恒生聚源 本月,国际市场受加息影响和能源危机影响,市场表现悲观。彼得林奇说过,股票涨跌就像天气阴晴,是非常正常的。我们一定要把握好气候,热带、温带可以生机勃勃,寒带可能生存条件就恶劣一些。所以一定要研究好气候。 表1中一共包括14只股票,相对于2022年10月的组合没有特别大的变化。只是因为市场缩水幅度太大,中国化学和金地集团进入到中市值股票池。截至到10月31日收盘,中国化学目前股价下降12.82%,三季度业绩表现强势,总营收1206亿元,增长33.24%,归母净利润37.02亿元,同比增长28.35%。在疫情如此严重的情况下,中国化学力挽狂澜,已经连续保持4年的高速增长,业绩表现非常亮眼。 截至10月31日,所有股票的第三季度季报都已经出来了。目前组合里面上港集团、上海医药、宁波银行、招商银行的销售收入和净利润都有增长,万科A 和保利地产收入增长,净利润下降。其他如京东方、TCL科技、徐工机械、宝钢股份、海螺水泥等周期股,中国太保和中国平安保险股票收入和利润都有不同程度的下降。 图1是截至10月底本组合的走势。具体详见https://**.com/P/ZH2045319。 图1 2.中盘股 接下来说说健谈中盘价值。它是在其他条件不变的情况下,把市值改成200-500亿元人民币选出的股票。这样可以增加一些组合的波动。2022年10月选出的股票如表
健谈2022年11月A股价值投资精选

健谈2022年11月美股精选

1.美股大盘股组合 每个月,我都会按照下列价值投资的标准,在美股市场筛选股票: 1.公司市值>100亿美元; 2.上市时间>10年; 3.股息率(分红比率,Dividend Yield) >5% 4.净资产收益率(Return on Equity,简称ROE)>5%; 5.市盈率<15; 6.市净率<2。 根据2022年10月28日收盘的数据,选出以下5只股票,见表1。 表1 这些股票和上月选股基本相同,只是少了福特汽车。这里不在赘述。 但需要指出,这5只股票,有2只(PARA,ET)严重“破净”,2只(T, INTC)接近净值,只有VZ的股价可以说是高于净值一些。这个信息十分重要。 图1是本组合得走势表现。自从2020年11月底创建以来,在不到两年的时间里,本组和收益38%。2021年美股上涨,本组合同标普500指数走势相近。2022年,美股下跌。本组合表现显著由于标普500指数。这说明当股市下跌时,更多的投资者涌入大盘股避险,稳定了股价。 图1 该组合月度调仓,组合详情见:https://**.com/P/ZH2350680 2.美股中盘股组合 如果把公司市值大于100亿美元的条件改为公司市值大于20亿美元,那么就可以发现表2中的12家公司。 表2 从表2中我们可以看出,10家公司中的7家股价跌破净值。中盘股70%破净的比例要高于大盘股40%的破净比例。 图2是美股中盘股组合的收益率走势。自从2021年8月创建以来,亏损10%,略好于同期标普500指数-13%的收益。 图2 3.总结 之前我们写过“好股票便宜”(Good Stocks Cheap)的文章。现在看来真的是这样。拿英特尔来说,之前股价60多美元,现在不到30。如果英特尔未来在芯片领域再有突破,那股价必然会拉升。就算在芯片领域没有突破,用30块买来的股票也比60块买来的便宜
健谈2022年11月美股精选

健谈2022年10月A股价值投资精选

1.大盘股 每个月的月末,我都按照下列价值投资的标准筛选股票: (1)公司市值>500亿人民币; (2)上市超过8年; (3)连续8年盈利; (4)每年分红; (5)五年收益增长>33%; (6)市盈率<15; (7)市净率<1.5。 用这些标准选出的股票,基本上就是A股“打折”的大盘,基本不会有明星股。利用A股2022年10月14日的收盘数据,筛选出的公司如表1所示: 表1 数据来源:恒生聚源 表1 中的股票和以前相比,变化不大,基本上维持了金融和地产为主的基调。只有TCL和京东方两个电子企业入选有些特别。这两个股票相对于2021年的高点,已经腰斩。但是现在很多股票都已经腰斩,甚至更多。所以他们也没有什么特别之处。 图1 图1是截至9月底本组合的走势。从图中可以看出,本组合比较稳定。沪深300指数上涨的时候,它不怎么涨。沪深300指数下跌的时候,它也不怎么跌。可见,这个股票组合更像是一个债券组合,价格波动小,持续拿到股息。 本组合的详情参见https://**.com/P/ZH2045319 2.中盘股 接下来说说健谈中盘价值。它是在其他条件不变的情况下,把市值改成200-500亿元人民币选出的股票。这样可以增加一些组合的波动。2022年10月选出的股票如表2所示: 表2 数据来源:恒生聚源 相对于9月选股,中盘股组合变化已基本没有变化,明泰铝业调出组合,鲁西化工进入组合。鲁西化工成立于1998年,总部位于山东聊城,是一家经营化肥的企业。疫情期间,鲁西化工逆势增长。2021年,净资产收益率达到28.98,可以重点关注。因为在疫情期间不降发生的突出业绩,2022年,鲁西化工被评选为《财富》中国500强位列榜单380位,比去年上升119位。 图2是中盘股组合的走势。截止到本月底,走势完胜战胜沪深300指数。该组合的详情见https://**.com/P
健谈2022年10月A股价值投资精选

健谈2022年10月美股精选

1.美股大盘股组合 每个月,我都会按照下列价值投资的标准,在美股市场筛选股票: 1.公司市值>100亿美元; 2.上市时间>10年; 3.股息率(分红比率,Dividend Yield) >5% 4.净资产收益率(Return on Equity,简称ROE)>5%; 5.市盈率<15; 6.市净率<2。 根据2022年9月30日收盘的数据,选出以下10只股票,见表1。 表1 首先声明,这次我只选了美国公司的股票。由于最美股下跌比较大,越来越多的美国公司股票进入本股票池。至于一些外国公司的股票,如巴西的淡水河谷,英国的英美烟草,这次就不在列出了。 接下来,我们来看一下表1里列出的公司。第一个是0.5倍市净率,4倍市盈率的派拉蒙全球它就是大名鼎鼎的电影公司Paramount。它的总部就在纽约曼哈顿,距离时代广场不远。没想到这么有名的公司也会进入我们的选股池。看来电影、传媒行业最近问题比较严重。 2020年疫情刚刚爆发的时候,这个公司的股价跌倒了9美元,然后涨了10多倍,到达101美元。现在又跌了80%,股价不到20美元。看起来这公司的股价和它们的logo类似,101美元就是山顶了。 另外一个没想到的公司是英特尔(Intel)。这个名气更大,可谓家喻户晓。电脑的CPU不是赛扬,就是英特尔。时过境迁,没想到这么成功的企业股价也能从66美元跌到25。尽管如此,英特尔的市值还是超过1000亿美元。 在2000年IT泡沫破灭的时候,英特尔也有类似的表现。尽管那时股价也层暴跌,但后来还是走出了危机。目前,英特尔市净率接近1,不到6倍市盈率,估值不高 需要之处,英特尔是道琼斯指数的成分股。道琼斯指数只有30只成分股,能进入我们的选股池非常罕见。 无独有偶,还有另一只道琼斯指数成分股入选:威瑞森通信(Verizon)。这家公司目前市值1600亿美元,1.8
健谈2022年10月美股精选

Good Stock Cheap: 总结和点评之二

上次在公众号文章里谈到Good Stock Cheap 的七种选股思路,我在这里继续介绍一下。 3. 重组 重组是公司中的变革事件,它可能是一次收购、资本结构的重大变化,或是出售公司的某家重要分公司。在现实的股票买卖中,这些事儿确实经常成为大家蜂拥而至买股票的一个好的理由。 就像多年前,中国北车和中国南车的合并,很多人以二级市场参与者参与了这个并购交易,但是对于企业经营者和散户来说,在并购过程中了解的信息也是不对等的。结果绝大多数参与这场交易的二级市场散户并没有获得利润,反而把本给套牢。只有少数人真正在这场交易中获利。那么我们如何成为少数可以获利的投资者呢? 首先你是不是真正对投资标的熟悉,真正对重组的双方熟悉。 2.对于本次交易,作为投资人你有什么期待,赚钱,赚多少;你是否也想参与进行做项目,并购其实也意味着很多商业机会。 3.交易在过程中会遇到什么障碍。 之后基于这3点,我们就开始研究投资策略,包括投多少钱,分成几期投,风险如何应对。 拿最近皖维高新的并购案件举例,集团公司对皖维吉吉胜的收购持续了一年多,是财通证券帮他们做的。根据证监会的要求,上市公司在并购的时候需要披露很多信息:本身的经营情况、投资标的经营情况、交易构架、财务报告、法务报告、证监会的报告等。其实弄明白这些信息已经需要很多时间了。同时,我们也可以多看看券商的研究报告,他们对这个案子的一些观点,看多或者看空,风险等。研究员们都是这个行业的行家里手,看看他们的分析数据和观点也是非常重要的。还有就是做调研,如果能在股东大会,调研者会议等场合和管理层多沟通沟通,听听他们的想法,那就再好不过了。 综上所述,面对重组的消息,有些投资者望风而动,认为股价一定会涨,然后不由分说买下;有些投资者害怕风险,觉得并购风险太大,就听之任之,错过了机会,这都是不可取的。基本面的了解、宏观政策的解读、公司经营状况的发展才是投资的王
Good Stock Cheap: 总结和点评之二

健谈2022年8月A股价值投资精选

1.大盘股 每个月的月末,我都按照下列价值投资的标准筛选股票: (1)公司市值>500亿人民币; (2)上市超过7年; (3)连续7年盈利; (4)有分红; (5)五年收益增长>33%; (6)市盈率<15; (7)市净率<1.5。 用这些标准选出的股票,基本上就是A股“打折”的大盘,基本不会有明星股。利用A股2022年7月30日的收盘数据,筛选出的公司如表1所示: 表1 (按照PE从高到低排序) 数据来源:恒生聚源 表1 中一共包括13只股票,相对于2022年7月的组合,8月增加了TCL科技。该公司股价在5月和6月上涨,7月下跌。因此再次进入组合。 图1 图1是截至7月底本组合的走势。由于本组合选取了大盘股,所以走势相对于沪深300指数更加稳定。虽然牛市不怎么涨,但是熊市也不怎么跌。详情参见https://**.com/P/ZH2045319。 2.中盘股 接下来说说健谈中盘价值。它是在其他条件不变的情况下,把市值改成200-500亿元人民币选出的股票。这样可以增加一些组合的波动。2022年6月选出的股票如表2所示: 表2(按照PE从高到低排序) 数据来源:恒生聚源 相对于7月选股,中盘股组合变化已基本没有变化,明泰铝业走出组合,鲁西化工进入组合。 鲁西化工成立于1998年,总部位于山东聊城,是一家经营化肥的企业。疫情期间,鲁西化工逆势增长。2021年,净资产收益率达到28.98,可以重点关注。因为在疫情期间不降发生的突出业绩,2022年,鲁西化工被评选为《财富》中国500强位列榜单380位,比去年上升119位。 图2 图2是中盘股组合的走势。截止到本月底,中盘股走势继续完胜战胜沪深300指数。该组合的详情见https://**.com/P/ZH2401261 3.小盘股 最后来说一下小盘股。这里的小盘股是指公司市值在100亿到200亿之
健谈2022年8月A股价值投资精选

健谈2022年8月美股精选

1.美股大盘股组合 每个月,我都会按照下列价值投资的标准,在美股市场筛选股票: 1.公司市值>100亿美元; 2.上市时间>10年; 3.股息率(分红比率,Dividend Yield) >5% 4.净资产收益率(Return on Equity,简称ROE)>5%; 5.市盈率<15; 6.市净率<2。 根据2022年7月29日收盘的数据,选出以下10只股票,见表1。 表1 这10只股票分布在金融、能源、原材料等行业,基本上都是国际著名的大公司。美国电报电话和力拓的市值超过1000亿美元,而陆梦科技和联合电子的市值不到200亿美元。其中,淡水河谷的市盈率不到3倍,力拓和巴西石油的市盈率也不到5倍。它们看起来都是不错的投资机会。 图1是美股大盘股组合的收益率走势。自从2020年底创建以来,获得了40%的收益,战胜了标普500指数。 图1 该组合月度调仓,组合详情见:https://**.com/P/ZH2350680 2.美股中盘股组合 如果把公司市值大于100亿美元的条件改为公司市值大于20亿美元,那么就可以发现表2中的10家公司。 表2 美国鹰(American Eagle)和富乐客(Foot Locker)属于轻工业。它们生产服装和运动鞋等产品。在过去的一年里,它们的股价下跌惊人。美国鹰从37跌到了12,下跌了60%。富乐客相对好点,从63跌到了28,基本腰斩。其实别的服装企业也比较惨,安德玛(Under Armour)的股价从27跌倒了9块。露露柠檬(代码LuLu)从485跌到了310. 可见,随着疫情的延申,通胀的升高,美国消费者购买能力下降,导致股价的下跌。当然,这也和美股大环境有关。如果标普500指数下跌20%,那很多中小企业的股价就会腰斩或者更多。 3.美股市场整体情况 表3是美股3大指数的市盈率。道琼斯的市盈率最低,目前
健谈2022年8月美股精选

面向对象的Python:堆栈的创建和应用

今天继续讲堆栈。 在之前过程化的方法创建堆栈中,我们定义了两个函数:push()和pop()。如何在面向对象的方法中,创建和使用它们呢? 在Python中,可以在类的内部创建这两个函数。创建的方法和前文中的构造器类似。当然,在创建它们之后,我们自己还有其他人需要调用这两个函数。(这一点和前文中介绍过隐藏在类中的列表不同。不是所有人都能访问隐藏在类中的列表。) 我们知道,类的私有(private)部分要用两个下划线开头。而对于公共(public)部分,则不使用两个下划线。事实上,Python对公共部分的规定是最多只能有一个下划线,没有下划线也可以。我们来看下面的程序。 class my_stack2: def __init__(self): self.__stack2_list = [] def push(self, val): self.__stack2_list.append(val) def pop(self): val = self.__stack2_list[-1] del self.__stack2_list[-1] return val stack2_object = my_stack2() stack2_object.push(3) stack2_object.push(2) stack2_object.push(1) print(stack2_object.pop()) print(stack2_object.pop()) print(stack2_object.pop()) 在my_stack2类之中,首先是构造器。接下来就是push()和pop()这两函数,它们都增加了self这个参数,而且放在第一个的位置上。  不知道这段程序大家看起来是不是似曾相识?为了说明问题并且方便对比,我们再看一次前文中过程化程序定义和使用堆栈的程序: my_
面向对象的Python:堆栈的创建和应用

面向对象的Python:封装(Encapsulation)

今天继续来谈如何用面向对象的程序设计创建堆栈。在前文中,我们已经介绍了构造器。 我们知道,构造器里面有一个self参数。任何对self参数的修改都会影响新创建的对象。这就是说我们可以给对象添加任意的属性(Property),而且只要对象还存在,这个属性就也会存在,除非手动删除该属性。 接下来,我们给前文的构造器增加一个属性:增加用于存储堆栈的列表stack2_list。请看下面的程序: class my_stack2: def __init__(self): self.stack2_list = [] stack2_object = my_stack2() print(len(stack2_object.stack2_list)) 对于这段程序,有几点需要说明:  首先,要注意self后面的那个点(self.)。这是Python用来调用对象属性的习俗。也就是说,先写对象的名字(self),加上一个点,然后在加上属性的名字(stack2_list)。 其次,如果在构造器内第一次给属性赋值,即使是空值,那么也创建了该属性。然后,对象就可以使用这个属性。 最后,我们不但创建了堆栈,还创建了stack2_object这个对象,并且利用print()和len()函数检查堆栈的长度。 这段程序的输出结果为: 0 但是,这并不是我们想要的堆栈!因为我们希望隐藏堆栈,不希望所有人都能看到。那怎么办呢?  简单地讲,这个问题的解决办法就在stack2_list前面加上两个下划线,变成__stack2_list。这样就可以了。来看下面的程序。 class my_stack2: def __init__(self): self.__stack2_list = [] stack2_object = my_stack2() print(len(stack2_object.
面向对象的Python:封装(Encapsulation)

面向对象的Python:构造器(Constructor)

前文中我们介绍了什么是堆栈,如何用过程化的程序创建堆栈及其不足之处。为了弥补这些不足,我们可以用面向对象的方式改进堆栈创建的方式。不论用什么方法,我们的目的都是要创建堆栈,并且用列表存储堆栈。当然,不是说一定要用列表存储堆栈,只是本文中使用列表存储堆栈。 下面,我们就用最基础的面向对象的方法开始,介绍如何创建堆栈。 首先,创建名叫my_stack2的类。 class my_stack2: 我们希望这个类有两个功能:  首先,这个类能够存储堆栈。也就是说,我们需要把列表存储在这个类之中。 其次,我们不希望所有人都能看到这个列表,所以要隐藏该列表。 那么,如何实现这两个目标呢?与其他语言不同的是,Python无法定义一个参数存储堆栈,而是需要通过特殊的语句手动实现。这个听起来有点复杂,如何实现呢? 简单地讲,我们可以通过类之中的特殊函数实现上面的两个目标。这个函数有两个特点: 命名又特殊之处 当创建新的对象时,该函数被隐含地调用 这个函数就是构造器(Constructor)。顾名思义,构造器就是用来构造新的对象。构造器包含了对象的结构,必须在初始化的时候运行。下面,就把构造器加入类中: class my_stack2: def __init__(self): print("健谈始于戊戌年(2018)") stack2_object = my_stack2() 这里有几点需要说明:  构造器的名字一定叫__init__ 构造器至少有一个参数。这个参数用来表示新创建的对象。我们可以通过这个参数控制对象,给对象添加新的属性。 参数约定俗成的名字叫self。虽然这只是Python中的一个习惯,而且不遵守这个习惯并不是错误,但是为了程序的可读性,建议遵守这个习惯。 运行上面的程序,输出结果为: 健谈始于戊戌年(2018) 注意:在运行程序时,我们调用了构造器。但是并
面向对象的Python:构造器(Constructor)

美联储鲍威尔:通胀不降,加不息止

近日,鲍威尔在和有关媒体连线时强调,美联储将坚持加息直到美国的物价回到合理的标准。 他在现场采访中表示,即使加息超过了市场理解的利率中性水平,美联储还是会将毫不犹豫地加息。而且,如果美联储没有感觉到金融状况处于适当的位置,还会一直加息。当然,现在美国的通货膨胀水平有所下降。 由于美国的通货膨胀已经创出40年来的最高水平,所以在5月早些时候,美联储将基准利率提升了0.5个百分点。这是美联储2022年第2次提升基准利率。 鲍威尔还表示,在这次加息后,只要经济状况保持与现在类似,美联储随后的会议的决定很可能会出现类似的50个基点的变动。 在采访中,他不但重复了美联储2%通货膨胀目标,而且还表示实现这一目标非常不容易,可能需要以3.6%的失业率为代价。而这个失业率将会略高于二十世纪六十年代末的最低水平。 鲍威尔认为,失业率的微升,不会对美国劳动力市场产生太大的影响,就业市场依然强劲。美联储希望的低通胀,高就业的“软着陆”。鲍威尔说有很多可行的途径可以实现美国经济的“软着陆”。美联储的工作就是要努力实现这一点。 美国经济在2022年第一季度实现了1.4%的增长,主要是由于持续的供给侧限制、新冠病毒的传播和乌克兰战争。 然而,紧缩的货币政策加重了对于更严重的经济下行和华尔街大规模抛售的担心。除了加息75个基点外,美联储还暂停了月度美债购买计划(也称量化宽松),并从下个月开始剥离部分已收购的9万亿美元的资产。鲍威尔希望美联储可以不伤害的经济的条件下实现平抑物价的目标。 尽管恢复价格的稳定可能会带来一些痛苦,但是美联储希望能保持劳动力市场强劲,以及低失业率和高工资。
美联储鲍威尔:通胀不降,加不息止

面向对象的Python:第一个类和第一个对象

面向对象的程序设计是一门关于定义和扩展各种类的艺术。类不但能将各种现实抽象为模型,还可以反映出现实世界中的属性和特征。但是,最开始定义的类(比方说动物)往往过于宽泛,也不具体,不能表达很多具体情况。所以,我们还要定义新的子类(哺乳动物、爬行动物等),通过它们表达出更加具体的情况。由于子类继承了父类的全部特征,因此我们对于父类所做的工作并没有白费。 通常,在定义新类时,为了让它适用于新的应用场景,我们会增加其属性和行为。而这个定义的新类又可以作为父类,定义其他的子类。这个过程可以一直延续下去。 需要说明,我们定义的类和对象之间并没有关系:类的存在并不意味着产生了与之相应的对象。类并不能产生对象。我们必须自己创建对象。显然,我们可以通过Python实现这个目标。接下来,就让我们定义一个Python中最简单的类和对象。来看下面的例子。 class The1stClass: pass 这就是我们创建的第一个类。这个类非常简单,没有属性,没有行为。虽然它实际上是一个空类,但已经满足我们目前的需要。类越是简单,越能够帮我们说明问题。 我们来解释这个类。首先,定义类用关键词class开头。接下来是类的名字。我们这个类叫The1stClass。要记住,这个是类的名字,不是对象的名字。它们是两件事。第三个部分是冒号(:)。类和函数一样,需要缩进。之后的内容就应该是类的属性和行为。我们通过pass表明本类没有属性和行为。这样简单,能说明问题就行。 接下来,我们来创建Python中的第一个对象。我们用上文创建的The1stClass类作为工具,创建新对象。要实现这个目标,我们需要一个变量来存储类创建的对象,同时也在创建对象。通过下面的代码创建对象: my_1st_object = The1stClass() 这里有两点需要解释: 类的名字看起来像函数名字。这个我们后面还会解释。 类里面有什么,新
面向对象的Python:第一个类和第一个对象

面向对象的Python:何为对象?

在面向对象的程序设计中,类是一系列的对象,对象属于某一个类。对象是某一个类具体特征的化身。这个听起来简单。下面,我们还要具体介绍一下。 如前文所述,类分层级。这句话有两层含义。一方面,它表明某一个类对应的对象也同时属于超级类(或者父类)。另一方面,某一个属于父类的对象,却不属于子类。 例如,私家车属于轮式交通工具。而轮式交通工具却不一定是私家车。它也可能是卡车或者自行车。同样,宠物猫属于家养哺乳动物类。这就意味着宠物猫也属于动物。可见,每一个子类比父类更具体。或者反过来说,每一个父类比子类更宽泛。 这里有一点需要说明:我们目前的假设是某一个类只有一个父类。其实,某一个类可以有不止一个父类。我们在后面还会对此进行解释。 我们要重点介绍一下面向对象程序设计中的一个重要概念:继承。任何对象都属于某一个级别的类,并且从其父类中继承相关特征。对象所属的类可以定义新的特征。它的子类又会继承这些特征。这个规则对于交通工具的分类,动物的分类,以及我们面向对象程序设计的类都是相同的。 在面向对象程序设计中,每个对象都包括下面三个特征: 名称(Name):每个对象都要有一个名字。而且在其命名空间(namespace)内,这个名字要唯一。这和我们对人的称呼类似。假如你的同事中有一个人姓王,尽管他年轻,你也可以叫他老王。但是如果有两个人姓王,那就不能都叫老王了。解决办法是一个叫老王,一个叫小王。这就是所谓明明要唯一。 属性(Property):每个对象有一系列的特征。这些特征使其有别于其他对象。 行为(Activity):每个对象都会有一些行为。例如改变对象本身,或者改变别的对象。 这样讲可能还是比较抽象。有一个小窍门可以用来识别这三个特征。通过观察词的类别,可以判断对象的特征。一般来说, 如果是名词,那么就是对象的名称 如果是形容词,那么就是对象的属性 如果是动词,那么就是对象的行为 举例来说,
面向对象的Python:何为对象?

面向对象的Python:类的继承

Class这个英语单词的含义很多,可以是班级、阶级等等。不过在面向对象的程序设计中,这个单词的意思是种类,也就是我们说的类。接下来,我们会通过几个例子来说明类的含义。 首先,我们想一下交通工具。貌似交通工具有一个共同的特征:可以运动。但是,猫和狗也会动。看起来我们对交通工具的定义还不够具体,需要改进。我们再来定义一次:交通工具是人工发明的运输设备,通过人驾驶,在物理作用下能够运动。 如果这么说的话,那么猫和狗就交通工具了。但是如此定义交通工具过于宽泛,我们还需要具体一些。用面向对象程序设计的语言来说,就是要定义子类(Subclass)。同子类对应的就有父类,也叫做超级类(Superclass)。 和人类的遗传一样,子类可以继承父类的特征。父类和子类之间的结构有点像金字塔,父类处在顶端,子类处在下面。 再回到我们交通工具的例子。现在我们已经可以说出一个交通工具父类下面的子类了。比方说 陆地交通工具 水中交通工具 空中交通工具 太空交通工具 我们还可以进一步给陆地交通工具定义子类。例如 轮式交通工具 履带交通工具 气垫交通工具 当然,对于水中交通工具、空中交通工具、太空交通工具,也可以定义子类。这个读者可以自己思考一下。 我们再来看一个生物分类的例子。父类是动物,子类可以包括 哺乳动物 爬行动物 鸟类 鱼类 两栖动物 同样,我们继续定义哺乳动物的子类。这就包括野生哺乳动物和家养哺乳动物。如果你还记得中学里学到的生物知识,就可以定义爬行动物、鸟类、鱼类和两栖动物的子类。
面向对象的Python:类的继承

面向对象的Python:过程化 vs 面向对象的程序设计

在过程化程序设计中,我们可以把程序分为两个部分:数据部分和代码部分。其中,数据部分包括各种各样的变量。而代码部分则包括各种函数和模块。 我们知道,函数可以使用数据。比方说对数据取对数,或开平方。但是反过来,数据却不一定能使用函数。而且,函数甚至可以滥用数据。例如,我们可以求身份证号码的平方。虽然这么做本身没有意义,但是合法。 我们再来说数据使用函数的情况。数据是否永远不能使用函数呢?有没有什么特殊情况,能够让数据使用函数呢?答案是肯定的。这就是我们要介绍的方法(Method)。数据可以通过方法调用函数。如果你了解到这一点,那就朝面向对象的程序设计走出了第一步! 注意:面向对象的程序设计和过程化程序设计的思路完全不同。在面向对象的程序设计中,数据和代码并不是分成两个部分,而是被合并成了一个整体,成为各种类(Classes)。每一种类可以根据需要,生成各种对象。这就是面向对象的含义。然后,我们会利用对象解决各种问题。 每个对象有一系列特征。这就是属性(Properties 或者 Attributes)。各种对象还可以进行一系列活动。这就是前文讲到的方法。 如果现有的类不能满足需求,我们可以根据需要在旧的类基础上产生新的类。而新的类会继承旧的类之中的属性和方法。当然,新的类中通常还会增加一些功能。 对象是类表达含义的化身!这就好比大楼是图纸的化身。图纸上的各种想法,都会在大楼中体现出来。对象之间互相作用,交换数据或者使用方法。一个科学设计的类(或者说对象)能够保护敏感数据,防止非法访问。 在面向对象的程序设计中,数据和代码没有明显的区别:它们都是对象。这些概念其实并不抽象,而是源于实际工作。因此,它们在程序设计中十分重要。牢记,并非我们创造了这些虚拟的概念,而是这些概念反应了事实,关系以及各种情景。 不仅艺术源于生活,而高于生活。程序设计也是源于生活,而高于生活。
面向对象的Python:过程化 vs 面向对象的程序设计

健谈2022年5月美股价值投资精选

大盘股(Rego_LargeCap) 每个月,我按照下列价值投资的标准在美股市场筛选股票: · 公司市值 > 100亿美元; · 上市时间 > 10年; · 股息率(分红比率,Dividend Yield) > 5% · 净资产收益率(Return on Equity)> 5%; · 市盈率(PE) < 15倍; · 市净率(PB) < 2倍。  利用2022年5月7日收盘数据,选出的股票如表1所示。 表1 注:本表按照市盈率高低来排序 和3月相比,由于美股下跌,所以有更多的公司进入了我们的股票池。其中来自油气行业有5家公司、银行业有5家公司、通信行业有3家公司。 需要指出,原油价格在3月初创出新高,然后有所回落。虽然有5家油气公司入选,但是只有1家是美国的公司(能源转换),其余公司分别在欧洲和南美洲。这也就是说明,大部分美国的油气公司,包括巴菲特买的西方石油(代码OXY),价格并不便宜。虽然我们不知道巴老什么时间,什么价格买入西方石油,但是他应该是赚钱了。 最近三个月,我们的大盘股组合收益率战胜了标普500指数。 组合详情见: https://**.com/P/ZH2350680 2.中盘股(Rego_MidCap) 如果把公司市值超过100亿美元的条件修改一下,变成市值介于20-100亿美元之间,那么就可以选出表2中的15家公司。  表2 注:本表按照市盈率高低来排序 这里面的美国公司包括了我们熟悉的主街资本和纽约社区银行,也新增了著名的鞋店富乐克(FL)。这是一家总部位于纽约市的运动鞋零售商。这家公司第一次进入我们的股票池。 另外,这次入选的巴西公司也比较多,不仅有钢铁行业,还有公共事业公司。看来巴西入选“金砖五国”也是名不
健谈2022年5月美股价值投资精选

面向对象的Python: OOP基础

从本文开始,我将向大家介绍面向对象(Object-Oriented)的Python程序设计。我会首先介绍面向对象的程序设计(Object-Oriented Programming,即OOP),及其和过程化程序(Procedural Style Programming)的区别,然后还会介绍类(Class),对象(Object),属性(Property)和方法(Method),以及继承(Inheritance)和多态性(Polymorphism)等OOP中的概念。 好了,下面就让我们从OOP的基础开始讲起吧。 1. OOP基础 我们先来介绍一些OOP的基础知识。需要说明,这些OOP的基础知识不仅在Python语言中使用,而且在其他的语言如JAVA, C#中也都类似。我们这里将会以Python语言为案例进行说明。 通常,当我们开始学习编程的时候,首先接触到的都是过程化程序。古老而经典的程序设计语言如C, FORTRAN都是过程化程序。在过去的几十年里,过程化程序曾经是软件开发的主流。即使在现在,它也依旧被广泛应用,而且将来也不会消失。过程化程序适用于某些不是特别大,不是特别复杂,但却有很多特例的项目。 OOP就相对年轻了。它主要适用于特别大,特别复杂,需要很多程序员共同开发的项目。当我们把一个大型开发项目,分成小且独立的组成部分,就可以使得项目容易实现。 过程化程序设计就好像自己在家做饭,需要一个菜一个菜的准备,甚至吃完了以后收拾餐桌和洗碗都要一个人完成。这样的方法对于一个人,或者一个三口之家是完全可行的。而OOP类似于食堂或者大餐厅的方法,有人负责洗菜,有人负责切菜,有人负责凉菜,有人负责炒菜,还有人负责做汤和主食(这些都是对象)。当客人来的时候,可以同时做几十桌的饭菜。 具体到Python而言,它既是过程化程序,也可以作为OOP。而且Python在这两个方面都有不多
面向对象的Python: OOP基础

健谈2022年5月A股价值投资精选

1.大盘股 每个月的月末,我都按照下列价值投资的标准筛选股票: (1)公司市值>500亿人民币; (2)上市超过7年; (3)连续7年盈利; (4)有分红; (5)五年收益增长>33%; (6)市盈率<15; (7)市净率<1.5。 用这些标准选出的股票,基本上就是A股“打折”的大盘,基本不会有明星股。利用A股2022年4月30日的收盘数据,筛选出的公司如表1所示: 表1 数据来源:恒生聚源 表1 中一共包括20只股票,因为这段时间大盘在各个领域都调整得厉害,较4月相比,除了房地产和银行、汽车和钢铁股票,多了几只非银金融入选。相对于2022年4月的组合,减少了上港集团。众所周知,现在海运、港口、码头生意都挺好,于是上港集团也在这个组合兜兜转转多次。 图1是截至4月底本组合的走势。不难看出,本组合属于防御型组合。当沪深300指数上涨时,本组合表现不佳。但是当沪深300指数下跌时,本组合反而抗跌。本组合的详情参见https://**.com/P/ZH2045319 图1 2.中盘股 接下来说说健谈中盘价值。它是在其他条件不变的情况下,把市值改成200-500亿元人民币选出的股票。这样可以增加一些组合的波动。 2022年5月选出的股票如表2所示: 表2 数据来源:恒生聚源 相对于4月选股,中盘股组合中增加了晨鸣纸业、葛洲坝、三友化工、均胜电子、辽宁成大。其中,晨鸣纸业是目前中国最大的纸制品生产商。三友化工也是医药中间体的佼佼者。均胜电子是一家全球化的汽车零部件顶级供应商,主要经营智能驾驶系统、汽车安全系统、动力集成和功能键总成的研发与制造。辽宁成大在1995年成立以来,发展迅速,主要从事医药医疗、国内外贸易、金融投资和能源开发业务等。 图2是中盘股组合的走势。最近虽有回撤,但是依旧战胜沪深300指数。该组合的详情见https://**.com/P/ZH24
健谈2022年5月A股价值投资精选

健谈2022年1月美股价值投资精选

1.大盘股(Rego_Park_Value) 每个月,我按照下列价值投资的标准在美股市场筛选股票: 公司市值 > 100亿美元; 上市时间 > 10年; 股息率(分红比率,Dividend Yield) > 5% 净资产收益率(Return on Equity,简称ROE)> 5%; 市盈率 < 15; 市净率 < 2。 利用2022年1月7日收盘数据,选出的股票如表1所示。  表1 需要指出,表1中美国的公司只有能源转换(ET)一家。其余公司分别在欧洲、南美洲和亚洲。随着标普500指数不断创新高,美国公司的股票也跟着水涨船高。所以只能看看别的国家的股票了。 有趣的是,美股市场除了中概股,还有日概股,韩概股,巴概股,英概股等等。它们犹如超市中琳琅满目的商品,良莠不齐,增加了投资者选股的难度。组合详情见:https://**.com/P/ZH2350680 2.中盘股(Rego_Park_MidCap) 如果把公司市值超过100亿美元的条件修改一下,变成市值介于20-100亿美元之间,那么就可以选出表2中的5家公司。 表2 这5家公司和上个月选出的公司相同。同样,“物美价廉”的美国公司已经不多了,只能放眼全球了。组合详情见:https://**.com/P/ZH2902902 3.业绩比较 买什么股票只是手段,关键还要看结果。从表3的收益率上看,大盘组合和中盘组合的收益率都和标普500指数接近。 表3 数据来源:雪球 其中,大盘组合从2020年11月30日至2022年1月7日,总收益26.89%。同期标普500指数收益率为29.07%。中盘组合创建于2021年8月,其全部收益为9.68%,略微高于标普500指数收益率。 不过,根据雪球的统计,标普500指数最近3个月的收益率对于两个
健谈2022年1月美股价值投资精选

去老虎APP查看更多动态