昨天罗胖的跨年演讲,结束了他坚持了十年的“语音60秒”,看似一个“行为艺术”的行动。这是罗胖厉害之处,发个语音不难,60秒有点难,最难的是坚持,你说差一天有没有问题,没有话题了就不说有没有问题,后来他已经在商业上取得了成功,不做了行不行?似乎都可以,但他坚持了下来,有零有整,正好十年,给自己一个交待——这就是罗胖。
老俞关于东方甄选的评价——做有价值的且自己内心认同的事情,然后坚持下去。价值是摆上前面的。
01 投资篇——可转债的”双低轮动策略+多因子“
主动投资能力,对于社群的价值?有朋友留言说——我们更关心能赚钱的策略,如何开发出一个能赚钱的策略?
什么叫能赚钱的策略呢?这是需求和痛点,我们需要拆解一下:年化8%,还是20%?回撤控制是40%还是20%。仔细想来,这个问题定义并不清晰,要说能赚钱,”年化2%可以保本“算吗——余额宝就是。年化5%保本,很多理财可能也做得到。那大家可能要更高的收益。更高的收益会伴随更高的风险。那么问题就来了,就算回测时最大回撤在20%,当这个发生的时候,你会坚定坚守,认为仅是模型回调还是策略失效?
投资是一个概率游戏,并不存在一个所谓“永动机”的“圣杯”。我们做的所有努力,都是试图提升概率按我们有利的方式。长期做“正概率”的事,重复下来就会赚钱。
因此,能赚钱的策略可能没有答案,但如何提升我们赚钱的概率。
我想起西医和投资。能用量化完全取代西医吗?不能,但量化在西医看病过程是个基础,血常规,验尿,B超,彩超等等,化验单给出一系列指标。医生拿到这些“量化”的结果,结合自己的经验,再问一系列不好“量化”的问题,结合起来,就可以给出诊断结果,并开出相应的药。这个过程,能够完全自动化和智能化嘛?目前看很难。一个专业医师需要本硕博连续,然后再执业多少年,才能上岗看病。
投资类似。量化可以给标的做全面体检,把很多维度指标化,节省我们的时间,但融合不好量化的信息,投资的经验,才形成自己的投资体系,这才是自己的投资策略。
因此,量化努力的方向是什么?不是造一个系统,或者给出一个策略机械执行,然后做等收钱。再更像是一台多功能CT机,可以透视更多指标,然后纳入你自己的投资理念,投资预期,投资偏好,形成自己的投资逻辑与投资逻辑。
所以,下一步的方向——造一台量化机器,给资产做体检,做画像。
另外,我准备一个主题征集——星球社群的直播。
大家可以把感兴趣的话题提交上来,我们找个时间面对面沟通。
从可转债和ETF开始。
可转债无论是估值还是趋势,可“量化”的维度比较多。
“双低”可转债指的就是价格低,同时溢价也低的可转债。转债价格越低,转债的债性越好,正股下跌时会更加抗跌;转股溢价率越低,转债的股性越好,正股上涨时才能跟涨。
双低值=可转债价格+转股溢价率*100
下面是集思录的数据:
当然这里还需要排除:已公告强赎的,比如元力转债。
还有1年内到期的,久期太短,比如光大转债。
可转债价格好理解,转股溢价率是指啥,就是买转债的成本,与直接卖正股的成本相比,“贵了”多少。一般转股溢价不太可能为负,为负意味着,你买入转债,然后直接转股都能套利。而转债除了正股,还有“看涨”期权的价值呢。所以,一般比直接买股票要更贵一些。
转股价值 = 100/转股价 * 正股价。
溢价率= 转债价格/转股价值 – 1。
当然双低轮动也有需要择时的时间,比如双低都高。
当然还有“新双低”的指标计算:
根据正股的质地、所处行业、信用评级、转债条款等因素,在初步筛选数据的基础上,进一步筛选和优化。比如有的同学会对pb<1的转债进行剔除。因为转股价不能下调到最近一期经审计净资产以下,所以pb<1的转债没有下修空间。
这其实就是一个“多因子‘的逻辑,还是回到我们说的量化投资本质,是提升我们决策正确的概率。投资的世界以概率来呈现,很难说确定一个规则,但这些”因子“指标可以指导我们做出更加正确的决策。
02 技术篇——可转债数据
先建立股票列表、转债列表。
from django.db import models class StockBasic(models.Model): code = models.CharField(max_length=10, verbose_name='股票代码') name = models.CharField(max_length=20, verbose_name='股票名称') full_name = models.CharField(max_length=100, verbose_name='股票全称') industry = models.CharField(max_length=20, verbose_name='行业', null=True) list_date = models.DateField(verbose_name='上市日期') market = models.CharField(max_length=20, verbose_name='所属市场') class Meta: verbose_name = '股票信息' verbose_name_plural = verbose_name class StockIndicator(models.Model): stock = models.OneToOneField(to=StockBasic, verbose_name='股票', on_delete=models.CASCADE) price = models.FloatField(verbose_name='价格') change_rate = models.FloatField(verbose_name='涨跌幅') PB = models.FloatField(verbose_name='市净率(PB)') PE = models.FloatField(verbose_name='市盈率(PE)') # Create your models here. class CBBasic(models.Model): code = models.CharField(max_length=10, verbose_name='转债代码') name = models.CharField(max_length=20, verbose_name='转债名称') full_name = models.CharField(max_length=50, verbose_name='转债全称') stock = models.OneToOneField(StockBasic, verbose_name='正股', on_delete=models.CASCADE) maturity_date = models.DateField(verbose_name='到期日') class CBIndicator(models.Model): bond = models.ForeignKey(CBBasic, verbose_name='转债', on_delete=models.CASCADE) conv_price = models.FloatField(verbose_name='最新转股价') price = models.FloatField(verbose_name='最新价格') remain_year = models.FloatField(verbose_name='剩余年限(年)') remain_size = models.FloatField(verbose_name='剩余规模(亿)') volume = models.FloatField(verbose_name='成交额(万)') turnover = models.FloatField(verbose_name='换手率') conv_value = models.FloatField(verbose_name='转股价值') double_low = models.FloatField(verbose_name='双低值')
从脚本里批量创建数据:
if __name__ == '__main__': df = get_stock_basic() list = [] import os os.environ['DJANGO_SETTINGS_MODULE'] = 'backend.settings' # 配置系统变量 import django django.setup() from quant.models import * for column_index, row in df.iterrows(): if row['ts_code'] == '000001.SZ': continue item = StockBasic(code=row['ts_code'], name=row['name'], full_name=row['fullname'], market=row['market'], industry=row['industry'], list_date=datetime.strptime(row['list_date'], '%Y%m%d')) list.append(item) StockBasic.objects.bulk_create(list) print(df)
由于转债数据依赖股票列表,所以先建立股票列表。
类似的逻辑,建立可转债的列表:
明天继续定时任务,采集股票、转债数据,而后计划指标,用于可转债的”量化“画像。
小结:
量化的路径是提升投资成功的概率,实现路径是给标的”量化“和”画像“。
有点像”多因子“,但这里的因子有很强的逻辑支撑,不会用数据挖掘的方式去挖。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104181
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!