使用人工智能预测股价(使用Python的深度学习)。

2019-03-13 記
话题。: IT業界

数值计算平台,同时也可以进行人工智能的MatLab,面向个人用户。
https://jp.mathworks.com/pricing-licensing.html?intendeduse=home&prodcode=ML&fbclid=IwAR0zonp3Hw92OG7K7gv_xNsfmUuq993uUwimw8D2P2FoUafKSbjT08mQ5fI
我没有注意到它竟然以这么便宜的价格出售... 如果我早点知道就好了...
不知什么时候出现了Home版本。以前只有十几万日元的版本,所以个人用户只能使用免费的“R”等软件。
如果这个软件只要1.6万日元就能使用,那真是太棒了,大家肯定会选择它。
虽然深入研究这个领域非常困难,但似乎可以免费试用30天,所以我想先用它来做一些简单的股票分析,以确认一下它的易用性。

■拟合
我运行了一个很久以前制作的学习用示例,结果可以直接运行。真不错。
因为不太记得了,所以要重新学习一下。
我记得这是对带有噪声的周期函数执行“拟合”函数,进行“类推”处理,然后显示图形。
点是原始数据,波形是类推得到的图形。
通过对已知答案进行拟合,可以确认方法的正确性。

■人口统计
以前我为了学习而制作的示例。从人口统计数据中,大致预测未来并进行图表显示。

■股价近似
我尝试用简单的图表对在网上找到的半年股价数据进行近似和预测,但显然,我只是花了一个小时左右的时间玩了一下,结果完全没有用处。我觉得我需要再好好学习一下。如果有什么好的“理论”就好了。虽然这样玩挺有趣的,但如果能真正派上用场就更好了。
蓝色点:实际股价。
红色线:近似的图表。
数据:6754 安利茨株式会社。

我已经玩了几个小时。
■ 蓝色点:实际的过去股价。
■ 红色线:过去股价的近似图(左侧)和未来预测图(右侧)。 假设只使用蓝色点的数据来进行未来预测。
■ 黄色:未来股价的答案。
如果未来的红色图与黄色圆点一致,则说明预测是准确的,但显然不可能一开始就完全一致。 因为原始数据存在数学上不正常的(异常)波动,所以近似的图也会出现奇怪的“胡须”,从而造成干扰。
如果能这么容易地预测股价,那就太厉害了... 这个领域非常困难,但如果只是为了娱乐,这个主题的难度很高,而且很有趣。 也许,如果真的出现了一些有用的东西(虽然可能性很小),那也是可以使用的。
总之,至少对于今天的下午的娱乐和学习来说,这是一个很好的素材。
数据:6754 安利茨株式会社。

逐渐出现了一些可以用于股票分析的图表。
■右侧的紫色图表:预测股价
■右侧的黄色圆圈:实际的未来股价
感觉它们有些相似。
虽然精度会因参数的不同而有所差异,但与之前相比,效果已经好多了。
如果只是简单地制作出这样的图表,并且能达到这样的精度,那应该算是不错的吧。
我有一段时间没有使用数学了,所以忘记了很多东西,但通过尝试和摸索,我逐渐记起来了一些。
不过,我仍然不理解生成这些图表的“高斯过程回归”这种数学公式。
这并不是因为我有多厉害,而是因为MatLab的文档非常完善。
虽然即使不理解,也能得到结果,但为了应用它,我可能还需要重新学习一些数学。
如果一切顺利,我可能会考虑用它做一个股票预测的网站。(笑)

我不知道是否真的会认真去做,但为了让Google更快地识别,我简单地创建了一个股票分析网站的首页。这类事情通常需要几个月甚至几年的时间,所以最好先创建一个网站。 意外地,我找到了一些比较短的可用域名并注册了。
AI股票预测 - https://kabu2u.com
https://kabu2u.com

■AI的LSTM(长短期记忆网络)
我尝试了LSTM。
MATLAB太厉害了。(虽然我还没有完全理解其中的数学内容) 它可以轻松地创建出这样的东西。(我没有在Python中尝试过,所以无法进行比较)
我现在刚从瑜伽回来,原本想在睡觉前的30分钟里快速地研究一下并进行实验,但MATLAB让我毫不犹豫地快速创建了它,真是太棒了。
这个LSTM是用于进行深度学习的。 也就是所谓的AI,但它不是像漫画中的阿童木那样厉害的AI,而实际上是这种机器学习。
代码是从示例中直接复制过来的,但每次运行,学习结果都会不同,有时会得到一个聪明的AI,有时会得到一个愚蠢的AI。 这个附带的图像看起来表现不错。 背景是学习过程中出现的画面,前方的图表中的“Forecast”部分是预测结果。 它与实际的图表非常相似,真是太厉害了。 毕竟,有时也会得到一个愚蠢的AI,结果的不稳定性也是深度学习的优点和缺点。 当得到一个好的AI时,可能会让我感到非常惊讶。 我可能会在明天之后详细地看看里面在做什么。

