基于keras的向上跳空高开股票预测的初次体验

基于keras的向上跳空高开股票预测的初次体验

在股市中,每天都有向上跳空高开的股票,所谓向上跳空高开即今日股票的最低价大于昨日的最高价。出现这样的形态通常表明这只股票向上涨的概率大于下跌。我统计从2015年1月1日到2017年3月8日A股市场向上跳空并且当日收盘价大于开盘价的点,它们在第二日最高价大于昨日收盘价的概率为80%,如果算上0.2的交易成本即第二日涨幅大于昨日收盘0.2%以上算涨则概率为78%。因此当日跳空高开第二日上涨是大概率事件。那么能不能将这些数据深度学习做预测以提高预测准确行呢?

第一步:收集数据,统计从2015年1月1日到2017年3月8日A股市场向上跳空的点,所有数据点以事件升序排序(这样做的目的是为了避免股票“时间旅行”),一共12155点。将这些点当日的价格指标和技术指标作为特征feature,第二日与当日涨幅作为目标属性y。会得到以下的数据点:
code date open max min close … macd return
600896.SH 2015-01-06 -4.441197 -5.578155 -6.474727 -1.569164 … 44.176707 1.31
第二步,将数据做预处理和切割,由于每日股票价格不同,有的高达上百元有的只有几元,因此要将数据做预处理,将当日数据特征减去昨日数据特征除以当日数据特征乘以100。再将这些数据用sklearn的scale做标准化(归一化)处理。将目标属性return做分类,例如return大于N(假定0.5)则return给1,否则给0。将数据集中前80%作为训练集train,将后20%的数据做测试集test(第一实验暂时不设验证集)。
第三步,生成深度学习网络,深度学习网络一共三层每层使用的激活函数为relu,每层神经元分别为15,10,5最后使用softmax分类,优化方法使用RMSprop。用相同的数据训练神经网络5次。
第四步,用测试集测试结果,测试的正确性78%,随着N增加测试准确性降低,逐渐降低到50%左右。
目前这个模型有几个不足:1、特征选取不够,应该增加特征数量;2、没有对特征进行优化;3、没有验证集进行参数优化过程;4、给定买卖点设计;5、没有历史回测收益率。以上5个方面是可以改进的方面。
代码如下:

import numpy as np
import pandas as pd 
import pprint, pickle
from sklearn.preprocessing import scale
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值