金融市场中的智能视觉应用新宠:MarketNet

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

写在前面的话:
       
本文主要介绍如何将计算机视觉技术应用于金融市场,通过构建TensorFlow深度学习模型来识别市场趋势、预测交易信号,并评估了不同模型在实际交易中的表现。

        熟知计算机视觉技术的都知道我们已经在使用的WordNetImageNet,但现在是时候推出 MarketNet 了。作为交易员,我们会在多个时间范围内关注各种资产类别。人类的视觉能力令人难以置信,但我们也会感到疲劳、马虎和有偏见。我想如果交易员有一个决策支持系统,一个公正的第二意见来确认你的输入,会发生什么。MarketNet 的诞生受到了我长期以来的一些问题的启发:

  1. 网络是否能够识别市场。它是 E-Mini S&P 500 期货的快照还是 GOOGL 股票的快照?
  2. 网络能够预测未来的走势吗?显然,它能赚钱,对吧?但作为交易员,我们知道显而易见的事情显然是错误的 [德鲁肯米勒]。
  3. 网络是否能够识别有利可图的交易?

       以下是我所做的实验的简要总结。这个项目的工作于 2022-09-27 开始。

一、问题

       在处理数据时,第一个问题是模型是否能够识别市场?显然,我们知道我们目前正在关注和交易的市场是什么,但它们真的不同吗?

model = tf.keras.Sequential([
  tf.keras.layers.Rescaling(1./255),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(num_classes)
])

       该设置是来自TensorFlow的加载和预处理指南的简单原始模型。这里没有什么花哨的,我将图像输入大小拉伸到 200 像素的正方形,并增加了时期数以发现过度拟合点。数据存储在每个市场的单独目录中。第一个实验是在股票资产类别中,包括ESNQYMRTY

       该模型很差,而且开始过度拟合,最终失败。然后我决定在利率资产类别中尝试同样的想法。

       识别利率(ZBZNFGBL)也没有什么特别之处,而且最终也开始过度拟合。

       跨越各种资产类别:尝试确定目标市场为 ES、RTY、ZB 和 FGBL。

       总而言之,资产识别领域没有什么有趣的东西,我们只是热身而已。

二、识别其另一面

       现在让我们将图像分为买入日和卖出日。当天的任何积极变化(收盘价 — 开盘价)都被视为买入目标,反之亦然。

       值得注意的是,所使用的数据由IB TWS API提供,自 2020 年以来一直收集。由于许多与Matplotlib相关的操作,生成图像需要花费大量时间。

       开盘价定义为CME开盘价,收盘价定义为NYSE收盘价。条形图为 30 分钟条形图。

       看看这个,模型能够检测一天的趋势。提前停止在这里并不重要,因为它确实过度拟合,但保持稳定的指标,总的来说还可以。这很壮观,但显然没有价值。我们不需要说明显而易见的事情,我们知道如何识别当天的趋势(特别是在交易日结束后),我们需要更多。

三、进入正题

       好的,现在让我们尝试构建一些更实用的东西,用于日间交易。假设您有一个优势,一个规则系统,它接收当前市场状态作为输入,并输出建议的行动方向。您应该买入、卖出或等待。这是交易策略最基本的形式。现在让我们通过机器学习模型提供额外的眼睛来促进决策。