我尝试用前半部分的数据来预测后半部分。
果然,最后部分的误差很大,但连接的部分的精度相当高。
人工智能太厉害了...
我觉得,人类可能无法胜过它。

前几天只使用了1个数据(仅收盘价)进行学习,所以我尝试使用包括开盘价、最高价、最低价、收盘价和成交量的组合进行深度学习,但效果并没有太大变化…… 也许是我在某个地方犯了错误,因为我并没有完全理解。 我虽然理解深度学习的基础理论,但尝试理解像LSTM(长短期记忆网络)这样复杂的算法,感觉头会爆炸。

我听说过,深度学习需要大量的CPU算力,所以可能需要购买一些硬件芯片。 现在我使用的是笔记本电脑,所以我会看看是否有可以连接到USB的芯片…… 因为无法安装显卡。

呵呵。我的半吊子AI君说,1332 N的股价目前在812左右,可能会横盘一段时间。如图右上方的红色部分。两周后的预测股价是822,只上涨了1%。也就是说,这里不是买入的时机。如果现在持有,可能需要暂时卖出,换成现金。(请不要相信。我只是在开玩笑。我只是在做个爱好,我的AI小可爱刚出生。如果有人相信并购买,我会很困扰,并且不承担任何责任。)

自昨天开始,扫描东京证券交易所所有股票。使用Mac的笔记本电脑,Intel Core i7处理器,分析过去360天(最长)的数据,每只股票大约需要1分钟。目前已经完成了1200只,还剩下2400只。根据统计,大约有10只股票可能上涨最多10%。人工智能判断,大约每100只股票中只有1只会上涨。但是,人工智能的预测会有偏差,因此即使是同一只股票,多次运行也可能得到不同的预测结果,所以需要进一步筛选。虽然我还没有完全信任人工智能,不能仅仅根据结果进行机械买入,但它确实能发现一些意想不到的股票,而且我自己不可能检查东京证券交易所的所有股票,所以可以将其用于筛选。从3600只股票的目标中,首先筛选出30只左右的候选股票,然后进一步筛选,最终缩小到10只以下,这样可能是一个不错的策略。

使用人工智能进行外汇(FX)分析。但是,它分别分析每种货币,因此尚不清楚其是否有用。目前,我只是观察一下。毕竟,外汇交易很难……

在家里的电脑上运行人工智能股票分析(需要较长时间),下午去高尾山。今天早上为止,筛选出来的上升预期最高的股票表现还算不错(但没有买入),但仍然存在波动。或许可以尝试一种方法,即全部买入一个交易单位,然后迅速卖出下跌的股票,只保留上涨的股票。但最终哪只股票会上涨,谁也无法确定。

抽签结果是“吉。虽然到目前为止经历了很多困难,但终于时运到来,不再有令人担忧的事情,并且事物也将成功的时候。”
希望应验吧。

过去一周,我尝试性地购买了一些由人工智能筛选出的股票。
人工智能预测后,我将股票数量缩小到30多个,然后我自己进行检查,最终选出了大约10只股票进行购买。
由于上周市场整体表现良好,这些股票表现出“整体上具有较强的抗跌性,价格不太下跌。部分股票有所上涨”,结果还算不错。虽然没有出现暴涨,但至少没有亏损,总的来说,一周上涨了几个百分点。作为一项实验,结果还算不错。
不过,今天(星期一),东京股市受到纽约市场的拖累而暴跌,部分股票也受到了影响,价格回到了原位。果然,即使是人工智能,也会受到暴跌的影响……市场整体表现比个股更强,这是理所当然的。
目前,我只对个股进行人工智能分析,没有告知人工智能与纽约市场的相关性。我认为,在人工智能中也需要加入这些信息。
与其说是让它记住相关性,不如让它单独预测纽约市场,如果预测到晚上会下跌,可以提前稍微减少持仓,或许也是一种应对方法。
(这张图片与我购买的股票无关)

■Google TPU
虽然写着预计交货时间为3周,但实际上大约10天就到了。出乎意料地快。
由于在Matlab中无法使用,稍后可能用Python来尝试一下。

