使用AI進行股票價格預測 (使用Python的深度學習)

2019-03-13 記
話題。: IT業界

数值计算平台,同时也能进行AI运算的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时,可能会让我感到非常惊讶。 之后我会详细地看看里面在做什么。

我試著用前半部分的數據來預測後半部分。
果然,最後的部分誤差很大,但連接的部分的精度相當高。
人工智慧真厲害...
我覺得,這件事人類是無法勝出的。

前幾天只用了一項數據(僅限收盤價)進行學習,所以我嘗試使用包含開盤價、最高價、最低價、收盤價和成交量的組合進行深度學習,但效果似乎沒有太大變化……
或者說,我可能在哪裡犯了錯誤,因為我沒有完全理解。
雖然我對深度學習的基礎理論有所了解,但試圖理解像LSTM(長短期記憶網路)這樣複雜的演算法,感覺頭腦快要爆炸了。

我聽說過深度學習需要大量的CPU運算能力,所以可能需要購買一些硬體設備。
現在我使用的是筆記型電腦,所以我想看看是否有可以連接到USB的設備…… 因為無法安裝顯示卡。

呵呵。我這個「假」AI 說,1332 N 的股價目前在 812 左右,一段時間內會橫盤。
在右上方的紅色部分。
兩週後的預測股價是 822,所以只會上漲 1%。
也就是說,這不是買進的機會。
如果現在持有,可能需要先賣掉,轉換成現金。(請不要相信。這只是個玩笑。我只是為了興趣而做的,這是個剛出生的可愛的 AI 孩子。如果有人相信它而購買,我會感到困擾,而且我無法承擔責任。)

自昨天開始掃描東京證券交易所的所有股票。
使用過去360天(最長)的分析,每支股票大約需要1分鐘。
使用的是Mac的筆記型電腦,Intel Core i7。
目前已經完成約1200支,還剩下2400支。
根據統計,大約有10支股票可能達到最大10%的漲幅。
AI判斷,大約每100支股票中只有一支會上漲。
但是,AI的預測會有誤差,因此即使是同一支股票,多次執行也可能得到不同的結果,所以需要進一步篩選。
雖然我還沒有完全信任AI,不能僅僅根據這個結果機械地買入,
但偶爾會出現意想不到的股票,而且我自己不可能檢查完東京證券交易所的所有股票,
所以將其用於篩選是可以接受的。
從目標的3600支股票中,首先篩選出30支左右作為候選,
然後再進一步篩選,如果能縮小到10支以下,那就很理想了。

外匯(FX)也使用AI分析。
但由於是針對每種貨幣的分析,所以不清楚是否真的有用。
總之,先觀察一下。
因為外匯交易很難呢...

在家裡的電腦上進行AI股票分析(需要時間),下午前往高尾山。
今天早上出來的上升預期上位銘柄,成績還不錯(但沒有買入),但仍然存在波動。
或許可以嘗試一種方法:
全面購買單元,快速賣出下跌的股票,只保留上漲的股票。
畢竟,最終無法知道哪些股票會上漲。

抽到的籤是「吉」。
「雖然到目前為止經歷了很多困難,但終於運氣開始轉好,不再有令人擔心的事,並且事物將會成功的時候到來。」
會不會實現呢~?

過去一週,我嘗試性地購買了由AI篩選出的股票。
AI預測將股票範圍縮小到30多支,然後我自己檢查,再縮小到約10支,然後購買了其中一些看起來圖表不錯的股票。
上週,由於整體市場氣氛良好,這些股票的表現「整體上具有韌性,不太會下跌。部分股票上漲」,結果還不錯。雖然沒有爆發式上漲,但至少沒有虧損,勉強可以接受。總體而言,一週上漲了幾個百分點,作為一個實驗,表現還不錯。
不過,今天(星期一),東京股市受到紐約市場的影響而暴跌,部分股票也因此受到影響,回到了原點。畢竟,即使是AI,也會受到暴跌的影響... 總體市場氣氛強大,這在一定程度上是理所當然的。
目前,我只對個別股票進行AI分析,沒有告知其與紐約市場的關聯,因此我覺得有必要讓AI學習這些相關性。
或許,不只是讓AI記住相關性,而是讓AI單獨預測紐約市場,如果預測到晚上會下跌,可以提前稍微減少持倉,這樣的做法或許也可以。
(這張圖片與我購買的股票無關)

■Google TPU
標示的納期是3週,但實際上大約10天就到貨。意外地很快。
因為在Matlab中無法使用,之後可能會用Python來試用看看。

■首次嘗試 Python
因為是第一次使用 Python,所以我讀取了已經在 Matlab 中分析過的数据,並嘗試將其顯示在圖表上。
它有可能成為 Matlab 的替代方案。
也許我不需要購買 Matlab 了?
如果我能在 Matlab 的試用期內轉換到 Python,我可能不會購買。
但是,Matlab 很好用,所以我在考慮是否要購買。
它不僅可以應用於 AI,還可以做其他事情。
只有 Python 可以使用 Google 研發的 AI 晶片,而 Matlab 無法使用,所以無論如何,Python 化都是必須的。
Python 有一些在其他語言中很少見的、獨特的語法,或者說是語言的特點,讓人覺得有趣,但也有些微妙。
但是,由於它可以使用數組,所以這些獨特語法的缺點似乎被彌補了。
好吧,這只是需要習慣的問題。
接下來,我需要替換主要的 AI 部分,但那部分還沒有開始。

前幾天,我將在 Matlab 中實現的高斯過程回歸(Gaussian Process, GP)分析,移植到了 Python 上。在 Matlab 時,我忽略了參數,但這次發現結果會因為參數而有很大差異,所以暫時使用最簡單的參數進行實現。這不是重點,重點是 AI,所以這樣就好。雖然使用幾天,但大致上已經習慣 Python 了。

