使用神经网络进行证券交易所交易

机器算法验证 机器学习 神经网络
2022-02-03 09:58:19

我潜入了神经网络领域,并被它们迷住了。

我终于开发了一个用于测试证券交易所交易系统的应用程序框架,现在我将在其中实现我的第一个神经网络。非常简单和原始的一种,不适合实际交易,仅供初学者使用。

我只想知道我的方法是否是好的方法。

如果你发现我遗漏了什么(或者我错了),或者你知道什么可以帮助市场交易中神经网络领域的初学者,那会让我超级开心:)


我有 40 个输入,来自证券交易所的市场价值(标准普尔 e-mini,但这并不重要)。

对于这 40 个输入,我知道 2 个数字。

  • 买单我能赚多少钱或亏多少钱
  • 卖出订单我会赚多少钱或亏多少钱

由于证券交易所的运作方式,这两个数字实际上都可能是负数/正数,表明我可以通过买入和卖出来亏损/赚钱(这是因为交易可以附加“止损”或“目标”订单,如 STOP、LIMIT等行为不同)。

但如果发生这种情况,这表明我根本不应该下订单,即使两个买卖订单都给出正数。

我想最好使用的激活函数是 ...sigmoid 的东西,但范围从 -1 到 1(我发现它在互联网上被称为很多名字...bipolar sigmoid、tanh、tangent 的东西...我不是高深的数学家)。

通过反向传播学习,我教网络对于 40 个输入,有 1 个输出,这个输出是这些数字之一。

  • -1 表示卖单会赚钱,买单会亏钱
  • +1 表示买单会赚钱,卖单会亏钱
  • 0 表示买入和卖出都将卖出/亏损,最好避免交易

我想象在学习之后,网络输出将始终是接近 -1、1 或 0 的某个数字,这取决于我设置买入或卖出的阈值。

这是使用神经网络的正确方法吗?

在互联网上的任何地方,学习者给反向传播学习机的输出是市场图表的未来值,而不是不同交易条目(买入或卖出)的预期货币收益率。我认为这是一种不好的方法,因为我对未来的图表值不感兴趣,而是对我想赚的钱感兴趣。

编辑:我打算建立一个用于自动交易的神经网络,而不是用于决策帮助。

3个回答

这种方法存在严重缺陷。

首先,有很多赌局通常会赢,但赌局很糟糕。假设您有机会赢得$ 1的时间并输掉$ 100的时间。这有一个负的期望值,但是你训练神经网络的方式会教它推荐这种反向彩票。90%10%

其次,你错过了证券交易所的一大要点,那就是管理风险。决定投资价格的不仅仅是回报,而是回报与无法对冲的风险。高收益高风险的投资不一定比低收益低风险的投资好。如果你能以借钱,这比找到一个风险很大且回报率为的投资更有价值。如果负回报率的投资与高回报率的风险投资强烈负相关,则它可能仍然有价值。因此,回报率不足以评估投资。6%5%60%

第三,您应该意识到您正在与其他也可以访问神经网络的人竞争。有很多针对基于神经网络的日间交易者的商业程序。(这些是由那些发现向困惑的日内交易者出售软件比使用他们自己的系统更有利可图的人制作的。)有许多专有系统,其中一些可能涉及神经网络。要找到他们忽略的价值,你需要有一些优势,而你没有提到任何优势。

我是神经网络的忠实粉丝,但我认为股市中神经网络的典型用户不了解基础知识并烧钱。

一个人可能永远看不到这一点,但作为一个发现自己全神贯注于金融和计算机科学的人,我仍然愿意提供我的意见。

我永远不会说神经网络在股票交易中不会成功,但你需要考虑人类如何交易股票与神经网络如何交易股票之间的差异。普通交易者在做出简单的买入、持有、卖出决定时会下意识地考虑数百个因素。

  • 最近的新闻
  • 最近的收入/财务
  • 经济指标(利率、贷款拖欠、政治)
  • 行业竞争对手

以此类推,我敢肯定,超过一半的股票交易者没有超过基准。由于缺乏输入,神经网络真的很难做出比人类更好的决定。看着某人的脸并说“哦,那是 Bobby John”比做出投资决定要容易得多,而且一些网络很难挑选面孔。可能有 40 多位来自加州理工学院文艺复兴科技公司或 DE Shaw & Co 的 IQ 书呆子已经想出了如何让神经网络交易股票,但我不会浪费我的时间。坚持让程序来挑选基本趋势或废弃 EDGAR 的财务数据。

我意识到这是一个旧线程,但以防万一有人偶然发现它,OP 需要做的就是将他想要的字段压缩到 0 到 1 的空间。即只需重新映射 -1 = 0.0、0 = 0.5 和 1 = 1。然后你可以只使用标准的逻辑 sigmoid 激活函数。