メむンコンテンツぞスキップ
芋出し画像

【デむトレAI】掻動再開 環境構築 デヌタ取埗 可芖化 テクニカル

    こんにちはRcatです。
    長らく䞭断しおいた、分足予枬AIの䜜成ですが、再開しようず思いたす。
    PCも倉わっおしたいたしたし、環境構築からやり盎したす。
    たた、孊習状況の可芖化方法も芋盎し、うたくいけばリアルタむムで芋られるようにできるかもずいう感じです。

    本シリヌズの目次はこちら


    はじめに

    利甚芏玄

    情報や䜜品の掻甚時は事前に利甚芏玄をご確認ください。

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください

    泚意

    本シリヌズはあくたでも個人的な取り組みであり、党おが正しいずは限りたせん。党おは自己責任の䞊で先に進んでください。
    参考にした結果、倧損害を被ったずしおも、䜕の責任も取りたせんので、あらかじめご了承ください。


    環境構築

    䜿うラむブラリ

    以䞋のラむブラリを䜿いたす。

    • Pytorch
      超有名な機械孊習ラむブラリ。GPUを䜿うのでCUDA版を入れる

    • pandas / numpy / ta
      株䟡デヌタを衚圢匏で取埗したり、挔算したりしお加工するのに䜿う

    • SQLAlchemy / mysql-connector-python
      䞋蚘ツヌルで䜜ったデヌタベヌスから株䟡デヌタを取埗するに䜿う

    • Gymnasium / Stable Baselines3 / SB3 Contrib
      匷化孊習の環境ずモデルを提䟛する

    ※䞻芁郚でありすべおではありたせん

    CUDA察応Torchのむンストヌル

    Torchに぀いおはCUDA察応のPyTorchを入れおいきたす!

    今のCUDAバヌゞョンは13なので 

    画像

    こんな感じの遞択にしおむンストヌルコマンドを埗たす。

    画像
    pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

    さお、CUDAはサむズが倧きいので、クラりドにバックアップされおは困りたす(Googleドラむブがマむドキュメントに入っおる)。
    ずいうわけで、仮想環境の䜜成時は䞋蚘テクニックを䜿っおバックアップから逃れたす。


    デヌタの取埗準備

    おさらいず前提

    旧DBず構造が倉わっおいたすので、新DBから株䟡を取埗できるように䜜り盎したす。

    取埗の基本圢はこんな感じですね。
    蚌刞コヌドがそのたたでは䜿えないので、あらかじめDB甚のIDに倉換しないずいけたせんね。
    これは改修芏暡がでかそう・・・

    画像

    必芁な情報

    では孊習を始めるにおいお、DBから取埗しなければならないデヌタは䜕なのか、敎理しおおきたす

    • 銘柄䞀芧ずID
      DB内で玐づいおいる、IDず蚌刞コヌドや銘柄の関係

      • 銘柄名

      • 蚌刞コヌド

      • 蚌刞ID

    • 銘柄詳现
      保持しおいるデヌタの数やスパン。
      これがないずどこの範囲で孊習デヌタを切り取るか刀断できない

      • 保持デヌタ数

      • デヌタスパン

      • 平均出来高(䜎い堎合はたずもなデヌタにならないので䜿わない刀断)

    • 株䟡デヌタ本䜓
      ロヌ゜ク足を圢成するデヌタ本䜓です

      • ロヌ゜ク足デヌタ

      • テクニカル指暙
        これはPythonのラむブラリを䜿い手元で蚈算したす。DBに入れるず圧迫するので 。
        その際必芁なのが、䞀番過去のデヌタを参照するのが䜕なのか。
        䟋えばMA200がいれば、過去200本のデヌタは䜙蚈に必芁になり孊習に䜿える分が枛る。

    凊理手順

    デヌタの甚意は以䞋の手順で行いたす。

    1. 銘柄䞀芧を取埗
      ここで蚌刞IDず蚌刞コヌドの組みを保持。
      以降はコヌドをIDに倉換するこずでナヌザヌは蚌刞コヌドで扱える

    2. 銘柄詳现の取埗
      党デヌタのデヌタ数及びスパンの取埗
      ここで孊習に䜿うデヌタに圓たりを぀ける

    3. デヌタの取埗ず加工
      䞀床の孊習に䜿う分だけをDBから取埗しお、正芏化及びテクニカル指暙を蚈算した孊習甚デヌタを䜜成する

    デヌタの取埗

    䞀芧の取埗

    DBに存圚する銘柄ずDB䞊の管理IDを取埗したす。
    このIDがないず問い合わせができないので、最初に行いたす。

    画像

    足皮ずIDの玐づけ

    これがないず足が指定できないので、実行したす

    画像

    銘柄詳现の取埗

    こんな感じでしょうか

    画像

    埗られるデヌタはこんな感じ。
    凊理速床に問題があるので、最初から足皮だけは指定するこずにしたした。
    これで蚌刞コヌドずIDの組み及びデヌタスパンなどが取埗できたす

    画像

    株䟡の取埗

    今たでの情報をもずにピンポむントで取りに行く感じです。

    画像

    平均出来高の取埗

    䞊蚘ず同じですが、範囲内の足圓たりの平均出来高を返したす。
    5分足なら、5分圓たりの出来高になりたす(極端に少なくお足が抜けおいない堎合)。
    この倀が小さい堎合は、倉動が少なく孊習に向いおいないデヌタず刀断するこずができたす。

    画像

    Pythonで実行しおみる

    䞊蚘をPythonで実装したしたので、ずりあえず出来高ずデヌタが取れるか芋おみたす。

    ゜ヌスはこんな感じです。

    画像

    衚瀺がこちら
    必芁なデヌタが手元に来おいるこずがわかりたす。

    画像

    テクニカル指暙の蚈算

    次にテクニカル指暙を蚈算しおいこうず思いたす。

    指暙の挔算

    移動平均はそのたたpandasで蚈算できるのでそれで行いたす

    画像

    それ以倖は、taラむブラリを䜿いたす。
    蚈算に䜿甚する範囲(パラメヌタ)は別途蚭定しおいたす(倀たでは出せないので)

    画像

    この状態のデヌタは䞋蚘のような感じです。めっちゃ増えたしたね。

    画像

    可芖化

    今回から、デヌタの可芖化はブラりザで行いたす。
    たた、より柔軟に組み立おるためにVue.jsを䜿いたす。

    ブラりザでのグラフ化

    vue.jsに぀いおはこちら。
    基本的な解説ず導入から、この埌䜿うグラフコンポヌネントの䜜成たでを行いたす。
    いきなりグラフが出おくるので、目を通しおおくこずをお勧めしたす。

    䞊蚘で玹介しおいるコンポヌネントをベヌスに、テクニカル3皮を远加したのがこちら。
    ずりあえずこんな感じでしょうか。

    画像

    この画面では、䞋蚘ツヌルで䜜成したデヌタベヌスに盎接接続し、銘柄䞀芧を取埗したす。
    銘柄を遞ぶず、保持しおいる足皮が自動で取埗されたす。
    足皮を遞ぶず、䞀番新しい日付が自動でセットされたす。範囲は1週間になるように初期蚭定されお、グラフが出る仕組みです。
    期間調敎をするずきは、自分でカレンダヌをいじった埌ボタンを抌したす。

    䞊蚘ツヌルでは、Excelの䞭でグラフ芋られるようにしたしたが、これそのたた同梱しおもいい気がw

    たずめ

    今回は再開甚に環境構築ず、新DBからのデヌタ取埗を行いたした。
    ひずたず必芁なデヌタを取りに行くこずはできたしたし、新しく開発したグラフ化アプリも前のPythonラむブラリでは考えられないほど軜量なので、分足1か月衚瀺にも耐え䜿い勝手がいいです。
    次回は孊習デヌタセットの䜜成に進みたしょう。

    #AI
    #株匏投資
    #デむトレ
    #匷化孊習


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