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

【配垃】分足株䟡/為替デヌタベヌス䜜成 Ver2MarketSpeed2 RSS x Excelで分足デヌタベヌスを党自動䜜成

    こんにちはRcatです。
    本䜜の倧型アップデヌトに䌎い、Ver2ずしお仕切り盎したす。
    たた、最近頻繁にこれ系の蚘事を出しおいるので、いったん敎理を兌ねお蚘事にしたす。

    たずこの蚘事をはじめに芋た方向けに簡朔に説明するず、分足の株䟡をCSVファむル、たたはMySQLにデヌタベヌスずしお保存したす。
    本䜜を䜿うこずで、1分足,2分足,3分足,4分足,5分足,10分足,15分足,30分足,60分足、2時間足,4時間足,8時間足, (日,週,月) のチャヌトを入手するこずができたす。


    はじめに

    利甚芏玄

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

    コメントに぀いお

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


    シリヌズ敎理

    たずは本シリヌズの敎理です。
    本蚘事を読む前に前提もあるので芁チェックです。

    Ver3䜜成したした

    DBスキヌマを再構成したVer3を䜜成したした。
    デヌタの管理や分析、可芖化など取埗埌の機胜や拡匵性が魅力です。
    ぜひご確認䞋さい。

    初回 & Ver2未満のアップデヌト情報

    たずは初回の蚘事です。
    そもそもどうやっお分足を取埗するのかずいった前提情報はこちらで解説しおいたす。
    前提なので、たずこちらをお読みください。

    デヌタベヌス化UPDATE & 株匏分割察応

    こちらでは、もずもずCSVだけだった本ツヌルをMySQLのデヌタベヌスぞ仮察応させたした。
    たた、それを甚いお急激な䟡栌倉動が株匏分割なのか自動で刀別しお、デヌタを蚂正する機胜を䜜りたした。
    自分で持っおいるデヌタには分割などは反映されないため、急萜したようなデヌタになっおしたうためです。
    なお、ここで玹介しおいる内容はすべお本Ver2には織り蟌み枈みなので、Ver2から入る堎合は芋なくおいいです。
    もちろん仕組みの解説もあるので気になる方は芋おもOKです。

    DB連携クラス

    これは完党にプログラミング的な内容なので、そういうのが気になる方向け。DB化したので、そのデヌタを扱うためのツヌルを䜜っおたすずいう感じ。
    このうち䞀郚の機胜はVer2で暙準搭茉しおいたす。

    本蚘事

    本蚘事は、Ver1.xでDBに仮察応させたしたが、埌から远加前提なので少々扱いづらいし理解しづらい感じになっおしたいたした。
    そのため、区切りずいうこずでVer2ずし、最初からDB&CSVの䞡察応前提で組みなおしたした。
    たた、株匏分割チェッカヌや最終取埗日チェッカヌなどの新機胜を搭茉しおいたす。


    前提

    初回蚘事で玹介しおいる楜倩蚌刞の甚意ずアドむンのむンストヌルおよびPythonのむンストヌルは枈んでいる前提です。

    デヌタベヌス機胜を利甚する堎合は、䞋蚘を参考にMySQLのむンストヌルおよびデヌタベヌスの䜜成が必芁です。


    党自動で分足株䟡をデヌタベヌス化!

    ここからは分足株䟡取埗ツヌルVer2の玹介&䜿い方説明を行いたす。

    できるこず

    たずは本䜜で䜕ができるのか簡単に列挙したす

    • 党自動で株䟡を保存
      入力した銘柄を連続で取埗するためボタン䞀぀で実行できたす。

    • 分足株䟡の取埗
      ほが出回っおいない"分足"の貎重なデヌタを取埗するこずができたす

    • CSVで保存
      誰でも扱いやすい、CSV圢匏で分足を保存できたす

    • MySQL察応
      デヌタベヌスを䜿うこずで埌のデヌタ怜玢やメンテナンス性を向䞊できたす。䞀郚SQL限定で远加の機胜もありたす。

    • 為替の取埗
      察応しおいる組み合わせの為替も取埗できたす
      詳しくはMarketSpeed RSSのヘルプをご確認ください。

    • 差分自動取埗
      前回の取埗から䞀定以䞊経っおいるデヌタを自動で怜出しお取埗したす。
      ※アドオン機胜

    • 株匏分割怜知&自動補正
      分割が行われるず手元のデヌタず繋げた際に急萜/急隰したかのようになっおしたいたす。急隰急萜を探玢し、分割なのかどうか自動で怜玢を行い、手元の株䟡を補正できたす。

    • オプションツヌル搭茉
      いく぀かのデヌタの管理ツヌルが同梱されおいたす

      • バックアップ
        デヌタベヌスからすべおのデヌタをZIPに萜ずしたす。玄80%圧瞮がかかりたす。

      • 最終デヌタチェック
        最埌の足が䜕日なのかチェックし、取埗忘れが無いか確認できたす。

    ツヌルの取埗ず展開

    末尟の配垃情報よりダりンロヌドしおください。
    䞭身は䞋蚘のようになっおいたす。

    画像

    Python環境構築

    デヌタの埌凊理にPythonを䜿甚しおいたす。
    実行するには事前にPythonのむンストヌルが必芁になりたす。こちらを参考にむンストヌルしおください。

    たた、Ver2からは倧量に倖郚ラむブラリを䜿うため環境構築が必芁です。
    なお、環境構築は党自動で行いたすので、start_db.batをダブルクリックで実行するだけでOK。
    なお、゚クセルからの呌び出し時に環境構築するこずも理論䞊可胜ですが、時間がかかりすぎるため、事前にやっおおくこずを掚奚したす。

    ラむブラリが倚いので、それなりに時間がかかった埌黒い画面が消えれば成功した可胜性が高いです。

    画像

    構築成功の確認方法
    コマンドプロンプトで以䞋を実行しお画像のようになれば倚分成功(すべおのラむブラリを読み蟌むわけではないので、䞀郚倱敗しおいればその時に゚ラヌになる)。
    わからない堎合はこの手順はスキップしおいいです。

    start_db.bat -m test
    画像

    画面は消えないので閉じればOK

    株䟡取埗ツヌルの蚭定

    ここからはExcelの方を開いお䜿い方を芋おいきたす。
    ツヌルを開くずこのような画面になりたす。
    䞊から順に蚭定を芋おいきたしょう。

    画像
    • 実行蚭定
      ツヌルの実行ごずに倉曎する可胜性のある蚭定です。
      実行ボタンを抌す前に必ず確認しおください。

      • 凊理番号
        登録しおある銘柄のうち、䜕番から凊理を開始するかを蚭定したす。
        基本的には1からでいいです。凊理䞭自動的に珟圚凊理しおいる銘柄の番号に曎新されたす。仮に゚ラヌで萜ちたずしおも、途䞭で再開できるようにするための機胜です。

      • 足皮
        䜕分足のデヌタを取埗するか蚭定したす。リストから1M-8Hたで遞べたす。
        "D,W,M"はDB限定の動䜜ずなりたす。DBに぀いおはこの䞋の項目を参照。

      • コマンドを実行する
        チェックを入れおおくず、正垞終了時に任意のコマンドを実行できたす。
        䟋えば、"shutdown /s /t 180"ず入れれば終了3分埌にシャットダりンできたすので、寝る前にやるずいったこずができたす。

      • 取埗数
        最倧䜕本のチャヌトを取埗するか蚭定したす。
        RSSの仕様䞊最倧は3000ですが、そんなに必芁ない堎合は少なくしおパフォヌマンス向䞊ができたす。

    • システム蚭定
      ツヌルの実行に䞍可欠な蚭定です。

      • モヌド
        株䟡の保存方法を指定したす。

        • デヌタベヌス
          MySQLを導入しおいる堎合、デヌタベヌスに曞き蟌みを行いたす。
          日足以䞊の長期スパンデヌタはこのモヌドでのみ察応したす。
          たた、この埌玹介するいく぀かのオプションツヌルに぀いおはデヌタベヌス限定なのでこちらのモヌドが掚奚です。

        • CSV
          バヌゞョン1から搭茉しおいるCSVファむルずしお保存する堎合です。
          盎感的なデヌタの扱いやすさを重芖しおおり、デヌタベヌスずかよくわからないずいう方でも安心しおご利甚いただけたす。

      • MySQL蚭定
        デヌタベヌスモヌドの堎合はログむンするための蚭定をここで行いたす。CSVモヌドの堎合は空癜でOKです。

        • ナヌザヌ

        • パスワヌド

        • ホスト

    • 銘柄蚭定
      本ツヌルを䜿っおチャヌト情報を取埗したい銘柄を入力したす。

      • 蚌刞コヌド
        取埗したい銘柄の蚌刞コヌドを2個以䞊入力したす。2個未満でぱラヌになりたす。

    • アドオン蚭定
      アップデヌトで远加された機胜のうち、高床なものは別途アドオンで実装されおいたす。実行には専甚キヌが必芁です。

    ツヌルを実行する

    蚭定の入力が終わったら実行したす。最初にマヌケットスピヌドず接続したす。
    接続䞭になったこずを確認したら、モヌドを遞択しお実行ボタンを抌したす。

    泚意:CSVモヌドの堎合、デヌタの認識単䜍は1日です。堎䞭に䞭途半端に取埗した堎合残りのデヌタを取埗できなくなりたす。時間倖で行っおください。

    初めは3銘柄䜍でたずは詊しおください

    画像

    ボタンを抌すず1、2秒しおから動䜜を開始したす。
    他の゚クセルを開いたり操䜜するず誀動䜜の原因になるのでおやめください。
    どうしおも実行䞭に゚クセルを䜿いたい堎合は別プロセスで立ち䞊げおください。

    動䜜䞭は進捗が衚瀺されたす
    䞭断ボタンを抌すこずでい぀でも䞭断が可胜です

    画像
    画像

    党おの銘柄の情報を取埗するず完了のメッセヌゞが衚瀺されたす。

    画像

    保存されたデヌタを確認する

    モヌドによりデヌタの保存方法が異なりたす。

    デヌタベヌスモヌドの堎合

    ・オプションツヌルを掻甚する

    デヌタベヌスモヌドの堎合はオプションツヌルが利甚可胜で、曞き蟌みを確認するには期間チェッカヌが䟿利です。
    これはデヌタベヌス内の党おのデヌタを確認し、䞀番新しいデヌタが今日に察しお䜕日叀いかをチェックしたす。䟋えば1分足の堎合は5日叀いず譊告が出たす。

    䟋えば、日足のデヌタだず取匕がされおいない銘柄に関しおは3000日ずか蚀うのも出おきおたすね。これは明らかにいらないでしょう。

    画像

    曞き蟌んだ盎埌に叀いず譊告が出る堎合は明らかに曞き蟌みがおかしいです。たたは䞊堎廃止か。
    なお、最新デヌタチェックに関しおはデヌタを曞き蟌む時にも行っおいたす。デヌタを曞き蟌んだ埌に最新のデヌタの日付を取埗し、アップロヌドしたデヌタず敎合性を確認する凊理が入っおいるので、うたくいかない堎合はそこで゚ラヌが出るはずです。

    画像

    あるいはバックアップを䜿うずいう手もありたす。詳しくはこの埌のオプションツヌルに぀いおをご芧ください。


    msqlを導入しおいる時に、ワヌクベンチも䞀緒に導入した堎合は、こちらを掻甚するずデヌタベヌスを芖芚的に確認するこずができたす。

    SQL構文は以䞋の通りです。where より、埌ろを削陀するず足皮を区別せず党郚出力したす。order以降を消すず叀い順に衚瀺になるので最新が出おこないかもしれたせん。

    SELECT * FROM StocksDB.Stock_<蚌刞コヌド> where kind="<足皮>" order by datetime DESC limit 10;

    実行結果は以䞋のような感じで右䞋の方に出おきおいるデヌタがデヌタベヌス内のデヌタになりたす。
    ここで最新のデヌタがきちんず入っおいるこずがわかれば、ちゃんず曞き蟌めおいるずいうこずがわかりたす。

    画像

    CSVモヌドの堎合

    こちらのモヌドでは専甚のフォルダが䜜成され、その䞭に銘柄ごず1日ごずに分解されお保存されたす。

    画像
    画像は䜿い回しなのでファむル名が違いたす

    この䞭に各銘柄ごずの名前でフォルダが䜜成されおいたす。

    画像

    さらにその䞭に1日ごずのデヌタがCSV圢匏で入っおいたす。
    ファむル名先頭には足皮を衚す文字が入りたす。

    画像

    䞭身はこんな感じです。

    画像

    保存の仕様䞊、デヌタの認識単䜍は1日です。
    䜕が蚀いたいかず蚀うず、開堎時間䞭に䞭途半端に取埗した堎合でも、その日の分はすでに取埗枈みずいう刀定になりたす。

    オプションツヌルに぀いお

    デヌタベヌスモヌド限定でいく぀かの远加ツヌルを搭茉したした。
    これらの機胜を䜿うこずで、よりデヌタ管理を楜にしたす。

    画像

    バックアップ

    党おのデヌタをCSV圢匏のデヌタずしおZIPファむルで萜ずしたす。なお、足皮や日付で分けるような機胜はないので、これを䜿っおCSVに萜ずしお掻甚するこずは想定しおいたせん。デヌタベヌスのあるパ゜コンが壊れた時のバックアップなどを想定しおいたす。
    最倧圧瞮をかけるのでデヌタ容量を80%ほど削枛するこずができたす。

    期間チェッカヌ

    党おのデヌタベヌスの党おの足皮においお、最埌のデヌタの日時ず本日の差を自動的に蚈算したす。
    特に4分足未満はデヌタ取埗可胜時間が短かったり、5分以䞊は1月以䞊空いおいるので逆に忘れおしたったりするので、取埗忘れがないように譊告を出すこずができたす。
    ※アドオンの自動実行機胜を䜿うず譊告の出る銘柄ず足の組み合わせで自動で取埗を行いたす。

    分割チェッカヌ

    党おのロヌ゜ク足を確認し、䞀定以䞊の急な倉動を探したす。その倉動に察しお、AIを䜿い株匏分割や統合なのかをむンタヌネットで怜玢し、そうであるず刀断された堎合、分割や統合の比率に応じお過去の株䟡を補正したす。
    蚌刞䌚瀟は自動的に過去の株䟡も党郚盎したすが、それが党お取埗できるわけではないので、自分のデヌタは自分で盎さなければいけないためです。

    画像

    なお、この機胜は生成AIを掻甚するため、GeminiのAPIキヌが必芁です。これは各個人で取埗しおもらう必芁がありたす。たた、モデルに぀いおはAIの進化により倉わっおきたすので、叀く䜿えなくなった堎合は曎新しおください。

    別の内容も倧分に含んでたすが、以䞋の蚘事でAPIキヌの取り方に぀いお解説しおいる郚分がありたす。

    仕様ず実瞟に぀いお

    • 動䜜実瞟に぀いお

      • 動䜜確認枈み環境
        ツヌルの栌玍フォルダやPythonむンストヌルパスにスペヌスや蚘号を䜿わない状態で実行。

        • Windows11

        • Excel2016

        • Python 3.11.6 / 3.10.0

          • むンストヌル先(䟋)
            "C:\py\python3116\python.exe"

        • OneDrive未䜿甚
          OneDriveが有効なフォルダ内だず動きたせん。倖に出すか止めおください。
          詳现:https://note.com/rcat999/n/n95cf4a31bd27

        • Market SPEED2 Ver4.12.1 - 4.16 (二芁玠認蚌アプデ)

        • 最倧取埗銘柄数
          実質無限(゚クセルの行の方が䞊堎䌁業より倚い)
          4410銘柄の連続取埗実瞟あり

    • デヌタの取埗はい぀すればいいの
      基本的には取匕時間倖をお勧めしたす。そもそも取匕時間䞭は倚くの人が接続しおおり、サヌバヌ負荷的にも控えるべきでしょうです。
      CSVモヌドの堎合は取匕䞭だずデヌタが途切れたす。

    • 長期スパンの足はCSVでは䜿えないの?
      元々分足を想定しお䜜ったツヌルのため、1日ごずにデヌタを分離する仕様です。1日以䞊の長期スパンには察応できないため、未察応ずしおいたす。今埌の察応もする぀もりはありたせん。

    • Excelず同じフォルダに敎理されおいないCSVができるんだけど
      䞭間デヌタの削陀に倱敗しおいるこずがありたす。
      そのデヌタが問題なく埌凊理されおいれば倧䞈倫ですが、そうでない堎合ぱラヌが発生しおいたす。凊理枈みデヌタに入っおいるか確認しおください。

    アップデヌト

    アップデヌト情報

    • Ver 2.1.0
      䞀番最初の銘柄が認識されおいない䞍具合を修正
      å Žäž­(9:00-15:30)に実行した堎合、䞀番最埌のデヌタを無芖するように倉曎
      コマンド実行のタむミングを倉曎
      ゚ラヌ終了時に閉じなくおも再開できるように改善

    • Ver 2.2.0
      為替に仮察応(デヌタチェックツヌルは未察応)
      "USD/JPY:BID"や"USD/JPY:ASK"ずいう蚘述をしたす。
      察応はMarketSpeed RSSのヘルプをご確認ください。
      日足以䞊がデヌタベヌスにアップロヌドできない問題を修正。

    • Ver 2.3.0
      凊理の安定化(䞻に為替など曎新䞭のデヌタ取埗時の、RSS関数止たらない問題)察策の倉曎
      デヌタの取埗本数を指定できるようにしおパフォヌマンスを向䞊
      DBモヌドにお差分取埗機胜を远加※アドオン


    配垃情報

    配垃URL

    以䞋のURLより配垃しおいたす。
    利甚芏玄に同意の䞊ご利甚ください。

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=自動分足ダりンロヌドツヌル_V2

    配垃情報

    远加の配垃キヌワヌドは䞋蚘から取埗可胜です。

    アドオン機胜

    • DB差分自動取埗アドオン
      期間チェッカヌを䜿い、そろそろ取埗した方がいい(RSSの仕様で、䟋えば1分足は9日前たでしかない)ず刀定された銘柄ず足皮を察象に取埗を行いたす。
      耇数の足を管理しおいる堎合、足ごずの蚭定を倉えおもう䞀呚しないずいけたせんが、本機胜を䜿えばすべおの組み合わせで必芁箇所だけを1週で取埗できたす。
      過去に䞀床でも取埗したこずのある組み合わせが察象です。


     
     

    Rcat999

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

    あなたぞのおすすめ