4 个感兴趣的目标。

       通过一些历史数据分析,可以模拟您的优势(交易)的结果。本质上,我们有四个类变量(目标)。第一个目标是明确的买入信号,其中 STP(止损)未命中。补充类是相同的买入信号,其中 STP 命中并且我们亏损。在某种程度上,它就像是交易双方(可能)的垃圾邮件检测。卖方也是如此:真正的卖出信号(可能)赚钱,而卖出信号会命中 STP 并亏损(肯定)

       需要注意的是,积极的结果并不意味着我们肯定赚钱了,也不意味着我们没有亏钱。它试图预测的是交易是否没有达到 STP 并肯定亏钱。这是问题的一个非常重要的区别。假设你有优势,总的来说,一旦你采样足够多(交易、做事、实践),你就应该没问题(赚钱)。我们在这里试图做的,本质上就是改善优势本身。由于我们有义务进行每笔交易,因此建模有助于仅筛选出好的交易。

       关于这里介绍的悖论,我想说一下。为了成为持续盈利的交易员,你必须拥有优势像机器人一样进行交易。优势是一种交易系统,通过良好的样本,它肯定能赚钱。心理承受能力和对系统的虔诚遵循是绝大多数人失败的地方。交易系统很难找到,但一旦你连续亏损(你肯定会),就很难不去摆弄/改变你的系统。但话又说回来,我们试图建立一个模型,从本质上改变我们的策略,并允许不时地遵循策略,我们刚才提到,这是成为专业人士的大忌。

       让我详细解释一下。这既是真的也是假的。只要我们不改变系统规则,将系统性自由裁量权引入我们的执行程序是可以的。例如,即使你有进入信号,但几分钟后CPI / GDP / FOMC事件就会到来,那么你绝对应该跳过这个。捐出这笔钱总比在事件前后没有流动性和市场行为混乱的情况下进入要好(只需尝试一次)。我们所做的建模是对何时不进行交易的系统性自由裁量权,因此这是可以接受的,甚至是鼓励的。你不觉得大型机构多年来一直在研究这样的事情吗?

       如果你想了解更多关于如何找到优势的信息,欢迎查看我之前的故事:

  1. 从事日间交易一年后学到的东西——对我第一次尝试的起起落落的非常详细的描述。
  2. 以交易为生—— 又一次详细描述了我第二次尝试的起起落落。

       第一次试验是对所有目标进行一起学习。这个模型显然很差,不实用。

       现在让我们尝试建立一个只针对买方的模型:买还是不买?这将需要两个模型(针对每一方),但由于我们确切地知道我们将要站在哪一方,因此可以区分这两个模型。显然,现在的问题要简单得多。这始终是一个权衡,但我们可以承受。

       性能是可以接受的,但需要提前停止,否则会开始过度拟合。

       现在让我们尝试识别一个(可能)有利可图的卖出信号与一个(肯定)亏损的卖出信号。

       同样,性能是可以接受的,但需要尽早停止。到目前为止,我们有太多噪音和不可靠的模型。

四、改进投入

       关于合成数据的生成很重要。有些市场状态的条数较少(CME 开盘后立即出现买入信号)。其他信号则几乎包含当天所有的柱状图(纽约证券交易所收盘前 1 小时的卖出信号)。显然,生成不同宽度的图像需要进行某种调整(使其保持平方)。因此,我们会计算特定市场状态下的定义范围,并增加额外的列来补偿条数较少的市场。条数多和/或范围小的市场自然会生成类似正方形的图像,有时甚至不需要任何调整。为什么要这样做呢?因为有时手动检查很重要,而且我们更愿意将合成数据保持在统一的类似格式中:正方形、黑色和黑色等。

       另一个关于统计与交易的话题:您可能熟悉两种方法/思想流派/方法论——频率学派和贝叶斯学派。良好的交易需要两者:您需要一流的统计分析来定义风险,并且需要贝叶斯分析来评估您的优势。ATR基于一流的统计数据。Trading in the Zone [Douglas]和著名的 20 笔交易实验是一种一流的贝叶斯分析。交易的阴阳在于平等且适当地使用这两种方法。

       对了,别忘了还有噪音:

  1. 思考,快与慢[卡尼曼]
  2. 随机愚弄:机遇在生活和市场中的隐藏作用 [塔勒布]
  3. 黑天鹅:极不可能事件的影响 [塔勒布]
  4. 噪音:人类判断的缺陷 [Sunstein, Kahneman, Sibony]
  5. 反脆弱:从混乱中获益 [塔勒布]

五、OHLC

       下一步是引入开盘价和收盘价。首先,我们仅使用最高价和最低价的范围,但显然,整个条形图元数据很重要,可能会改善建模。我们引入了实用程序的修改版本来创建图像,这次包含开盘价、最高价、最低价和收盘价。请注意,我们坚持使用黑白彩色图以保持简单。像素矩阵将 1 设置为条形图的尾部,将 2 设置为条形图的主体。目前绿色/红色条形图之间没有区别(但这可能是下一个改进,大声思考)。

       从视觉上来说,使用开放/关闭元数据可以更容易地理解和测试数据,但我们不是要拟合的网络。

       尝试将所有 4 个目标归为一类:过度拟合和不良模型。

       买还是不买:还不错,但是开始过度拟合了。

       卖还是不卖:同样不错,但开始过度拟合。

