资源简介
量化选股过程.7z
代码片段和文件信息
‘‘‘-------------------------------------------------------------------------------
策略思路:
(1)回测标的:沪深300与中证800
(2)回测时间段:2016年1月1日至2017年12月31日
(3)数据清洗:
1、为了使测试结果更符合投资逻辑,我们设定了三条样本筛选规则:
(1) 剔除涨停跌停股票;
(2) 剔除上市不满一年的股票;
(3) 剔除选股日由于停牌等原因而无法买入的股票。
2、数据清洗
我们本次采用研究中最常用的’中位数去极值法‘去除极值
超出区间的定义为异常值。对于异常值,取n=3,把数值改为边界值。
3、因子标准化
我们采用研究中常用的正态标准化处理因子数据。
(4)回测思路
(1)每个月把当月的因子平均值求出,然后对各个股票排序,把股票分成10档。一个月后
重新分档,各个股票等权看待。根据每天的数据,计算其夏普比率,最后总和所有数据计算
年化夏普比率。
# (2)每个月末以最好的一档为资产组合,跟踪市场表现,跟踪各档表现。
# (3)以沪深300指数为资产组合的基准指数
(5)选股设置:
该回测策略需要长期持有
(6)目标逻辑:
基础资金为100W,计算各个因子的各个股票档与资产组合的收益率、IC、IR、分档组合单调性,
最后对该因子做t检验并且计算其年化夏普比率。
-------------------------------------------------------------------------------
‘‘‘
from atrader.calcfactor import *
import numpy as np
import pandas as pd
import time
import datetime as dt
import xarray as xr
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from scipy import stats
import random
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import learning_curve
if __name__==‘__main__‘:
time_i = 0
print(“执行开始“.center(20“-“))
start = time.perf_counter()
time_start=time.time()
Begin_date = ‘2016-01-02‘
#degin_date为训练数据的开始时间
Begin_date = ‘2016-01-02‘
del_date = ‘2015-01-01‘
End_date = ‘2017-01-01‘
#获取训练数据
stock_code_list = list_get(Begin_dateEnd_date)
#获取kdata
stock_score_data = data_get(stock_code_listBegin_dateEnd_date)
choose_factor = [‘BIAS20‘‘CDLPIERCING‘‘FY12P‘‘EPIBS‘‘MTM10‘]#20天乖离率 分析师盈利分析 投资回报率预测 动量指标
#数据清洗
#剔除涨停涨跌与上市不满一年的股票
stock_info = get_stock_info(stock_code_list)
stock_info_data = stock_info[‘de_listed_date‘]
#进行删除
stock_score_data = del_data(stock_infostock_info_datadel_datestock_score_data)
test_mouth = 1
begin_date = dt.datetime.strptime(Begin_date ‘%Y-%m-%d‘)
profit_week = 1
all_test_time = 10
all_x = np.array([])
all_y = np.array([])
scale = all_test_time
for test_time in range(all_test_time):
#进度条
a = ‘*‘*(time_i)*3
b = ‘.‘ * ((scale -time_i))*3
c = (time_i/scale)
d = time.perf_counter() - start + 0.5
time_i+=1
# print (“{:^3.0f}%[{}->{}]“.format(cab))
print (“\r{:^3.0f}%[{}->{}]{:.2f}s“.format(cabd)end=“ “)
#x need
stock_fit_need_num =stock_score_data.iloc[np.where( (begin_date+dt.timedelta(days=profit_week*7*test_time)) < stock_score_data.time)[0]]
stock_fit_need_num =stock_fit_need_num.iloc[np.where( stock_fit_need_num.time<(begin_da
相关资源
- HP Compaq 8200 Elite 系列商用台式机
- 2019年软考高级下半年信息系统项目管
- Assembly Language for x86 Processors (7th Ed
- Mule基础教程中文版
- 易语言凡哥记事本V1源码易语言凡哥记
- 易语言码表文本加解密模块源码
- DIR2病毒源代码(汇编语言编写)
- ADC0809的采样控制电路的实现.doc
- CRichEditView显示行号的代码
- STM8S代码例程
- 上海交大计算机图形学课程视频31集
- Source Insight 4.0.0080破解文件 替换lic
- Apk加固Demo
- VMware Workstation Pro 15 注册机
- HumanDet(公交车系统模式识别)
- 基于89C51的智能台灯
- 计算机数值分析.rar
- 水晶排课 11.53 破解版
- 51智能排课系统大课表版v5.1.3中文免费
- 用友U8新引入帐套后固定资产模块出错
- Beginning STM32: Developing with FreeRTOS libo
- 土木工程毕业设计(得了95分)
- 土木工程毕业设计 -大连理工大学
- 八重州 7800电路图 高清版
- PalmOS一些常识
- Palm OS应用程序设计指南
- Palm OS基础入门
- 通信原理第七版课后答案樊昌信.doc
- ALIENTEK战舰STM32F1 V3开发板原理图.rar
- [软件工程—实践者的研究方法].Roge
评论
共有 条评论