■首次尝试Python
因为是第一次使用Python,所以我尝试读取已经在Matlab中分析过的数据,并将其显示为图表。它有可能成为Matlab的替代品。也许我不需要购买Matlab了?如果我能在Matlab的试用期内迁移到Python,我可能不会购买。但是,Matlab用起来很方便,所以我在考虑是否要购买。它不仅可以用于AI,还可以用于其他用途。只有Python可以使用Google的AI芯片,而Matlab无法使用,所以无论如何,迁移到Python都是必须的。
Python有一些在其他语言中很少见到的奇怪的语法,或者说是一种语言的特性,让人觉得有趣,但也有些微妙。但是,由于它可以使用数组,所以这种奇怪语法的缺点似乎被消除了。总之,这可能只是需要习惯的问题。
接下来,我需要替换主要的AI部分,但那部分还没有开始。

最近,我用Python实现了在Matlab中也做过的高斯过程回归(Gaussian Process, GP)分析。在Matlab时,我忽略了参数的影响,但这次发现结果会因参数而有很大差异,所以暂时使用了最简单的参数。这并不是重点,重点是人工智能。虽然我已经使用了几天,但逐渐习惯了Python。

难点在于,与Matlab相比,Python的执行速度较慢,进行分析需要等待几秒钟。果然,Matlab很优秀。虽然Python通常被认为很慢,但既然我购买了AI芯片,应该可以使AI分析速度很快,所以用Python也没问题。由于芯片是专门用于AI的,所以其他处理速度较慢是不可避免的。

■TensorFlow
今天,我尝试使用TensorFlow 2 + Python 3来实现人工智能,但网络上的信息大多是TensorFlow 1的,TensorFlow 2的示例很少,经过反复尝试,我勉强做到了原型阶段,但输出的值感觉很奇怪,得不到正确的答案。使用Matlab时,我可以在一天内轻松完成,但这个可能需要更多时间。果然,Matlab作为产品,用起来很方便。我也逐渐习惯了Python,感觉应该可以解决问题,但每个库都有自己的规则和转换,这很麻烦。
另外,我购买的Google AI专用TPU芯片似乎最好与Raspberry Pi一起使用,所以我正在重新设置之前购买但一直闲置的Raspberry Pi。它似乎会以意想不到的方式发挥作用。我之前没有给Raspberry Pi买外壳,因为打算长期使用,所以现在购买了一个。最初,我重新开机时,它竟然无法启动,我试图拔出Micro SD卡,结果卡片断裂了,所以需要重新购买。操作系统也需要重新设置。虽然很麻烦,但没办法。

■股东的损益模拟
简单地模拟并图示股东的损益。
上方的图表是实际股价变动和近似公式。中间的图表是这次新增的,0以上为盈利,以下为亏损。图表在0以上表示平均而言所有股东都盈利,在0以下表示平均而言亏损。由于不知道是谁买卖的,所以假设平均而言所有股东都在交易。即使是这样的假设,也意外地得到了比较符合实际的图表。如果图表在0以下,可以理解为大家都在亏损,在0以上可以理解为大家都在盈利。
通过这个图表,可以看出2018年11月左右股价下跌,导致亏损的人增多,现在情况已经稳定。但是,这并不能说明现在是否应该购买。反而,这种图表可能作为一种“不应该购买”的指标发挥作用。2018年4月,股价没有太大波动,但由于反弹,有人获得了利润,除此之外,大部分都是亏损。
这只是模拟,而不是人工智能或机器学习。但是,这种简单的模拟可能在某些方面发挥作用。

■ 股东的潜在收益模拟
进一步分析。模拟股东的潜在收益,并以图表形式显示。逐渐变得越来越像样子了。

在这个新的图表中,例如,可以发现以下几点:
■ 股价上涨了好几倍,但到最后,(所有股东的平均)潜在收益意外地没有太大增长(①处)。
■ 在最后一次股价暴跌时(②处),潜在收益似乎并没有减少很多(③处)。这表明,可能有人在上方进行了稳健的盈利了结。
■ 在最后一次股价暴跌时,成交量增加(④处),同时潜在收益也在增加(⑤处)。这意味着,可能是大户在捕捉到被散户抛售的股票,然后通过反弹获得利润。
现在可以看到以前看不到的东西。分析真是太有趣了。