六、放大

       也许对全天进行快照太过繁琐?也许我们需要的只是最后几个条形图,但需要多少呢?我决定尝试多种方案,从不切实际的 4 个条形图(似乎太少)到最初的想法(截取一天中到目前为止的所有条形图)。

       以 HL 开头的数据集仅使用最高价和最低价创建图像。以 OHLC 开头的数据集使用开盘价、最高价、最低价和收盘价创建图像。差异已在上文说明。现在让我们尝试各种 TPO 计数。TPO 是 Market Profile 术语中的 "时间价格机会"(Time Price Opportunity)的缩写,是单个 30 分钟柱状图的另一个名称。如果不存在 TPO 计数,我们就选取发出买入或卖出信号时的所有可用柱形图。如果存在 TPO 计数,则取最后的柱状数:4、8、12 和 16。基本上,网络现在看到的是当天的全部数据或最近 2、4、6 或 8 小时的数据。

       让我们总结一下所有可能模型的结果。我们首先简单(但不切实际)地识别所有 4 个目标(买入、不买入、卖出和不卖出)。我们继续分别对买方和卖方进行更相关的分类。两者都有两个目标:进行交易或不进行交易。

       显然,取最后几根柱线没有意义,但将所有柱线都提供给网络会增加过度拟合的风险。验证性能并不出色,但可以使用该模型。添加开盘价和收盘价似乎也没有多大帮助。总而言之,这些模型还可以,但到目前为止,我不愿意在我的日间交易中使用它们。即使性能可以接受,也存在太多噪音,而且指标脆弱且不稳定。

       关于机器学习最佳实践的介绍。我并不是Andrej Karpathy团队的一员,但他的讲座让你感觉自己是其中的一员。

       无论如何,我曾经以大数据工程师/数据科学家的身份为多家公司做过大量建模工作。以下是一些建议以及我从艰难经历中学到的东西:

  1. 少即是多。简单的模型很棒,花哨的模型很糟糕。
  2. 特征工程比(简单)模型重要得多。
  3. 数据质量永远不会完美,只要放松,在训练和验证时永远不会出现 0 的对数损失。

七、缩小

       现在让我们尝试缩小范围:为网络提供比必要多得多的输入条。如果信号是在盘中创建的,则前一天的历史很容易访问,并且可以添加到图像中。

       为了保持一致,较宽的图像被压缩为老式的正方形。结果明显更好,特别是对于 OHLC 数据。它最终似乎改善了建模。

       现在,这些是我考虑在日内交易中依赖的模型。虽然标记为它们都过度拟合,但它们的对数损失远低于 0.5 抛硬币截止值,并且准确度在迭代过程中几乎没有变化。此外,我们的准确度水平要高得多,这在训练集和验证集上都得到了再次证实。总而言之,这似乎是可以接受的。

