请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3365818 新帖:25

上市公司发布股价波动风险提示性公告的买入策略

舞蹈家发表于:5 月 10 日 05:16回复(1)

股票市场中情绪因素是影响股价波动的主要因素之一,尤其连续的非理性上涨都是情绪因素主导的。上市公司常常会在本公司股票出现非理性上涨后发布公告提示风险,这就是股价波动的风险提示性公告。然而,我们常常看到,公告发布后的几个交易日中,股价仍然会持续这种非理性的上涨。本策略就研究了这种公告后的股价波动情况。

首先,我通过万得金融终端获取了所有2018年9月之后的风险提示性公告(因为精力有限只找了半年的公告),文件名为notice.csv。

其次,筛选出与股价波动相关的风险提示公告,这类公告有两个特点,一是公告标题只有“风险提示性公告”几个字,或者标题内含有“波动”字样,我用下面研究模块中的代码进行了筛选,最后生成了一个notice1.csv文件,文件包含三列,公告标题、股票代码、公告发布日期。

最后,把该文件传入回测代码中,在公告第二日开盘时买入,如果上涨9%就止盈,下跌5%就止损。半年内收益跑赢沪深300,具体收益和风险情况请看下面回测情况。

大家可以再深入研究一下,希望大家多提意见,多指正。

import pandas as pd
import numpy as np
from datetime import *

notice = pd.read_csv("./notice.csv", encoding='utf-8')
list = notice.index
for i in list:
    if ':风险提示性公告' not in notice['title'][i]:
        if '波动' not in notice['title'][i]:
            notice = notice.drop(i, axis=0)

for i in notice.index:
    date = notice['date'][i]
    date = date.replace('/', '-')
    date = datetime.strptime(date, "%Y-%m-%d") 
    notice['date'][i] = date.date()
    print(type(date))

    code = notice['code'][i]
    if code[0] == '6':
        notice['code'][i] = code[0:6] + '.XSHG'
    else:
        notice['code'][i] = code[0:6] + '.XSHE'

notice = notice.sort_values('date', ascending=True)
notice.to_csv('notice1.csv', encoding='utf-8')
print(notice)

全部回复

0/140

量化课程

    移动端课程