据说在华尔街有句名言: “Don’t catch a falling knife.”,意思是不要去接下跌中的飞刀,也就是不买下跌中的股票。下跌趋势中的股票有多惨烈,有一路向南到退市的,如乐视网2015年最高170.03,到2020退市。也有最近的中国平安例子,因为2021年的市场从指数上来看,不是熊市吧,但是中国平安从年内高点,下跌接近腰斩。类似中国平安的例子有很多,如格力电器, 三一重工等等, 多是去年大涨的各种“茅”。

ps: 中国平安的走势图已经作为个人的电脑桌面了
或许,从行业逻辑和基本面角度去审视某家公司,觉得低估了,进场抄底,但其实不知道底到底在哪儿。高毅资产创始人邱国鹭先生在他的著作《投资中最简单的事》中谈到他的一次经历:
我以前有个合伙人是有着30年从业经验的价值投资者。有一次我问他,1979年美国市场市盈率只有7倍,商业周刊封面文章宣告股市已死时,价值投资者们都跑哪儿去了呢?他笑着说,那时他们正忙着给客户解释为什么净值缩水了30%,因为他们在9倍市盈率时就早已满仓了。
《投资中最简单的事》
经典的投资书籍《证券分析》扉页题词引用了一句诗:
现在已然衰朽者,将来可能重放异彩 现在倍受青睐者,将来却可能日渐衰朽
贺拉斯《诗艺》

2021年大跌的中国平安, 格力电器, 三一重工, 恒瑞医药,万科等等,固然这些公司有这样那样的问题,经历了50%, 40%的回调,不好的那部分已经price in了吧,当然如中公教育,豆神教育这样因政策陷入困境的则要另外分析。这些经历大幅回调后的好公司,估值已经很低,没有重放异彩的那天? 应该不会吧。
雪球大v小小辛巴在他的著作《百箭穿杨》谈到一个抄底方法: 五档买入。如图:

来源: 《百箭穿杨》. P64
小小辛巴也总结了这个方法的一些特征,我自己理解认为有至关重要的两点:
- 精选股票池。小小辛巴说这个五档买入的交易对象局限在好行业的困境龙头好股。
- 大回调(或称为大跌)。按小小辛巴的话就是:
- 用严格甚至有点极端的低价作为真正建仓起点。
但是这个实操起来好像不是那么回事,很多主观性,毕竟时间也是成本。
改进: 好公司,大回调, 走趋势
最近一段时间,我发现自己持仓里面有部分盈利的股票好像呈现一种模式, 简单的总结就是: 好公司,大回调, 走趋势。
想了想,这也是挺符合逻辑的,好公司在高估值,市场风格等很多因素的主导下,进入下跌通道,可能跌个60%以上, 再慢慢磨底,然后超跌反弹(或许是主升浪)。根据这个思路,构建一个抄底抢反弹(或许是主升浪)的策略:
- 好公司: 以中证500和沪深300作股票池。
- 大回调: 250个交易日低点相对高点下降了40%以上。
- 走趋势: 使用30天动量算法计算,排除动量小于10的,且股价必须站上20日线。然后按动量降序。
- 买入卖出: 分析选出的股票的基本面,根据基本面再做进一步分析。当然,觉得图形漂亮,可以先上车再研究。如果一买入就调头向下该如何处理? 首先, Losers average losers;其次,如果基本面也支持,毕竟前面也跌了40%以上,那就启动五档买入, 挡位要足够大。
- 大盘在年线下则不进行买入操作。
Note: 走趋势是一个很模糊的概念。小小辛巴在《百箭穿杨》中也提到:
很多时候,股票虽然掉头向右侧拐,但要确认底部的话,往往要拐离前期底部20%以上,因为确认要有一定趋势,并且要有一定形态。
《股票魔法师》中谈到一个趋势模板, 其中规则之一就是:
因股价上涨突破前期底部,现价格应在50日均线之上。
找出250个交易日下跌40%以上的股票是非常容易,不过我发现即使这么看上去这么简单,有个实现细节挺有意思的,记录下目前使用的方式:
def get_fall_stock(code):
conn = pymysql.connect(user='***', password='*****', database='letprofitrun', charset='utf8')
cursor = conn.cursor()
query = (f'with layer_0 as(select code, trade_date, close_price, high, low, open as open_price FROM price where code = "{code}" '\
+ 'order by trade_date desc limit 250) select * FROM layer_0 order by trade_date asc')
cursor.execute(query)
result = cursor.fetchall()
close_price_history = []
high_price_history = []
low_price_history = []
open_price_history = []
atr = []
trade_date_list = []
for code, trade_date, close_price, high, low, open_price in result:
close_price_history.append(float(close_price))
high_price_history.append(float(high))
low_price_history.append(float(low))
open_price_history.append(float(open_price))
trade_date_list.append(trade_date)
if len(close_price_history) == 0:
return None
# 必须站上200日均线
# 《股票魔法师2》里面谈到保罗·都铎·琼斯被问到交易股票时最重要的规则
# 时,他说一只股票必须高于自己的200日均线,他会“想尽办法远离任何
# 跌破200日均线的股票”。
#close = np.array(close_price_history)
#high = np.array(high_price_history)
#ma_200 = talib.SMA(close, timeperiod=200)
#current_price = float(close_price_history[-1:][0])
#if current_price < float(ma_200[-1:][0]):
# return False
high_of_price_idx = np.argmax(close_price_history) # 250个交易日中最高价的索引
high_of_price = close_price_history[high_of_price_idx]
temp_close_price_history = close_price_history[high_of_price_idx:]
temp_trade_date_list = trade_date_list[high_of_price_idx:]
low_of_price_idx = np.argmin(temp_close_price_history) # 250个交易日中最高价之后的最低价的索引
low_of_price = temp_close_price_history[low_of_price_idx]
percent = round((high_of_price - low_of_price) / high_of_price * 100,2)
print(percent)
return percent >= 40
而动量计算方式则参考《基于指数回归的动量投资策略及其Python代码实现》,看下2021-12-03收盘后的结果, 好几只是自己仍在持有的:

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/78330
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!