八、市场概况

       现在让我们疯狂起来:让我们构建市场概况的图像,而不仅仅是图表。在某种程度上,到目前为止创建的图像只是条形图。如果仅包含高低范围,则它是一个范围图。如果确实包括开盘价、最高价、最低价和收盘价,则它是一个条形图。在我们的实验中,我们不关心红色和绿色条形图的颜色,因此它不是 100% 条形图。如果您弄乱了条形图的颜色,它实际上是一个条形图。

       现在条形图非常棒,而且要明确的是,我目前确实只依靠 30 分钟条形图来赚钱,但我的秘密武器是市场概况(最初是从 30 分钟条形图构建的)。

       简而言之,市场概况只是将价格分组应用于 30 分钟条形图的原始历史数据。从技术上讲,任何条形图大小都可以,但最初的想法是坚持 30 分钟条形图。非常鼓励您尝试一下。我花了 3 个月手工绘制市场概况,它永远改变了我。首先,我通过这样做找到了我的第一个优势。其次,我可以通过查看任何图表(条形图、线形图等)在脑海中为任何市场构建市场概况。强烈推荐练习。

       市场概况 (POC、价值区域、单张印刷等) 有许多概念和术语,但本文不涉及这些概念和术语。简而言之,我认为您需要关注的只是时钟(当前时间)和单张印刷(尾部)。一旦 CME 开盘或即将收盘,机会就不多了。市场创下当日新高/新低非常有趣,也提供了机会。区间市场非常棘手,交易风险很高。

       现在,我们不用绘制图表,而是构建一个简单的市场概况,并将其转换为图像。需要注意的是,市场概况最初严重依赖字母,每个字母代表一个预定义的 TPO(时间价格机会)。通俗地说,字母代表一天中特定的 30 分钟片段。这取决于个人喜好和/或软件如何为您绘制和定义它。让我们举个例子:以字母“a”开头的市场概况意味着,只要您在市场概况中看到“a”,您就知道这个范围在 CME 开盘后的前 30 分钟内已经交易。相应地,字母“R”显示在纽约证券交易所收盘前最后 30 分钟的市场概况交易活动。不用说,我强烈建议您停止阅读,拿起笔和纸,找出这个例子背后的逻辑。相信我,它会为您带来收益。值得注意的是,在这个例子中,我们的市场概况以小写字母“a”开头,但一些应用程序/实现可能以大写字母“A”开头,只要您坚持并保持一致,这并不重要。

       提供市场概况图像并不引人注目,这里各方面都存在回归。如前所述,包括前一天的数据可能会有所帮助。让我们试试吧。

       经过一些调整后,我能够为多日市场概况构建一个图像。任何交易策略的核心原则都是你依赖某件事并将其与之前的活动进行比较。它总是与背景有关。拿过去 3 个月的数据来做比较可能有些夸张,但仅靠过去 3 个交易日的数据来赚钱的机会也很低。

       关于混合模型的说明。混合总是很有效。如果你添加新的(好的)模型并对结果进行平均,那么你绝对不会降低建模质量。平均方法实际上也不重要。不过,关于这个问题的一个警告是要保持简单。混合太多模型总的来说是低效的,因为它需要更多的时间来协调建模,而且更容易出错。

       终于有了一个不错的模型!指标一路都很好。尽管它被标记为存在过度拟合,但指标非常好,在局部最小值处有轻微的跳跃,但始终保持接近。

九、额外检查

       到目前为止,我们只对E-mini S&P 500期货进行了建模,让我们尝试对其他市场进行建模:E-mini Nasdaq-100E-mini Dow Jones Industrial Average IndexE-mini Russell 2000 Index。在我看来,就流动性(价差/深度)、机会和重要性而言,这些都是最佳的交易市场。流动性由许多参数定义,但紧密的价差和深度买卖是关键因素。机会是一个主观衡量标准,但这些市场的交易量不会说谎,而且盘中波动非常剧烈。最后,重要性再次是一个主观衡量标准,但这些指数涵盖了您所知道的任何公司。如果有人参与其中,则会真正反映出坏消息/好消息。请记住,任何金融专业人士/顾问/大师/选股者通常只是一个害怕的脆弱者,没有金钱/风险,特别是如果他们毕生致力于与他人分享他的观点。你能想象保罗·都铎·琼斯在 X 上分享他的买入/卖出信号吗?你明白了。

       不幸的是,进行模拟和创建图像的速度突然变得非常慢。由于现在我们需要 4 个市场的 OHLC 和市场概况图像,因此批处理时间从几分钟变成了几个小时。显然,如果最初为整个数据存储创建数据,那么我们可以每周一次逐步添加新图像,但存储就会成为一个问题。正如计算机科学中一贯的做法一样,空间和时间之间存在权衡。使用更多内存或存储空间可以更快地完成某些事情,反之亦然。这是一门艺术,远远超出了人们的想象或知识。

       现在有更多的数据和目录,让我们进行一些整理。顶级目录“ML”包含每个市场“ES”、“NQ”等的目录。每个市场目录(例如“ES”)包含每种图像类型的两个目录:OHLC(开盘价、最高价、最低价和收盘价条形图)与 MP(市场概况)。每种类型的图像目录(例如“OHLC”)包含交易“买入”与“卖出”的可能入场方。最后,每个入场方目录(例如“买入”)都包含我们非常感兴趣的是/否问题的数据:交易还是不交易优势?

       借助tf.keras.utils.image_dataset_from_directory函数,我们可以轻松提供所需的目标并构建单独的模型。例如,通过市场概况图像提供“…/ML/ES/MP/Buy/”以在买方 ES 中为传入交易构建模型。此外,我们可以轻松地手动检查数据,以防万一。

       关于花哨的数据格式和高效存储图像,我们想说几句。尽管MNIST使用了一些复杂的编码和自定义格式来提高效率,但我们仍保持其原始状态。同样,这一切都是为了那一天(新闻/疯狂的飙升/美联储公告等),我们必须放大并彻底检查,因为那一天要么是辉煌的一天,要么是糟糕的一天(就损益而言)。

