上市公司股票价格(达安基因股吧)
项目地址:github/wangshub/RL-Stock
初衷最近一段时间,遭到新冠疫情的影响,股市接连跌落,作为一棵小白菜兼小韭菜,居然产生了抄底的斗胆主意,拿出仅存的一点私房钱梭哈了一把。
第二天,暴降,俺加仓
第三天,又跌,俺加仓
第三天,又跌,俺又加仓...
一番过错操作后,成果不忍目睹,第一次买股票就被股市一段毒打,遭到了媳妇无情的嘲讽。痛定思痛,俺决议换一个思路:如何用深度强化学习来主动模仿炒股?试验验证一下能否取得收益。
监督学习与强化学习的差异监督学习(如LSTM)能够依据各种历史数据来猜测未来的股票的价格,判别股票是涨仍是跌,帮助人做决议计划。
而强化学习是机器学习的另一个分支,在决议计划的时分采纳适宜的举动(Action)使终究的奖赏最大化。与监督学习猜测未来的数值不同,强化学习依据输入的状况(如当日开盘价、收盘价等),输出系列动作(例如:买进、持有、卖出),使得终究的收益最大化,完成主动买卖。
OpenAIGym股票买卖环境观测Observation
战略网络观测的便是一只股票的各项参数,比方开盘价、收盘价、成交数量等。部分数值会是一个很大的数值,比方成交金额或许成交量,有或许百万、千万甚至更大,为了练习时网络收敛,观测的状况数据输入时,必需要进行归一化,变换到[-1,1]的区间内。
动作Action
假定买卖共有买入、卖出和坚持3种操作,界说动作(action)为长度为2的数组
action[0]为操作类型;action[1]表明买入或卖出百分比;留意,当动作类型action[0]=3时,表明不买也不兜售股票,此刻action[1]的值无实际意义,网络在练习过程中,Agent会渐渐学习到这一信息。
奖赏Reward
奖赏函数的规划,对强化学习的方针至关重要。在股票买卖的环境下,最应该关怀的便是当时的盈余状况,故用当时的赢利作为奖赏函数。即当时本金+股票价值-初始本金=赢利。
#profits\nreward=self.net_worth-INITIAL_ACCOUNT_BALANCE\nreward=1ifreward>0elsereward=-100
为了使网络更快学习到盈余的战略,当赢利为负值时,给予网络一个较大的赏罚(-100)。
战略梯度
由于动作输出的数值是接连,因而运用根据战略梯度的优化算法,其间比较闻名的是PPO算法,OpenAI和许多文献已把PPO作为强化学习研讨中首选的算法。PPO优化算法Python完成参阅stable-baselines。
模仿试验环境装置
#虚拟环境
virtualenv-ppython3.6venv\nsource./venv/bin/activate\n#装置库依靠\npipinstall-rrequirements.txt
股票数据获取
股票证券数据集来自于baostock,一个免费、开源的证券数据渠道,供给PythonAPI。
>>pipinstallbaostock-ipypi.tuna.tsinghua.edu/simple/--trusted-hostpypi.tuna.tsinghua.edu
数据获取代码参阅get_stock_data.py
>>pythonget_stock_data.py
将过去20多年的股票数据区分为练习集,和结尾1个月数据作为测验集,来验证强化学习战略的有效性。区分如下
验证成果
单只股票
初始本金10000股票代码:sh.600036(招商银行)练习集:stockdata/train/sh.600036.招商银行.csv测验集:stockdata/test/sh.600036.招商银行.csv模仿操作20天,终究盈余约400多只股票
选取1002只股票,进行练习,合计盈余:44.5%不亏不赚:46.5%亏本:9.0%终究股票Gym环境首要参阅Stock-Trading-Environment,对观测状况、奖赏函数和练习集做了修正。
俺完全是股票没入门的新手,不免存在过错,欢迎纠正!
数据和办法皆来源于网络,无法确保有效性,JustForFun!
books参阅资料
Y.Deng,F.Bao,Y.Kong,Z.RenandQ.Dai,"DeepDirectReinforcementLearningforFinancialSignalRepresentationandTrading,"inIEEETransactionsonNeuralNetworksandLearningSystems,vol.28,no.3,pp.653-664,March2017.YuqinDai,ChrisWang,IrisWang,YilunXu,"ReinforcementLearningforFXtrading"(stanford.edu/class/msande448/2019/Final_reports/gr2.pdf)ChienYiHuang.Financialtradingasagame:Adeepreinforcementlearningapproach.arXivpreprintarXiv:1807.02787,2018.Createcustomgymenvironmentsfromscratch—Astockmarketexample(towardsdatascience/creating-a-custom-openai-gym-environment-for-stock-trading-be532be3910e)notadamking/Stock-Trading-Environment(github/notadamking/Stock-Trading-Environment)WelcometoStableBaselinesdocs!-RLBaselinesMadeEasy(stable-baselines.readthedocs.io/en/master)“走马消息,分享精选全球有价值的财经新闻”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。