这次分析这只股票。
虽然这家公司在新闻中引起了很大的轰动,但股价却大幅下跌(1)。
股价下跌的同时,未实现利润(估计)也在不断下降(2)。
最后触底反弹(3)。
虽然反弹会增加未实现利润(4),但另一方面,如果股东的盈亏为负(5,低于中央红线即为负),那么可以推断,虽然在最后一次反弹时,未实现利润暂时增加,但很多人最终没有获利,而是选择止损。
这只是基于模拟的推测。
虽然这只股票可能并不能代表所有情况,但它可能暗示着“即使是狙击反弹,也有更高的可能性会亏损”。
从这个图表可以看出,即使反弹,大多数股东也会亏损。
从目前来看,对于股价下跌的股票,如果想进行反弹狙击,最好不要轻易尝试。
<请注意,这只是我个人的解读,与普遍的解读可能存在很大差异。我不是一个擅长股票的人。>
■移动平均线
增加了根据移动平均线(9日、25日、75日)上下状态产生的买卖信号。
这是直接实现了“移动平均线 终极解读・使用方法”这本书里记载的算法。
信号上方区域的颜色表示以下含义:
・深红色:强烈的买入信号
・深绿色:强烈的卖出信号
中间颜色表示介于两者之间。

虽然是教科书上的内容,但如果信号出现后立即按照其指示进行操作,应该能获得一定的利润。
基本面非常重要。

■MACD
显示MACD(MACD本身 + MACD的平均 + 直方图),这是分析中的常用指标。此外,还用标签显示当前的阶段。为了显示阶段何时发生变化,还添加了线条。

■RCI
添加了一个名为RCI的股票指标。普通的RCI只有短期线和长期线的两条线,但为了更易于观察,我添加了一个类似于MACD信号的直方图(RCI区域内的绿色柱状图)。 感觉这个功能非常好,但普通的股票工具中几乎没有这种显示。
此外,为了避免同时查看RCI和MACD的麻烦,当两者都为正时,会在其间显示一个红色标记,当两者都为负时,显示一个绿色标记,以便更清晰地显示信号。
通过这种方式,可以比较移动平均线的信号(RCI上方)和这次添加的信号(RCI和MACD之间的信号)之间的差异,这很有趣。
这表明长期分析和短期分析可能会出现差异。 感觉这次添加的信号还算实用。

■短期价格变动图表
从原始股价中减去移动平均线(趋势)的值,只显示短期价格变动。这样可以减少受到趋势的干扰,更容易观察到短期价格变动。
(移动平均线的周期会影响图表,因此尽可能自动判断并显示大致水平排列的数值。)
例如,这是从原始股价中减去89日移动平均线数值的差值图表。
最初是为了进行时间序列分析,但分析结果显示没有明显的周期性特征,所以只是显示了分析过程中生成的图表。这个图表本身可能很有用。

■唐山策略规则
将被称为“唐山策略”的“如果超过四周内的最高价就买入,低于四周内的最低价就卖出”进行可视化,并且实际修改为,如果最终日收盘价超过阈值,则显示标签。这样就变得非常容易查看了。
虽然已经制定了很多规则,但是如果不验证哪些规则真正有效,可能会出现过多的信号,反而变得难以使用。
也许以后会进行模拟验证。

■模拟
通过模拟,如果以当天的收盘价买入,然后显示是先达到5%的涨幅还是跌幅,并用红色/绿色表示。
这样,可以更容易地判断“在哪里买比较好”和“在哪里卖比较好”的参考标准。
似乎RCI的直方图(柱状图)是否出现突起可以作为信号。
顺便说一下,最近一直在关注的这家公司。这家公司是收购了所有女性都知晓的某美容院,并且以曾经的3D图形LSI业务为起家的公司,虽然知道的人可能不多,但股价非常奇怪。虽然销售额为500亿日元,但营业额为亏损,市值为34亿日元。即使是亏损,现金流也大幅为正,而且虽然“商誉”在未来5年内会计上会造成负担,但预计很快就会结束,未来似乎会上升。如果销售额达到500亿日元,营业额恢复到盈利50亿日元,市值为34亿日元是绝对不可能的,至少会上升到盈利的数值,通常应该与销售额相当,所以上限可能是市值为500亿日元,这可能是一个非常具有潜力的股票。即使没有达到那么高,如果能看到盈利的迹象,也值得期待翻倍。当然,也有可能通过大户的操纵进一步大幅下跌。因为股价已经很奇怪了,所以即使从现在开始再跌一半,也不会感到惊讶。实际上,从3月末开始一直在关注,并且多次买入/卖出,但3月末为了获得“美容券”而进行的下跌非常严重(苦笑),而且之后,大户的抛售导致股价一下子下跌了1成。虽然可能还会从现在开始下跌,但下个月就是本期财报,而且美容院是夏季才最受女性欢迎的行业(因为需要露出皮肤,所以会想去美容院)。从现在开始的半年,这家公司会很有趣。
→ 结果,后来调查发现,似乎销售额是会计上的虚假数据。业绩有些可疑。

