What we are doing -A-


We are developing an AI dealer ROBOT for investment.

「投資用AIロボットの開発」

次の文章はビットコインのトレード用のAIロボットの開発例である。

データ収集

【rateA.py】
1)価格データを収集(25,6秒間隔(1サンプル間隔と呼ぼう))
2)256個の配列データを左にシフトして最後尾に新しく収集したデータを書き加える。
3)256個の配列データを wavelets 変換して9個の係数データとする。
4)この係数データを256組集めて1つのファイルに書き込む
5)この1つのファイルの作成時間は凡そ1時間48分である。尚、最初のファイル(最初の256個のデータ:F0)はデータ列が完成していないので、意味のないデータとなる。
6)それぞれのファイル、F0,F1,F2,..  は決して独立なものではなくデータとしてつながったものである。例えばF2の最初の行は殆ど(255個)がF1の期間のデータでF2の期間のデータをひとつ足してwavelets 変換したものである。


データ解析 1
【readCSV.py】
1)ひとつのファイルの中の、wavelets 変換した9個の係数データの内、0次、1次、2次、3次の係数データをグラフ化したものである。横軸はデータ数(256個)であり、時間では1時間48分程度である。
2)0次のデータは価格を意味すると思われる。2次(黄色)3次(緑色)のデータは各グラフで特徴を掴みにくい。解析に用いるのは0次及び1次のデータで十分かもしれない。
3)このデータは、収集したデータフォルダーの中に保存されている。

データ解析 2
【Polynomial.py】
1)前記0次データ曲線および1次データ曲線を3次多項式近似し、その係数(4個X2 8個)をエクセルファイル(POLY.xsls)として保存したものである。
2)各ファイルは元のデータファイルの識別記号をつけて(例:POLY-m.xlsx) DropBox → FinTech → BCデータ → 収集データ に保存した。
3)例えば DataG というフォルダの中にはF0~F44 までの45 個のファイルが収められている。F0は無意味でありF44も256個のデータがない不十分なものなので実質的には43個のファイルである。この43個のファイルの係数データがFPOLY-g.xlsxの各行に対応している。

データ解析 3
1)各収集データのファイルをひとつのエクセルファイルに纏めた。DropBox → FinTech → BCデータ → POLY-ALL.xlsx に保存した。
2)1列目(A列目)が価格相当データであるので、その部分に注目する。
3)次のような基準で最終列(I列目)に数値を記入した。
  ◎k番目のデータに注目して、(k+1)番目、(k+2)番目のデータが続けて増加しており、その増加幅が0.5%以上であれば 結果を+1とする。
  ◎k番目のデータに注目して、(k+1)番目、(k+2)番目のデータが続けて減少しており、その減少幅が0.5%以上であれば 結果を-1とする。
  ◎それ以外であれば、結果を0とする。
4)このファイルをDropBox → FinTech → BCデータ → POLY-ALL-2.xlsx に保存した。

データ解析 4
1)トレーニング用データとして、POLY-ALL-2.xlsx を整理した。
  ◎ 不要な行を削除した。
  ◎ A列目は価格相当データ(直流成分)なので削除した。
  ◎ 新たにA,B,C 列を付け足して、最終列の値が−1の場合はA列の値を1に、0の場合はB列の値を1に、+1の場合はC列の値を1にし、それ以外は0とした。
2)整理済のファイルをDropBox → FinTech → BCデータ → POLY-ALL-Learn.xlsx に保存した。
3)ワイン分類などの例題とフォーマットを合わせるために、A,B,C列の結果を最終列に移動し、最初の列に1,2,3という順番を付した。
  それをタブ区切りテキストファイルとして、DropBox → FinTech → BCデータ → POLY-ALL-Learn.txt に保存した。
  





運用

1)通常のようにリアルタイム価格データを一定時間毎に収集する。25,6秒間隔(1サンプル間隔))
2)価格データは256個のデータを1セットとする。このデータセットの最後尾に新しいデータを付け加え先頭の古いデータは消去する。
3)この256個の新しいデータが得られた段階でデータを wavelets 変換する。この wavelets 係数データを念の為に保存する。(従来どおり)。新しい行が次々に追加されて256行になったときに、次の新ファイルに移る。
4)先程のwavelet 変換した係数の0次成分および1次成分のみを別に保存する。0次成分および1次成分は wave0[256], wave1[256] という配列に保存していく。配列の最後尾に新しいデータを付け加え先頭の古いデータは消去する。
5)wave0[256], wave1[256] という配列の16個が更新された段階(400秒=7分弱)で、これらの数列を3次関数近似する。その係数8個のうち、wave0[256]の0次係数を除いた7個の係数を予測対象データとしてAIを用いて予測する。その確率とともにファイルに書き込む。書き込む値は、日時、その時の価格、7つのパラメータ、3つの確率である。