十、总决赛

    

通过 OHLC 和 MP 图像获取四大股票指数期货的结果。太棒了!看起来很棒,也很实用。混合模型肯定会进一步提高建模质量。

十一、一分钟棒

       因此,我们得到了一些不错的指标和良好的模型。上述示例都依赖于 30 分钟的条形图,但我的一个优势实际上是在 1 分钟图表上进行剥头皮交易。我在想,是否有可能对更小的时间范围进行建模?让我们试一试。

       我立即意识到我的本地机器不行。我决定使用我的备用AWS交易机器 (t3a.medium)。生成 1 分钟条形图的图像需要 24 小时才能完成 1 年的模拟。我停止了它,因为它花费了太多时间,而且我们已经有超过 150K 个图像,这对于概念验证来说已经足够了。

       现在,每个周期需要半个多小时才能过去。机器很滞后,感觉很重,我只为 OHLC 做了两个模型。指标很糟糕,没有理由继续这项工作。

       显然,如果我们被迫这样做,我们可以使用更强大的机器,GPUTPU等。总而言之,这是不切实际的,这就是我一开始就放弃它的原因。作为交易员,我们知道要迅速止损,我也是一样。

十二、实时交易实验

       交易是纯粹的精英统治。你捕猎什么就吃什么,政治无济于事。技能必不可少,但勇气和精神耐力有时更为重要。

       做没有切身利益的研究是没有意义的。我可以做无数次实验,向你展示结果的好坏,但这毫无价值。

       交易的关键在于样本量。做一笔大交易,你就可以称自己为交易员了,对吧?不幸的是,这需要的样本量要大得多。我不记得有多少次我持有一笔大额利润,但最后却破产了,最终成为亏损者。我也记不清有多少次交易接近我已确定为必输的止损水平,最终却获利并达到我的止盈水平。你懂的。众所周知,利润在这个行业中就像鳗鱼一样。

       金钱时间,算法和理论已经足够了,这些都很好,但我在这里不是在做慈善。账单和税款必须支付,必须为未雨绸缪而存钱。这是我经营的生意,一切都与博弈论有关。除非能带来回报,否则没有理由进行彻底的研究。

       受到《交易区交易》(道格拉斯)的启发,我评估交易表现的唯一方法是将 20 笔交易分组。交易数量越多越好,但 20 笔是绝对最低限度。低于 20 笔的交易都只是噪音。现在让我们交易 20 笔新的传入边/交易,并使用我们花哨的决策支持系统。问题是,如果我使用这个模型严格过滤传入交易,我的损益是否会改善?

       我放大到迄今为止最赚钱的市场:ES 和 YM。这两个市场都应用了同样的想法。交易是通过 30 分钟的条形图进行的,通常需要几分钟才能进入/退出交易,因此添加实时机器学习预测并不是什么大问题(不着急)。

十三、解释

       既然我们现在有一系列带有精美机器学习预测的交易,让我们决定如何解释它们。有很多正确的方法,它不是确定性的。我们对每笔交易都有两个预测:基于 OHLC(开盘价、最高价、最低价和收盘价)图表的预测和基于 MP(市场概况)图表的预测。每个预测都由类别名称(Y — 是 / N — 否)和概率(范围为 [50, 100])组成。我决定通过将预测分为 3 组来简化预测。

       这 3 组(场景)分别是:

  1. Y — 进行交易。
  2. N ——不进行交易。
  3. A — 模糊性,OHLC 和 MP 的预测结果不一,因此在某种程度上类似于不进行交易。

       显然,我们可以对两个预测的概率和多种组合添加一些分位数分析,但正如前面提到的,少即是多。

