機械学習で株価予測、チャート画像に対する画像認識ってことでPythonのPIL使ってチャート画像を作成、それをCNNでやってみる計画(内部的にはver4)。
お手本は楽天証券のiSPEEDというアプリのチャート。
{
img = Image.new('RGB',imgSize , (0,0,0))
imgDraw = ImageDraw.Draw(img)
imgDraw.line(((x1,y1),(x2,y2)),lineColor,lineWidth)
imgDraw.rectangle((boxLeftTop,boxRightBottom),rectColor)
}
↑PILには線も四角形を描く関数もあるのでこれを駆使して描く。面倒だけど特に難しくはない。
ImageDrawオブジェクトからTensorFlowのデータセット用を作成、tfrecordファイルに書き込んでいく。

↑チェックのため、tfrecordファイルを読み込んで、そのデータを元に描いたチャート(上)と、同じところのお手本のチャート(下)。
処理時間の点からなるべく画像のサイズは小さい方がいいだろうということで許せる範囲で小さくしてみた(160 x 120 px)。アルファチャンネルなしのカラー画像で作成。
ちなみに短期平均線は5日、中期は25日、長期は75日で計算してる。
まずは日足と3種の平均線だけでやってみる。ここに為替とかも描くというアイデアはあるよな。
なお、今回から解答の選択肢を陽線か陰線かの2択にした。何パーセントの上げ下げかって縦の値幅も画像によって異なるので判断させるのは酷かと。
ちなみに当初は300 x 160 px画像で試してみたところ恐ろしく時間とメモリを食ったためなるべく画像を小さくした。