更多量化分析:通联量化实验室
很多股民都习惯于看新闻,根据新闻中对某只股票的评价(或好或坏),进行买卖操作。这里新闻对于股票的评价我们称之为新闻情感。本篇中,我们将做一个小实验,看看这样的操作手法是否合理。
1. 数据准备
在我们的量化实验室中,用户可以通过数据API: NewsSentimentIndexGet 获取某只股票对应的新闻情感。
res = DataAPI.NewsSentimentIndexGet(secID = '600000.XSHG',field=['secID', 'newsPublishDate', 'sentimentIndex'])
res.tail()
上面的API调用,获得了最近的浦发银行的每日新闻情感:
secID证券代码newsPublishDate交易日sentimentIndex当时交易日的总体新闻情感指标,正的表示评价总体正面,负值表示评价总体负面
默认情况下,会获取最近30天的情感指标。
2. 操作手法
我们这里使用程序化的方法,执行如下的操作手法:
- 获取上证50成分股的最近30日新闻情感
- 将新闻情感按照
secID分组,每组取平均;即获取每只股票最近30日情感均值 - 取情感最正面的5只股票。
代码如下:
from quartz.api import set_universe
universe = set_universe('SH50')
res = DataAPI.NewsSentimentIndexGet(secID=universe, field=['secID', 'newsPublishDate', 'sentimentIndex'])
res = res.groupby('secID')
res.mean().sort('sentimentIndex', ascending=False).head(5)
3. 策略实现
首先我们采取正面操作手法:
- 投资域 :沪深300成分股
- 业绩基准 :沪深300指数
- 调仓频率 :60个交易日
- 开仓信号 :评价最正面的10%股票
- 清仓信号 :每个调仓日前一个工作日,清空当前仓位
- 买入方式 :等比例买入
- 回测周期 :2010年1月1日至2015年4月28日
我们还可以试一下反向操作,选取评价最负面的10%
- 投资域 :沪深300成分股
- 业绩基准 :沪深300指数
- 调仓频率 :60个交易日
- 开仓信号 :评价最负面的10%股票
- 清仓信号 :每个调仓日前一个工作日,清空当前仓位
- 买入方式 :等比例买入
- 回测周期 :2010年1月1日至2015年4月28日
嗯?主动收益率还是正的。。。。看来这样的简单正面负面指标还不足以进行有效的区分。