難點在於,與 Matlab 相比,Python 的執行速度較慢,進行分析需要等待幾秒。果然,Matlab 還是很優秀。Python 慢是個常識,但既然我買了 AI 晶片,應該可以讓 AI 分析變快,所以用 Python 應該沒問題。因為晶片是專用的,所以其他處理變慢是不可避免的。

■TensorFlow
今天,我試圖使用 TensorFlow 2 + Python 3 實現 AI,但網路上的大部分資訊都是 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,所以我首先從源碼中編譯了 3.7,但因為 TensorFlow 似乎不支持,所以我安裝了 3.6,但效果不大,所以又改回了默認的 3.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,在兩個半月內完成,總體來說還不錯。 其中一個月用於各種實驗,另一個半月用於網站開發和各種改進。 雖然精度還有待提高,但目前的分析以時間為優先,並且在過程中會停止,所以今後將根據時間投入來觀察精度能提高到什麼程度。 如果精度不足,可以考慮擴大模型,這類需要耗費大量時間的修正工作將會慢慢進行,但基本的框架已經完成。 目前顯示方式過於簡單,因此計劃逐步增加一些功能。

■新增支撐線
新增了以預測日後的第二天開盤價為基準的支撐線顯示。 這樣可以更容易查看。

■K線圖
將收盤價的折線圖更改為普通的K線圖。果然,不這樣就顯得不夠真實。



■ 空頭交易
我加入了空頭交易。如果能看到這些,我本來可以賺更多,但因為無法機械式交易,而是受到情緒影響,所以成績可能不太好……

■ 演算法調整
調整了空頭交易的演算法。在首頁上刊登了所有股票的空頭交易結果。

■ 使用「完美交易」的空頭交易
根據短期、中期和長期線,嘗試使用俗稱「完美交易」的條件進行空頭交易,結果不太好。可能是因為目前的市場狀況不好,或者,就像技術分析一樣,這可能只是事後找藉口的都市傳說。
損益平均 +0.5%,累積 +0.6%。

■ 演算法比較
模擬比較了兩種演算法:一種是當AI預測上漲,但隔天的開盤價比前一天的收盤價低幾個百分點時才買入的演算法,另一種是只要隔天的收盤價高於或等於前一天的收盤價就買入的演算法。從人類的感覺來看,「以較低價格買入」的前一種演算法似乎表現更好,但實際上後一種演算法獲勝。因為股票有上漲就會持續上漲,下跌就會持續下跌的傾向,所以這個結果是可以理解的。
損益平均分別為 +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% (所有期間)

■ 果然市場狀況很重要
今天的市場狀況不錯,所以轉為盈利。必須改造,使其在不考慮市場狀況的情況下也能轉為盈利。

エアトレード1 [対象全銘柄平均] 損益: +0.5%(加重平均,直近重視) +0.1%(平均, 全期間) 累積-0.0%(全期間)
エアトレード2 [対象全銘柄平均] 損益: +0.4%(加重平均,直近重視) +0.2%(平均, 全期間) 累積-0.1%(全期間)
エアトレード3 [対象全銘柄平均] 損益: +0.1%(加重平均,直近重視) -0.0%(平均, 全期間) 累積-0.5%(全期間)
エアトレード4 [対象全銘柄平均] 損益: +0.4%(加重平均,直近重視) +0.2%(平均, 全期間) 累積-0.0%(全期間)
エアトレード5 [対象全銘柄平均] 損益: -0.3%(加重平均,直近重視) -0.4%(平均, 全期間) 累積-1.4%(全期間)

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

不过,每当我制作类似的东西时,总会遇到一些问题。在公司里,总会有一些人,他们会说“这不完全是你一个人的成果”,然后试图窃取成果或索取分红,或者会找各种借口贬低我的贡献,像虫子一样涌现出来。但如果我独自完成,就不会有这些问题,因为没有人可以依赖,所有的一切都是我一手打造的,所以很清晰,也不会有那些试图阻挠、窃取成果或索取分红的人,这样会让人感到很轻松。在公司里,往往存在一种矛盾,即与十个人大肆宣传地完成相同的工作,比一个人独自完成的工作更容易获得更高的评价。从成本效益的角度来看,一个人完成的工作效率是十个人的十倍,但却要花费十倍的成本才能获得更高的评价,这是一种矛盾。那些不了解IT的上司可能无法理解一个人可以完成这些工作。因为他们不了解IT,所以很容易被那些看似雄心勃勃、自信满满的人所欺骗。他们会根据人数而不是成果来判断。这样的公司可能会在世界的竞争中被淘汰。IT技术人员通常不会在这样的公司长期工作。我希望不是所有的公司都是这样的。最终,那些人只看重人数,而对技术和成果一无所知。IT行业仍然是一个“人月”的社会,受注开发并不是为了高效地创造价值,而是为了向那些虽然不懂IT但有钱的客户进行一场盛大的“仪式”,从而获得更高的利润。按成果付费的情况几乎是不存在的。因此,我不喜欢受注开发,我更信任那些能够自主经营,并利用IT技术为自己服务的公司和个人。也许,如果所有公司都实行严格的成果主义,很多人会失业,从这个角度来说,那些看似毫无价值的IT行业,也为人们提供了就业机会。



■空氣交易監控中
空氣交易4的近期平均值上升至+4.3%。監控股票數量已超過300支。
這可能只是誤差或運氣好,所以還需要持續觀察。
AI模型的訓練當然也在持續進行中。
我每天都在一點一點地修正細節。

■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 分析网站基本完成
之后,模型一直在专用电脑上持续训练,并随时进行微调。



話題。: IT業界