■ 达到与Matlab相当的水平
使用Python + TensorFlow(版本2)实现AI(深度学习),与在Matlab中进行的操作几乎相同。
在图表中,右中央的绿色点是AI预测的未来股价。Matlab和结果比较相似,所以基本原理是一样的。
最初,因为不熟悉TensorFlow(版本2)特有的编写方式,所以创建起来比较困难,但在找到示例后,就可以顺利地创建了。目前还没有使用Google TPU芯片,在Mac的CPU上运行速度确实很慢,不知道使用Google TPU芯片可以提高多少速度。 稍后会再讲。
虽然只是这样简单的东西,但这样我也算是加入了AI工程师的行列了吗(苦笑)。

■外汇
我对其进行了改造,使其也考虑外汇(美元)。到昨天为止,它只预测相关股票的价格(一个变量),但现在它预测股票价格和美元外汇(两个变量)。
但是,从表面上看,结果似乎并没有太大变化…… 似乎需要进行验证。 也许它们之间没有太大的相关性。 也许在东京证券交易所第一部的蓝筹股中可能存在相关性。 我想再加入一些其他的因素。

接下来,我们用三个变量进行分析:“股价”、“成交量”、“美元外汇(FX)”。
因为我们已经可以将一个变量改造为两个变量,所以将它扩展到三个变量非常简单。
嗯,外观上并没有太大变化。
精度怎么样呢?
也许应该加入纽约道琼斯指数之类的指标吗?



■Google TPU 不支持 LSTM
我尝试在 Raspberry Pi 上运行 Google TPU 芯片(USB),但发现它不支持我想要使用的 LSTM(RNN),只支持分类等功能。感觉很无奈,但总算学到了一些东西,所以也就这样吧。果然,芯片便宜就是有原因的。 即使是这样半途而废的东西,Google 也能卖出去,真是厉害。 看起来对于某些特定用途,比如动态识别,还是不错的。

・ 仅仅是安装 TensorFlow 的库,就经常要等待 30 分钟或 1 小时。 Raspberry Pi 实在是太慢了。
・ 默认情况下是 TensorFlow Ver1 系列,Ver2 需要从源代码构建。 我尝试搭建构建环境,但构建 Bazel 这个工具竟然花费了 24 小时以上,而且最终发现 Bazel 的最新版本不受支持,所以不得不重新构建旧版本的 Bazel,真是白费力气。 即使这样,TensorFlow Ver2 仍然无法正常工作。 真是无奈。 因为在 Raspberry Pi 的标准操作系统上失败了,所以我尝试更换为 Ubuntu,结果仍然是相同的。 虽然是白费力气,但我又恢复回了原来的操作系统。
・ 由于 Raspberry Pi 的 CPU 是 Arm 架构,所以无法直接运行 Google TPU 上默认提供的库和 Docker,只能使用 Raspberry Pi 专用的版本,这很不方便。
・ 操作系统默认的 Python 是 Ver3.5,所以我首先从源代码构建了 Ver3.7,但发现 TensorFlow 不支持,所以又安装了 Ver3.6,但效果并不明显,所以又恢复回了默认的 Ver3.5。
・ 我以为是库的问题,所以尝试从源代码构建了一些库,但仍然无法运行。
・ 最终,我得出结论,使用 Keras 访问 TensorFlow 时,Ver1 和 Ver2 的版本差异不大。 我在 Mac 上确认了这一点,无论使用哪个版本都可以正常工作。
・ Google TPU 本身不支持“从零开始的训练”,只支持“再训练”。 也就是说,需要在 CPU 上创建模型,然后进行特殊的转换,然后在云端的页面上进行进一步的转换,才能使用。 但是,我发现这个转换不支持我想要使用的 LSTM/RNN。 真是无奈。

是购买一套便宜的 PC 和 NVIDIA 的 GPU,还是在现有的 PC 上忍受?

■AI股票分析网站创建
https://kabu2u.com
https://kabu2u.com
虽然很简单,但更新了股票AI分析网站。将波动性较高的股票逐渐添加到网站上。
我还不确定应该以多大的细节程度来展示,所以暂时只发布分析后2周的旧数据。
暂时不发布未来预测,因为如果发布了未来预测而收到投诉会很麻烦。
将来如果精度提高,或许可以考虑将未来预测作为付费服务。
无论如何,目前的精度还不够高,所以从这个程度开始是个不错的选择。

