一、前言
股票炸板是指票价格涨停后出现打开涨停板,而当天收盘时股票没有再次封死涨停板的现象。炸板后是否能买进,买进效果如何?因此本次策略研究的是炸板后买进的情况如何。
二、描述
事件名称:炸板策略
最大持股数:2(多个票发生事件,根据排序选最前的两个票)
持有周期:2天(事件发生后下个交易日早盘买进,次日尾盘卖出)
资金份数:2份
回测时间周期:2009-01-01至2023-08-04
排序因子:中户资金买入占比
排序方向:False(降序)
三、策略代码
3.1、事件生成代码
import pandas as pd
from datetime import datetime
from multiprocessing import cpu_count
from joblib import Parallel, delayed
from program.Config import *
from program.Function import *
from tqdm import tqdm
import warnings
from program.计算涨跌停价格 import *
warnings.filterwarnings("ignore")
import warnings
warnings.filterwarnings('ignore')
pd.set_option('max_rows', None) # 显示最多行数
pd.set_option('max_columns', None) # 显示最多列数
pd.set_option('expand_frame_repr', False) # 当列太多时显示不清楚
pd.set_option('display.unicode.east_asian_width', True) # 设置输出右对齐
# *************************************************** 调参数 ***************************************************
# stock_data_path = os.path.join(root_path, 'data/trade_data/stock/') # 确认股票数据路径
stock_data_path = 'G:\\股票数据\\股票历史全息日线数据\\' # 确认股票数据路径
cols = ['散户资金买入额', '中户资金买入额', '大户资金买入额', '机构资金买入额',
'散户资金卖出额', '中户资金卖出额', '大户资金卖出额', '机构资金卖出额']
colsB = ['散户资金买入额', '中户资金买入额', '大户资金买入额', '机构资金买入额']
colsS = ['散户资金卖出额', '中户资金卖出额', '大户资金卖出额', '机构资金卖出额']
# *************************************************** 调参数 ***************************************************
def cal_money_flow_event_each_stock(code):
path = stock_data_path + '%s.csv' % code # 读入股票数据
print(code)
df = pd.read_csv(path, skiprows=1, parse_dates=['交易日期'], encoding='gbk')
df.sort_values('交易日期', inplace=True)
df['涨跌幅'] = df['收盘价'] / df['前收盘价'] - 1
df['复权因子'] = (df['收盘价'] / df['前收盘价']).cumprod()
df['收盘价_复权'] = df['复权因子'] * (df.iloc[-1]['收盘价'] / df.iloc[-1]['复权因子'])
本主题为课程学员专享,成为股票量化投资课程学员后可免费阅读
成为学员