股票学习网

股票入门基础知识_炒股入门与技巧_怎么买股票 - 股票学习网!

模拟炒股实验报告(炒股软件)

2023-10-23 05:41分类:股票公式 阅读:

本篇文章给大家谈谈模拟炒股实验报告,以及炒股软件的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

文章详情介绍:

模拟炒股,赚的盆满钵满,为啥一实盘交易,就亏得一塌糊涂?

不知道大家有没有这样的经历:模拟炒股能赚钱,但一到实战就亏损呢?

今天就同大家探讨一下,模拟盘和实战炒股,那个赢面更大?

1.心态变化:

玩股票模拟盘

因为是模拟的,所以模拟炒股,就操作盈亏而言,只是一个对自身而言无关轻重的游戏。并不会触动个人的切身利益。所以我们在建仓,平仓等操作时,更加遵守自己的投资逻辑,不太会违反规则,这种平和的心态更利于我们在市场的纷繁变化中保持理性和专业!

股票实战

一旦充钱入账,真枪实弹地入场炒股了,心态就不一样了。因为账户内金额的上下跳动,直接关系到我们的真金白银。

所以,便会额外关注证券账户的波动变化,一旦聚焦,或者过度关注,小小的一个跌幅,可能让我们心态变得特别不好。在不好的心态下,持续了一段时间后,我们就容易质疑自己的投资策略,往往就不太准守当初制定的投资准则,一旦操作情绪化,非理性地投资,炒股的赌性就显得很强,赌起来又喜欢梭哈,靠运气,就算几把下来都不输,只要一直赌下去,总有一把被套!

2.时间因素和随机性

玩模拟盘的目的一般是为实盘做准备的,很少有人只玩模拟盘,就是不实战的。这就造成了,模拟盘的操盘时间比较短,而实战持股时间比较长。而A股长期的状态就是牛短熊长,这样一来,一般实盘持仓的股民长期处在的熊市的这么个状态,受大背景影响账面不理想的概率是比较普遍的。

拿一个短期的模拟盘和一个长期持仓的实盘相比较,没有什么可比性,随机性太强了,可能恰恰模拟盘进场的时机特别好,所以账面很好看!

3.子弹数量

模拟盘一般模拟的可用资金数量是非常大的,而实战时,个人资金投入肯定是有限的,或者说是拮据的。

I)交易成本差异

这在大额交易时,会出现规模效应,就是大额交易更具有成本优势。例如,同样买招商银行股票(市价34元),税费啥的按3%%计算,模拟盘模拟本金有100万,假设买入1万股时交易费也才102元,但实盘时本金只有1万,只买1手,交易费就是1.02,但券商在收这类费用时,不足5元,按五元收取(费率来到14.71%%)。变相的,本金少的实盘交易成本就上升了,假如此时招行股票上涨4%%,账面上模拟盘已经翻红盈利,但实盘还处于亏损的状态。即从成本角度看,模拟盘更容易盈利,实战就难了!

II)多元化差异

模拟盘模拟的本金数量大,大可买入多只股票,形成多元化优势,这样一来,单只股票的下跌,可以通过别的股票的上涨来修复,使得整个股票账户账面上很好看。

但实盘交易时,因为资金不多,想要分散化,资金瘫倒每只股票上,这样除了交易成本高,即便选对股票,收益率很高,也因本金低,挣不了钱。集中资金买个别股票,股票账户的总体状况又容易受个股的波动而剧烈震荡,短期内出现巨亏的概率就会大大提高!

III)机会成本差异

还是模拟盘模拟的本金数量大,基本上模拟有本金100万,这样在买股票时,基本上不存在买不起的现象。而实战时则恰恰相反。

例如,贵州茅台,现在报价1300左右,买1手就要13万,实战操作时一般人是买不起的。同样是面对好的建仓机会,实战受限于子弹数量,往往只能眼睁睁地看着机会从身边溜走。正因如此,模拟盘相较于实战,具有更多的机会!

本文系【财经问投】原创,特此声明!

GitHub热门推荐:如何用深度强化学习自动炒股

项目地址:
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)

https://www.haomiwo.com

上一篇:炒股四季歌的模拟操作效果(四季炒股口诀)

下一篇:新手炒股入门与技巧(炒股入门与技巧)

相关推荐

返回顶部