■艾略特波浪分析
正在尝试艾略特波浪分析。(什么是艾略特波浪,请自行搜索)
最初尝试根据实际波形判断是第几波,但难度很大,所以改变了方向。
我打算模拟艾略特波浪,让AI记住模拟结果,然后再进行预测。
首先,在左上方的图表中,我交替地对斐波那契数列进行加减运算并进行图形显示,但如果直接显示,会出现负值(股票价格不可能为负),所以为了使整体变为正值,我将其线性地抬高,如图形所示。嗯,感觉有点不一样。
不仅是线性抬高,而是使用二次曲线抬高,如图所示。这感觉还不错,但又感觉有点不一样。
不过,实际的股票价格也经常出现难以理解的波动,所以也许这个程度就足够了。
总之,我绘制了图形,然后基于此创建了虚假的股票价格,并进行AI分析。
生成的图形如图所示。
虽然我已经让AI学习了这些,但实际使用时能达到什么样的精度,还需要进一步观察。



■用于AI解析的专用PC构建
我在笔记本电脑(副用电脑)上安装了Ubuntu Linux。原本安装的是Windows,但是如果一直运行AI解析,每隔几个小时就会出现卡顿,导致解析停滞,所以不得不安装了Linux Ubuntu,结果非常流畅。似乎已经到Linux的舒适度超过Windows的时代了。最近的Windows不稳定且速度慢,感觉自己正在自寻烦恼。由于需要使用WORD/Excel,所以还是需要Windows,但除此之外,Windows可能已经不再是必需品了。如果现在构建的话,如果以Web化为基础,并且不需要Word/Excel/PowerPoint,那么可能就不需要Windows了。我基本上喜欢Microsoft,但是最近的Windows的不稳定性确实让人苦恼。在Linux上运行速度也更快。Google TPU芯片(USB)也能正常使用。

■作为特征量提取并进行分析
正在提取人们可能意识到的范围作为特征量,并进行分析。虽然是依赖于具体股票,但有时也能获得相当好的精度。
深度学习本质上是模仿大脑神经元的运作方式,因此,通过事先将特征量分解作为输入,可以提高精度,这在逻辑上是合理的。但是,如果过于专注于特定的特征量,那么在与该特征量无关的股票中,精度可能会大幅下降。股票分析本身就是一项困难的任务,也许我们应该认为,只要有可用的条件就足够好了。
如果该特征量是有意义的,那么在深度学习过程中,误差会逐渐减少并最终收敛。但是,如果很难收敛,那么可能是特征量的数值存在错误,或者,该特征量本身可能没有意义(!)。这种发现非常新颖,深度学习可能正在揭示在股票世界中被普遍认为是“理所当然”的理论实际上可能没有意义。例如,有人说短期移动平均线和长期移动平均线的金叉是买入时机,而MACD的金叉也是类似的想法,但实际上,那里可能没有意义(!),这就是“或许”的深度学习分析结果。后续内容明天再看。

■跟随趋势
由于技术分析的精度似乎不太好,所以我尝试构建了一个AI,其思路是简单地跟随趋势。这样一来,对于突然下跌或上涨的情况,就难以应对,但就跟随趋势而言,我得到了比以往更好的结果,所以我觉得这还不错。粗红线是AI的预测。也许,因为它是机器,所以这种用法反而更合适。对于人类来说,跟随趋势可能会感到厌倦,但只要让机器默默地进行这项工作就可以了。

在技术分析中,我尝试对输入值进行加工,并进行各种尝试,但这种跟随趋势的方法,在算法上非常简单。但是,如果参数的组合不合适,就无法正常运行,所以,虽然算法很简单,但找到最佳参数非常困难,这可能正是深度学习所擅长的领域。

■AI股票价格预测网站,初期版本
AI股票价格预测 - https://kabu2u.com
https://kabu2u.com
初期版本完成。虽然还可以改进模型,或者使用更多的计算资源进行更深入的分析,但考虑到成本效益,目前这个版本可以作为一个初步的完成标准。虽然有很多想法可以继续尝试,但目前为止,这已经算是一个不错的成果了。从3月中旬开始使用Matlab,然后迁移到Python+Tensorflow,在两个半月的时间里完成了这个版本。其中一个月用于各种实验,剩下的半个月用于网站的开发和各种改造。虽然精度还有待提高,但目前的分析是优先考虑速度,所以会在过程中停止,接下来会逐步提高精度。如果精度不够,可以考虑使用更大的模型,这些需要耗费大量时间,但会逐步进行。目前,由于显示过于简单,计划逐步增加一些功能。

