量化投资的线性回归
来源:互联网 发布:db2导入数据库命令 编辑:程序博客网 时间:2024/06/09 16:42
多元线性回归
预测平安银行的股价利润
欢迎访问: https://github.com/cuixuage/Machine_Learning
#coding=utf-8import numpy as nyimport pandas as pdimport matplotlib as mpimport scipy as spimport sklearn as sl# 本金10万元 初始股票价格9.22元 买入100000/9.22=10846支股票## 注意: 由于计算过程中没有考虑复利情况(不考虑由于获得利润或者亏本的情况下导致的股票动态增加、减少)# 故此假设在后续计算利润中均按照10846支股票进行计算利润和N = 100000/9.22;data = pd.read_table('D:\\Pycharm\\projects\\test\\datafromSZ0001_day.txt')feature_cols = ['BOLL', 'UPR', 'DWN']X = data[['BOLL', 'UPR', 'DWN']]y = data['CLOSE']y = data.CLOSEy_CLOSE = pd.Series.as_matrix(y)# print type(y_CLOSE),len(y_CLOSE)# print y_CLOSEaverage_close=[] ################close_price averagefor i in range(0,len(y_CLOSE)-1): temp = 0 if i<len(y_CLOSE)-7: for j in range(0,7): temp += y_CLOSE[i+j] average_close.append(temp/8) else: for j in range(0,i-(len(y_CLOSE)-7)-3): temp += y_CLOSE[i+j] average_close.append(temp/(i-(len(y_CLOSE)-7)-3))# print average_close# print type(average_close),len(average_close)def rule_1(week_idx): "time: week_idx : average down and close_price > averge" if((average_close[week_idx] > average_close[week_idx-1]) \ and (y_CLOSE[week_idx]>=average_close[week_idx])): return 1 else: return 0def rule_2(week_idx): "time: week_idx : close-price < averge and average up" if((y_CLOSE[week_idx]<=average_close[week_idx]) \ and(average_close[week_idx]>average_close[week_idx-1])): return 1 else: return 0def rule_3(week_idx): "time: week_idx: average >> close" if(average_close[week_idx] > y_CLOSE[week_idx]*1.2): return 1 else: return 0def rule_4(week_idx): "time: week_idx: close_price << average" if(y_CLOSE[week_idx] < average_close[week_idx]*0.8): return 1 else: return 0def rule_5(week_idx): "time: week_idx : average_prive down and close_price down" if((average_close[week_idx] <= average_close[week_idx-1]) \ and(y_CLOSE[week_idx] <= y_CLOSE[week_idx-1])): return 0 else: return 1def rule_6(week_idx): "time week_idx : average_price down and close_price < average_price" if((average_close[week_idx] <= average_close[week_idx-1]) \ and(y_CLOSE[week_idx] <= average_close[week_idx-1])): return 0 else: return 1def rule_7(week_idx): "time: week_idx : close << average_price and average down" if((average_close[week_idx] <= average_close[week_idx-1]) \ and (y_CLOSE[week_idx] <= average_close[week_idx]*0.8)): return 0 else: return 1def rule_8(week_idx): "time : week_idx : close_price up and close_price >> average-price " if((y_CLOSE[week_idx] >= y_CLOSE[week_idx-1]) \ and(y_CLOSE[week_idx] >= average_close[week_idx]*1.2)): return 0 else: return 1def choose_rule_final(week_idx): "count 1 0 to get final choose : if count(1) > count(0) bought ;else throw " count_1 = 0 count_0 = 0 ######################################rule 1 2 3 4 if(rule_1(week_idx) == 1): count_1 +=1; if(rule_2(week_idx) == 1): count_1 +=1; if(rule_3(week_idx) == 1): count_1 +=1; if(rule_4(week_idx) == 1): count_1 +=1; ######################################rule 5 6 7 8 if(rule_5(week_idx) == 0): count_0 +=1; if(rule_6(week_idx) == 0): count_0 +=1; if(rule_7(week_idx) == 0): count_0 +=1; if(rule_8(week_idx) == 0): count_0 +=1; ###########################result to bought or through if(count_1 >= count_0): return 1 else: return 0for week_idx in range(0,len(average_close)): temp = choose_rule_final(week_idx) profit = 0 if(temp == 1): #to buy and calculate profit profit -= (y_CLOSE[week_idx] - y_CLOSE[week_idx-1])*N else: profit += (y_CLOSE[week_idx] - y_CLOSE[week_idx-1])*Nprint "股票个数:",N;print "最终利润:",profit#本金10万元 最终获取利润值为2060.73752711 大约为2千元
阅读全文
0 0
- 量化投资的线性回归
- 计算机的投资:量化投资
- 量化投资
- 量化投资
- 线性回归之向量化 linear regression -- vectorization
- 量化投资领域--关于Quant的FAQ
- 货币量化宽松的投资机会-郎咸平
- 量化投资拥有光明的未来
- 量化投资实习得到的知识
- 股票量化投资出现的主要原因分析
- 收集的一些量化投资 资料
- 量化投资策略回测前的准备
- 线性回归的来历
- 简单的线性回归
- 线性回归的来历
- 简单的线性回归
- 回归的线性模型
- 线性回归的实现
- 写论文,latex下的单位、符号、数字的使用格式。
- Ant生成DTD文件(eclipse IDE)
- Android 6.0 动态权限申请注意事项
- dlib python人脸检测 特征点定位
- 解决过拟合的方式(一):正则化
- 量化投资的线性回归
- hjr教程-JAVA(三):多线程
- MySQL异常:TIMESTAMP with implicit DEFAULT value is deprecated
- mysql修改字段长度命令
- spring mvc dubbo整合cms内容发布平台
- 蓝桥杯试题——区间K大数查询
- Android 源码分析 —— 从 Toast 出发
- 36计详解
- mysql分组取每组前几条记录(排名) 附group by与order by的研究