虚拟炒股软件学习(实盘虚拟炒股软件)
初衷项目地址:
https://github.com/wangshub/RL-Stock
最近一段时间,受到新冠疫情的影响,股市接连下跌,作为一棵小白菜兼小韭菜,竟然产生了抄底的大胆想法,拿出仅存的一点私房钱梭哈了一把。
第二天,暴跌,俺加仓
第三天,又跌,俺加仓
第三天,又跌,俺又加仓...
一番错误操作后,结果惨不忍睹,第一次买股票就被股市一段暴打,受到了媳妇无情的嘲讽。痛定思痛,俺决定换一个思路:如何用深度强化学习来自动模拟炒股? 实验验证一下能否获得收益。
监督学习与强化学习的区别监督学习(如 LSTM)可以根据各种历史数据来预测未来的股票的价格,判断股票是涨还是跌,帮助人做决策。
而强化学习是机器学习的另一个分支,在决策的时候采取合适的行动 (Action) 使最后的奖励最大化。与监督学习预测未来的数值不同,强化学习根据输入的状态(如当日开盘价、收盘价等),输出系列动作(例如:买进、持有、卖出),使得最后的收益最大化,实现自动交易。
OpenAI Gym 股票交易环境观测 Observation
策略网络观测的就是一只股票的各项参数,比如开盘价、收盘价、成交数量等。部分数值会是一个很大的数值,比如成交金额或者成交量,有可能百万、千万乃至更大,为了训练时网络收敛,观测的状态数据输入时,必须要进行归一化,变换到 [-1, 1] 的区间内。
动作 Action
假设交易共有买入、卖出和保持 3 种操作,定义动作(action)为长度为 2 的数组
action[0] 为操作类型;
action[1] 表示买入或卖出百分比;
注意,当动作类型 action[0] = 3 时,表示不买也不抛售股票,此时 action[1] 的值无实际意义,网络在训练过程中,Agent 会慢慢学习到这一信息。
奖励 Reward
奖励函数的设计,对强化学习的目标至关重要。在股票交易的环境下,最应该关心的就是当前的盈利情况,故用当前的利润作为奖励函数。即当前本金 + 股票价值 - 初始本金 = 利润。
# profits reward = self.net_worth - INITIAL_ACCOUNT_BALANCE reward = 1 if reward > 0 else reward = -100
为了使网络更快学习到盈利的策略,当利润为负值时,给予网络一个较大的惩罚 (-100)。
策略梯度
因为动作输出的数值是连续,因此使用基于策略梯度的优化算法,其中比较知名的是 PPO 算法,OpenAI 和许多文献已把 PPO 作为强化学习研究中首选的算法。PPO 优化算法 Python 实现参考 stable-baselines。
环境安装
# 虚拟环境
virtualenv -p python3.6 venv source ./venv/bin/activate # 安装库依赖 pip install -r requirements.txt
股票数据获取
股票证券数据集来自于 baostock,一个免费、开源的证券数据平台,提供 Python API。
>> pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
数据获取代码参考 get_stock_data.py
>> python get_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,对观测状态、奖励函数和训练集做了修改。
俺完全是股票没入门的新手,难免存在错误,欢迎指正!
数据和方法皆来源于网络,无法保证有效性,Just For Fun!
books 参考资料
-
最后
-
Y. Deng, F. Bao, Y. Kong, Z. Ren and Q. Dai, "Deep Direct Reinforcement Learning for Financial Signal Representation and Trading," in IEEE Transactions on Neural Networks and Learning Systems, vol. 28, no. 3, pp. 653-664, March 2017.
Yuqin Dai, Chris Wang, Iris Wang, Yilun Xu, "Reinforcement Learning for FX trading"(http://stanford.edu/class/msande448/2019/Final_reports/gr2.pdf)
Chien Yi Huang. Financial trading as a game: A deep reinforcement learning approach. arXiv preprint arXiv:1807.02787, 2018.
Create custom gym environments from scratch — A stock market example(https://towardsdatascience.com/creating-a-custom-openai-gym-environment-for-stock-trading-be532be3910e)
notadamking/Stock-Trading-Environment(https://github.com/notadamking/Stock-Trading-Environment)
Welcome to Stable Baselines docs! - RL Baselines Made Easy(https://stable-baselines.readthedocs.io/en/master)
全民股神(TradeHero)顾名思义,是带有游戏性质的模拟炒股APP。它在中国的运营主体上海迈和 (MyHero) 信息科技有限公司,成立于2014年3月成立。
模拟炒股不是新鲜事物,就是用虚拟货币进行虚拟股票交易。
想通过股票投资获取收益,需要一定操盘技能及对二级市场风云变幻的体验。但新手入市风险很大,用模拟账户开始交易是非常好的办法。在中国,几乎有了互联网就有了模拟炒股并且早已进入所谓的“实盘交易”阶段。主流玩法是用户以现金缴纳管理费并冻结一定数量资金承担可能的损失,就可通过网站在规定限额内购买股票并享有收益。例如,新浪模拟抄股“买一点”的实盘资金上限是1万元,保证金880元,综合管理费39.9元,每笔交易手续费19.9元。自2012年11月上线已来,已完成51.6万笔交易并帮助玩家从市场赚到3.975亿。
多年以来,股市由于不景气被众多投资者抛弃,坚守至今者以60后、70后为中坚,80后比较少见,90后几乎没有。近来股市回暖,成交金额屡创新高,但股民的青黄不接成为隐忧。90后是移动互联网同步成长的“拇指一族”,而且现在用手机炒股已非常便捷可靠。用手机APP通过游戏的形式使90后朋菜鸟变成达人、股神是不错的思路。
想到这个思路的创业团队很多,可根据玩家是否实盘交易分为两大类。
优顾模拟炒股希望它的用户在模拟炒股软件中可以直接选择券商进行开户和交易(目前有德邦证券与东莞证券可以选择),完成从模拟到现实的软过渡。届时,优顾模拟炒股就变成了所有券商的手机客户端。做到这一步,自然可以坐享手续费、佣金了。截至2014年12月中旬,优顾模拟炒股下载量超过450万,累计注册用户250万。另外,优顾已获得A轮融资。
产品即将上线的掌迭英豪也以实盘交易手续费为主要变现模式。创始人兼CEO王曦对虎嗅说,未来他们APP上可交易的品类不仅有A股还有世界各大资本市场的证券、期货、外汇及衍生产品。#貌似目标过于远大#
关于实盘模拟炒股,“专业”网站已经玩得很嗨,例如:10万元保证金可配资100万元,总操盘资金110万,强行平仓线为104万,资金使用时间最长30天,管理费1500元/天。这类所谓的“模拟炒股”没有减少风险,而是成倍地放大了风险,当然不适于学者入门。
全民股神一款基于全球实时股市数据的模拟炒股应用,专注于为新用户提供一无风险、二能与全球高手切磋的练习炒股的环境,不涉及实盘交易。
与其他模拟炒股App相比,TradeHero的优势是拥有全球股市数据及全球炒股达人,这些对许多尝试新事物的年轻人具备很大的吸引力。因其前身MyHero诞生于新加坡,2 013年上线后迅速登上全球121个国家AppStore的前列,总用户数已大于200W,月活跃用户数近百万,日活跃用户近十万。
2014年3月成立中国运营主体,迅速组建了20多人的团队。同年11月,针对中国用户习惯进行优化的产品上线。
没有实盘交易,全民股神更加聚焦于“喻教于乐”,并在这方面积累了一定的经验。例如,对各类排行榜进行了榜单优化,分为“推荐榜/人气榜/土豪榜”,使模拟炒股竞技更有乐趣。
进入中国后举办的“全民股神首届全国大学生模拟炒股大赛”,在北上广选择了十所财经类高校进行了为期一个半月的巡回路演加讲座,得到了大学生们的支持与热情参与,最终获得百万级的新注册用户及近两万的比赛活跃用户。
全民炒股为自己设计了三种盈利模式:
B2C:付费关注高手用户以获得炒股信息及其交流指导机会;
B2B2C:与传统金融机构及一些创新的互联网金融机构合作,培养其目标用户并帮助转化成他们的新用户从而收取佣金。据称券商为愿意为每名新客户支付的费用超千元;
UGC内容:随着平台的壮大,平台上高手用户的增多,定向包装培养投资理财讲师,制作投资理财课程。这些高手的投资理念在平台上已有历史验证,比市面上的纯理论分析更有销售价值。
不涉实盘交易,对全民股神有两大好处:一是没有政策风险(特别是掌迭英豪们想让用户通过它们的APP投资全世界的金融产品,中国的监管开绿灯的可能性为零);二是为券商输客户比合作提供实盘买卖更便捷,利益划分更清晰。通常,在利益主体之间,一次性结算总要比分成痛快。
虎嗅注:同为创业公司也想求报道(请猛戳这里)?只要你们对产业正在产生影响、或未来可能有颠覆效应,就都是我们的关注对象——无论大小。
-
-
上一篇:新浪 财经 股票(000798)