■添加支撑线
为了方便用户,添加了支撑线的显示,假设用户在预测日后的第二天以开盘价购买股票。这样可以使界面更易于阅读。

■蜡烛图
将收盘价的折线图更改为普通的蜡烛图。果然,只有这样才显得像蜡烛图。



■ 空头交易
我尝试加入了空头交易。如果能做到这一点,我本应该赚更多,但可能因为无法进行机械交易,而是掺杂了感情,所以成绩不太好……

■ 算法回顾
回顾了空头交易的算法。在主页上发布了所有股票的空头交易结果。

■ 使用“完美订单”的空头交易
我尝试根据短期、中期和长期线,使用俗称“完美订单”的条件进行空头交易,结果不太好。这可能是因为当前的市场环境不好,或者,就像技术分析一样,可能只是事后找借口,也许只是一个都市传说。
盈亏平均 +0.5%,累计 +0.6%。

■ 算法比较
模拟比较了两种算法:一种是当人工智能预测上涨后,如果次日的开盘价比前一天的收盘价低几个百分点时买入的算法,另一种是当次日的开盘价不低于前一天的收盘价时买入的算法。从人类的感性角度来看,“以更低的价格买入”的前一种算法似乎给人一种好成绩的印象,但实际上后一种算法获胜。因为股票有上涨就会继续上涨,下跌就会继续下跌的倾向,所以这个结果也能理解。
盈亏平均分别为 +2.0% 和 +0.9%,可能只是误差。

■ 空头交易计算错误
空头交易的计算有误。是的。我一直觉得结果太好了。新的结果如下。大约为负1%。
即使今年以来的市场环境非常糟糕,但亏损只有1%左右,也可以说是很努力了。我希望市场环境好转时,能变成盈利……

空头交易1 [所有目标股票的平均] 盈亏:+0.1%(加权平均,近期优先)-0.1%(平均,所有时期),累计 -1.3%(所有时期)。
空头交易2 [所有目标股票的平均] 盈亏:-0.8%(加权平均,近期优先)-0.7%(平均,所有时期),累计 -1.5%(所有时期)。
空头交易3 [所有目标股票的平均] 盈亏:-0.8%(加权平均,近期优先)-0.7%(平均,所有时期),累计 -1.6%(所有时期)。
空头交易4 [所有目标股票的平均] 盈亏:-0.8%(加权平均,近期优先)-0.7%(平均,所有时期),累计 -2.2%(所有时期)。
空头交易5 [所有目标股票的平均] 盈亏:-0.1%(加权平均,近期优先)-0.1%(平均,所有时期),累计 -0.8%(所有时期)。

■ 果然,市场环境很重要
今天的市场环境很好,所以恢复了盈利。如果不进行改造,使其在不考虑市场环境的情况下也能盈利,那就太好了。

AirTrade 1 [所有目标股票平均] 盈亏: +0.5% (加权平均,近期优先) +0.1% (平均,全部期间) 累计 -0.0% (全部期间)
AirTrade 2 [所有目标股票平均] 盈亏: +0.4% (加权平均,近期优先) +0.2% (平均,全部期间) 累计 -0.1% (全部期间)
AirTrade 3 [所有目标股票平均] 盈亏: +0.1% (加权平均,近期优先) -0.0% (平均,全部期间) 累计 -0.5% (全部期间)
AirTrade 4 [所有目标股票平均] 盈亏: +0.4% (加权平均,近期优先) +0.2% (平均,全部期间) 累计 -0.0% (全部期间)
AirTrade 5 [所有目标股票平均] 盈亏: -0.3% (加权平均,近期优先) -0.4% (平均,全部期间) 累计 -1.4% (全部期间)

■AI 果然是黑盒子
虽然开始出现一些看起来不错的预测,但有时也会出现明显错误的结果。即使是我(人类)觉得有问题,实际的股价也更加难以理解,也许可以说已经超出了理解的范畴。AI,或者说深度学习的难点在于,中间结果是无法了解的黑盒子。很难解释为什么会产生这样的结果。虽然有基本的逻辑,可以勉强解释,但AI很难进行详细的解释。因此,重要的是将结果与现实进行比较,看看是否准确。总的来说,虽然大致能把握上涨和下跌的方向,但“何时”上涨,“何时”下跌,这个时机把握不够准确。也许最好是根据AI的结果判断方向,然后由人类来调整时机。