十四、成果

       不幸的是,就像市场上的大多数交易理念和事物一样,它比看上去要困难得多。经过适当的采样(交易)后,似乎所有这些花哨的技术和设置都毫无价值!

       该系统对 DSS 的任何结果都基本满意。我们原本以为“N”标签会明确表示交易不佳,但它们却是盈利的。正如预期的那样,应该避免使用“A”标签,而且它们的损益确实很差。

       尝试使用各种截止阈值进行 DSS 聚类也没有改善结果。明确区分 OHLC 与 MP 也无济于事。它们要么在一起很好,要么在一起很差(就总损益而言)。

       在同一样本和同一时期,我进行的另一项研究采用了一种简单的基于树的方法。这里也没有取得惊人的成果。所有标签都能赚钱,因此不使用信号或使用它根本没有意义。

       总而言之,一方面,实验最终以失败告终,另一方面,这也是一次伟大的教育、反复试验的旅程。

       失败的可能原因:

  1. 维度灾难——数据太多,我们无法全部处理。如果你是机构交易员,并且有资源,你可能会获得更好的表现。
  2. 季节性——市场具有极端的季节性效应,数据始终随随机波动而变化(异方差性)。对猫进行分类和对市场进行快照之间存在巨大差异。猫就是猫,在市场上,猫本质上可以有角。
  3. 人为错误 — 有些内容可能未正确对齐、优化或以平庸的方式编写。无论您多么有经验,或者 linters 有多好,有些错误都很难检测到,尤其是在 ML 中。

无论如何,这是一次非常有趣的学习经历。

十五、第二次

       我原本想就此结束这个故事。实验已经完成,样本量足够好,但结果很糟糕。我突然决定再试一次。我花了好几个月的时间来开发和测试这个基础设施,尽管结果很糟糕,但我还是想继续测试它。我不愿意放弃它。

       因此,我决定改变我的建模设置。首先,我降低了自定义回调的最小准确度阈值。要求阈值为 0.95 突然看起来太紧了,而 0.8 更好,因为可以保证快速收敛,并且本质上我们要求尽早停止以避免过度拟合。

       然后我将图像大小从 200 缩小到 32。这些变化要求闪电般的速度和更小的模型(~1GiB vs. ~500MiB)。最后,我停止提供训练数据作为验证数据。一开始是为了对模型的性能进行某种反馈。但在查看了真正的样本外实验的统计数据后,现在很明显,在这个业务中验证是无用的。唯一真正的验证是样本外实验。不用说,它进一步缩短了运行时间。

       现在让我们用新的设置进行交易(样本),看看是否能得到更好的结果。

       修改后的神经网络也没有提高性能。事实上,它的表现更糟了。是的类别有负的损益,而否的类别有正的损益。这很尴尬,应该恰恰相反。

       并获得简单的基于树的方法。请注意,所有错误类别(无论概率截止值如何)的总损益为负,而真实类别的总损益为正。还请注意,绝大多数交易都是亏损的(这在该行业很常见),但简单的 ML 能够过滤出好的交易(这正是我们正在寻找的)。

       KISS(保持简单,愚蠢)在这个行业中非常重要。不幸的是,经过这么多花哨的试验和错误,显然简单的 ML 建模要好得多。整个实验中被忽视的另一个考虑因素是实时预测时间。与 LightGBM 相比,TensorFlow 的 Python 模块导入和预测时间要长得多。在实践中,两种建模流程的预测时间通常不少于 6 秒。将建模简化为基于树的方法只能将这些时间缩短一半。值得注意的是,加载(导入)时间比预测时间长得多(两种方法的预测时间都少于一秒)。

十六、总结分享

       一路走来,我们得到了一些值得回味的深刻见解。让我们总结一下最重要的一些。

  1. 更多数据是好事:加上昨日的价格有了重大突破。
  2. 使用所有四个历史数据向量:开盘价、最高价、最低价和收盘价可以改进建模。
  3. NQ 的价格范围很大,并且通常比其他市场花费更多的时间(迭代)来创建图像,但其性能也略好一些(权衡)。
  4. 这些实验的样本量本质上很小。我从 2017 年开始从事这个行业,并仅用 3 年的数据存储开始进行机器学习建模,这还不够。我可能只是被随机性愚弄了。
  5. 交易是一项艰难的事业。需要花费数年时间才能培养优势。需要花费数年时间才能提高优势。学习永无止境。


文内容仅仅是技术探讨和学习,并不构成任何投资建议。

转发请注明原作者和出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老余捞鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值