不过,每次做类似的东西,公司里总会有一些人,他们会说“这不只是你的成果”,然后会来分一杯羹,或者会挑剔,贬低你的贡献,试图阻止你,总是有人像虫子一样涌出来,贬低你的成果。但如果自己一个人做,因为没有人,也没有外包,所以所有都是自己做的,这一点很明确,而且没有那些阻碍你、偷成果或者要求分成的家伙,所以很清爽。在公司里,即使是同一个人做的,也比十个人大张旗鼓地做出来的东西,评价更高,这是一种矛盾。从成本效益的角度来看,一个人做的成本效益是十个人的十倍,但却会因为花费了十倍的成本而得到更高的评价,这是一种矛盾。不了解IT的上司可能无法理解一个人可以完成的事情。因为不了解IT,所以会很容易相信那些铺天盖地、充满自信的人。因为不了解IT,所以会以人数而不是成果来判断。这样的公司可能会在世界的竞争中被淘汰。IT技术人员也不会在这样的公司长期待下去。我希望不是所有的公司都是这样的。最终,那些人只是不了解技术和成果,所以会以人数来判断。IT行业至今仍然是“人月”的社会,受注开发并不是通过高效的开发来赚钱,而是对那些虽然不懂IT但有钱的客户进行一场盛大的“仪式”,这样才能赚钱。按成果付费是根本不可能的。因此,我不喜欢受注开发,我基本上只信任那些自己创业,利用IT来为自己服务的公司或个人。也许,如果大家都实行严格的成果主义,很多人会失业,从这个角度来说,那些毫无意义的IT行业,也能养活很多人。



■ 股票交易监控中
AirTrade 4 的近期平均涨幅为 +4.3%。 监控股票数量已超过 300 支。 也许这只是误差或运气好,所以还需要继续观察。
人工智能模型的训练也在持续进行中。 我每天都在逐步改进一些细节。

■5胜1败
基于前几天分析结果进行的虚拟交易,结果是5胜1败。 算是不错的。 毕竟是虚拟交易,实际上并没有购买。

同一天,情况更加夸张了。哇哦。是Air Tre没错吧。

■OCR
我不会购买,但Sansan似乎有成为传奇IPO的潜力。虽然是亏损上市,而且销售额很低,但市值却高达1200亿日元,这是一家让人摸不着头脑的上市公司。
根据乐观的前提,我用简单的计算方法估算了Sansan的股息收益率。这只是在假设公司真的像社长所说的那样增长的情况下。如果像移动支付一样进入战国时代,股价很可能会持续下跌。
从技术上来说,很容易模仿,剩下的就是市场营销的问题。这取决于大型公司会如何应对。看到这样的利润率,我也有些想投资的冲动。

Sansan只是通过OCR识别名片,对吧。 这么简单的东西也能上市并赚大钱吗。 这种“先在营销上占据主导地位,就能赚大钱”的想法,和亚马逊很相似。 也许可以尝试开发一个流行的AI文字扫描应用。 然后,如果能做到与Sansan兼容,直接抢走所有客户(苦笑),是不是有点过分了。 暂时先做一个从图像中推断字体字符串的应用程序吧。

就这样,我在Sansan上搜索文章,发现“只有100%的精度才会被普及”,这是日本特有的现象。
https://www.itmedia.co.jp/news/spv/1906/17/news042_2.html
意外地麻烦。 这可能就是差异化的原因,但感觉世界各地的人可能并不需要这么高的精度。
而且,名片本身可能就要消失了。

Google有开源的OCR,也许以后会尝试一下。

■之后
每天都在持续训练AI模型,并在不断进行细微调整,网站仍在持续运营。 无法战胜市场环境的恶化,运营业绩一直不太好。 如果市场环境良好,可以达到1%左右的收益,但如果市场环境不好,就会出现亏损。 也许只在市场环境良好的时候进行。 虽然直接使用比较困难,但如果自己要扫描所有股票,会很辛苦,所以将其作为一种一定程度的筛选方法来使用,似乎是可行的。

创建期间:
2019年3月中旬,下载Matlab并开始实验。
4月初,首次尝试Python。
4月末,AI分析网站的初期版本完成。
5月末,AI分析网站基本完成。
之后,模型一直在专用PC上持续训练。 随时进行微调。

我梦见过的日韩关系。 ((同分类的)下一篇文章。)
在仙道中,关于库尔达里尼能量和克服性欲的课题。(马阴藏先生) (时间序列的下一篇文章。)
话题。: IT業界