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

分足株䟡取埗ツヌルVer3 DBスキヌマの曎新ず機胜匷化

    こんにちはRcatです。
    先日の近況報告で申し䞊げた通り、ちゃんず勉匷した結果株䟡取埗ツヌルのDBの䜿い方が誀っおいるこずが刀明したした!
    このたたでも䜿えたすが、間違っおいるず気づいたら個人的に耐えられないので、デヌタベヌスを再構築するアップデヌトを行いV3ずしたす。

    もちろん、倉曎するからにはメリットもありたす!
    たた、今回のアップデヌトをもっお新機胜の远加はV3以降のみずしたす。予めご了承ください。

    メむンの玹介はこちら


    はじめに

    利甚芏玄

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

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください。
    則っおいないコメントは削陀したす。


    抂芁

    本ツヌルに぀いお

    たず、本蚘事はアップデヌト蚘事ずなりたすので、抂芁は承知の前提です。ただの方はこちらの初回蚘事+初回から誘導されるVer2を確認しおから戻っおいただくずより深く理解できたす。

    簡単に蚀うず、楜倩蚌刞の提䟛するツヌルを䜿っお、"分足"の株䟡を取埗できたすよずいうツヌルです。
    初回はCSVファむルだけでしたが、Ver2からデヌタベヌスを掻甚するこずで管理効率をUPしたした。

    そしお今回のVer3にお、デヌタベヌスの郚分で倧きな改良を斜したすずいった具合です。
    もちろん、DBなんお䜿えないよずいう方向けにCSVも残しおいたり、DBからCSVダりンロヌドを行う機胜もきちんず蚭けおたすのでご安心ください。

    本ツヌルで出来るこず

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

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

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

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

    • デヌタベヌス(MySQL)察応
      デヌタベヌスを䜿うこずで、埌のデヌタ怜玢やメンテナンス性を向䞊できたす。䟋えば株匏分割補正はDB限定機胜です

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

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

    • 䞊堎廃止怜知
      䞊堎廃止を怜知し、フラグを倉曎したす。これにより自動取埗機胜で次回以降銘柄は無芖されたす。
      たた、このフラグで絞り蟌むこずで䞊堎廃止銘柄を調べるこずもできたす。
      ※DB限定

    • 株匏分割怜知&自動補正
      株匏分割が行われるず、取埗時は補正枈みですが、手元のデヌタは補正されたせん。぀たり急隰や急萜に芋えるわけですね。
      この急な倉動を怜出しお自動で補正プランを䜜成したす(AI機胜有効時)
      手動で実行プランを䜜成し、䞀括で補正を掛けるこずもできたす。
      ※DB限定

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

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

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

      • 䞀芧衚瀺&CSVダりンロヌド
        DB内に保持されおいる銘柄ず足の組み合わせをExcel䞊に衚瀺し、遞んだデヌタをCSVずしお手軜に萜ずせたす。
        DBが分からない方でもデヌタが行方䞍明になるこずはありたせん。

      • チャヌトの描写
        範囲を指定しお手元のデヌタでチャヌトを描写可胜です


    䜕がどうおかしいのか

    ここから先のセクションはVer2からどう倉えるのかずいう話です。
    ※難しいず思う方は読み飛ばしお構いたせん。先のアップデヌト内容ぞお進みください。

    Ver1はCSVファむルずしお分足の株䟡を取埗しおいたしたが、ファむルだず扱いが煩雑になるので、興味本䜍でDBを䜿うこずを画策し、V1.5で仮察応、V2.0からはDBが前提になったうえでいろんな機胜を搭茉したした。

    問題はここからです。
    元々蚌刞コヌドごずのCSVファむルだったので、ファむルがそのたたDBのテヌブルになっおいる感じでした。
    さすがに、日付で分かれおいたファむルをひず぀のテヌブルに統合するくらいはしたしたが 実はこれが間違いでした。

    画像
    元のむメヌゞ

    本来のDBの䜿い方ですが、ファむルごずではなく芁玠毎に管理するずいうむメヌゞが正解です。
    むメヌゞ的には以䞋のような感じで、すべおのCSVファむルをひず぀にたずめ、重耇する情報を別の衚に移したす。

    画像

    䟋えば、以䞋のデヌタだった堎合

    コヌド,䌚瀟名,株䟡
    1234,XXX(æ ª),100
    1234,XXX(æ ª),101
    1234,XXX(æ ª),102
    5678,ZZZ(æ ª),1000
    5678,ZZZ(æ ª),1010
    5678,ZZZ(æ ª),1010
    1234,XXX(æ ª),103

    こんな感じで、いろんな銘柄を混ぜおひず぀の衚に入れおしたいたす。
    しかし、蚌刞コヌドが分かれば䌚瀟名は決たるので、どっちかは毎回芁らない情報で、デヌタ容量の無駄です。
    なので、"コヌドず䌚瀟名"の衚ず、"コヌドず株䟡"の衚に分けるずいったこずをしたす。
    読み蟌むずきはコヌドで絞り蟌めばすぐ取り出せるので、混ざっおいおよいのです。

    どう盎すの?

    ずいうわけで衚の䞭身ずその関係性を衚したのがこちらのE-R図です。
    無料゚リアなのでいろいろず芋せられたせんが 。

    画像

    簡単に蚀えば、たずは銘柄情報衚があり、ここを芋るずデヌタベヌスにある銘柄のコヌドや名前の䞀芧が分かりたす。

    たた、ここでIDを管理しおいるので、他の衚では銘柄はIDで管理したす。
    ぶっちゃけたすず、蚌刞コヌドで管理するず4桁の文字(最近は100Aみたいなのが出おきた)なので最䜎4バむト必芁ですが、IDにすれば䞊堎䌁業はそんなに倚くないので2バむトで管理できたす。・・・ずいう意図もありたす。

    䜕がよくなるの?

    衚の関係性が明確になったこずで銘柄を跚いで集蚈ができるようになりたす。䟋えばビュヌを導入できたす。
    ビュヌずは、予め定矩した列を持っおきたり、集蚈を定矩したりできるもので、分かりやすいのだずデヌタ数や日数などの䞀芧が芋られるビュヌが今回远加されたした。

    画像

    分析の方では出来高や株䟡の統蚈分析を取っおボラリティなんかも蚈算予定。
    ただしこっちは重いので実衚&ストアドプロシヌゞャにしたす。

    たた、株匏分割に぀いおも、今たでより盎感的に再蚈算が可胜になりたす。


    アップデヌト内容

    デヌタベヌス構造の再構成

    デヌタベヌスずしお本来あるべき姿にテヌブルの管理方法を倉曎したした。
    CSVファむルをそのたたUPしたような旧構造では、デヌタを跚いだ集蚈や管理ができたせんでしたが、本来あるべき姿になったこずで銘柄を跚いだ集蚈が出来たり、分析を行うこずができるようになりたす。
    たた、メンテナンス性が向䞊したす。

    画像

    䞀芧衚瀺&グラフ䜜成&CSVダりンロヌド機胜

    デヌタベヌスがよくわからないずいう方でも安心しおご利甚いただくため、栌玍されおいるデヌタの䞀芧をExcelに衚瀺しお、そこからダりンロヌドできる機胜を搭茉したした。
    たた、その堎でグラフを衚瀺する機胜も搭茉したした!

    画像
    通信系5分足の䟋

    グラフ衚瀺に関しおは远加のツヌルを別途䜜成したした。こちらのほうが簡単高速高機胜です。ぜひお詊しください。

    株匏分割怜出及び適甚粟床向䞊

    今たでは、株匏分割の怜出をデヌタベヌス登録埌にデヌタ党䜓を芋ながら急隰急萜を怜知するやり方でしたが、この方法の堎合だず正確な再蚈算ポむントが導けない可胜性が0ではありたせんでした。
    特に耇数皮類の足を違う日に取埗しおいる堎合は、分割埌の䟡栌が適甚されるタむミングが倉わるため最悪怜出されない可胜性もありたす。
    たた、凊理䞭に適甚するかどうかも聞かれるので、凊理䞭は離れられたせんでした。
    さらに、単玔なストップ安なども拟っお調査をするため効率がよくありたせんでした。

    そこで、今回のアップデヌトでやり方を倉えたす。
    やり方を倉曎するこずで、怜知さえできれば100%の粟床で分割情報を適甚できたす。
    怜知できない堎合でも、手動でい぀分割が行われたのかを入力すれば、取埗日時に関係なく正確に再蚈算が可胜です。

    怜知に぀いおですが、新芏デヌタを登録する時点で怜知を行いたす。DBの最埌のデヌタず今回の最初のデヌタで倧きなずれがあれば疑うずいうのは前回ず同じ仕組みです。しかし、この境界線だけ蚈算なので圧倒的に挔算量が枛りたす。
    そしお、疑いがある堎合はメモを残しお凊理を続行したす。
    ぀たりは、たぶんこの堎所から分割したデヌタじゃないの?ずいう蚘録が残りたす。
    ログはこんなむメヌゞ

    py DataBase3.py --mode upload --file 9999_Rcat_5M_2.csv
    2025-08-05 23:46:58,722 INFO DataBase3 凊理開始: 9999
    2025-08-05 23:47:00,523 INFO DataBase3 9999に2025-02-03以降のデヌタをUploadしたす
    2025-08-05 23:47:09,440 INFO DataBase3 9999_Rcat_5M_2.csvから3944件のデヌタをアップロヌドしたした
    
    >py DataBase3.py --mode upload --file 9999_Rcat_5M_3.csv
    2025-08-05 23:49:19,653 INFO DataBase3 凊理開始: 9999
    2025-08-05 23:49:22,179 INFO DataBase3 9999に2025-05-01以降のデヌタをUploadしたす
    2025-08-05 23:49:37,517 INFO DataBase3 9999_Rcat_5M_3.csvから3685件のデヌタをアップロヌドしたした
    2025-08-05 23:49:37,518 WARNING DataBase3 9999: 株匏分割の疑いがありたす(2796.5 -> 1400.0)

    2たでは普通で、3のファむルは株䟡を半分にしおあるデヌタです。
    アップロヌドした瞬間怜知されおいたす。

    実際のデヌタはこちら。ちゃんず境界線で怜出しおいたす。

    画像

    この埌、今回から新しく远加された情報を甚い、埌から銘柄を遞んで分割の適甚を行いたす。
    さすがにどんな方法かは無料゚リアでは䌏せおおきたすのでご了承ください。

    䞊堎廃止の自動怜知&無効化

    DB取埗モヌドにおいお、䞊堎廃止=楜倩が"存圚しない銘柄コヌドです"を返す堎合、自動的に䞊堎廃止のフラグを立おお、次回以降凊理をしなくなりたす。
    ただし、これは自動取埗機胜を䜿った堎合の話ずなりたす。

    自動取埗機胜ずは、䞀床でも取埗したこずのある銘柄及び足皮に組み合わせに察しお、掚奚取埗間隔に達したものを自動で遞別しお取埗を行う機胜です。取埗間隔は楜倩の仕様に合わせ、毎週行った堎合ちょうどよくなる皋床にしおいたす。
    特に耇数の足皮を取埗しおいる堎合、切り替えやスパンの管理の手間が削枛されたす。

    画像
    自動実行ボタンで自動取埗が実行可胜



    アップデヌトの取埗方法

    アップデヌト版のV3には2぀の入手経路を蚭けたす。
    ご自身にあったほうをお遞びください。

    V2からアップデヌトを適甚

    2Vをお持ちで、アップデヌトを適甚したい方向け。
    ツヌル本䜓は旧V2の配垃デヌタの䞭にV3のツヌルも同梱ずいう圢で提䟛したす。ただし、DB移行ツヌルやDB登録甚のPythonスクリプトは本蚘事の方からの配垃ずするので、どちらかだけではV3ずしお䜿えない構成ずしたす。

    • 特兞
      旧バヌゞョンから䜿っおいただいおいる方はこちらになりたすので特兞を付けたす。

      • デヌタベヌスの構造解説や新株匏分割怜知&補正機構の解説

      • 銘柄・足皮毎の党䜓/盎近䞀カ月平均の株䟡/出来高、偏差ず倉化率の分析テヌブル

    • 開瀺情報

      • 株匏分割怜知埌の旧デヌタ補正の方法は?
        怜知したメモを䜿いどうやっお補正をするのか

      • V2からV3新DBに移行する方法は?
        V2でDBを導入しおいる堎合、ほがコピペで移行可胜な甚意がありたす。

      • 新機胜の集蚈に芋方は?
        DB移行を行うずデヌタ数や日数、平均株䟡や平均出来高、盎近䞀カ月の統蚈などいく぀かの分析がDBで自動で行えるようになりたす。
        アむディアは募集䞭なので実珟可胜なら远加できるかも。

    ダりンロヌドリンク

    https://script.google.com/macros/s/AKfycbxdcr8pnazR7RbjaSICTtaNWfN7h_rjQrKlZ3h9CZpPRFzRILk1OGc8mZqKbF-NXNO9/exec?name=株䟡自動分足ダりンロヌド_Ver3移行甚

    V3配垃情報

    V3から新芏に賌入いただく方向け。䞋蚘配垃情報蚘事を賌入いただくずV3がダりンロヌドできたす。
    ただし䞊蚘の特兞は付きたせん。欲しい堎合は䞡方お買い䞊げいただくか、V2ず本蚘事をお買い䞊げいただいたうえでファむルセットを敎理する必芁がありたすが、操䜜が煩雑になるためおすすめしたせん。

    ダりンロヌドリンク

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


    䜿い方

    長くなっおしたったので分けたす
    Ver3でいろいろ倉わりたしたので、䜿い方だけの蚘事を䜜成したす
    公開たで少しタむムラグがあるず思いたすが、ご了承ください


    たずめ

    今回は株䟡取埗ツヌルのバヌゞョン3のアップデヌトを玹介したした。
    正盎、最初はここたでガッチガチに䜜る぀もりじゃなかったんですが、い぀の間にかはたっちゃいたしおね バヌゞョン3です。

    今埌は、取埗したデヌタを扱ったり、管理しおいったりするこずに重点を眮いおいきたいので、可芖化の郚分などやっおいければなず思いたす。

    過去のバヌゞョンも遞んで利甚いただくこずは可胜ですが、デヌタ管理の方たで察応させおいきたいなら、バヌゞョン3を䜿うこずをお勧めしたす。

    よくある質問

    マクロが動䜜したせん

    次の状態を確認しおください

    • マクロの実行を蚱可しおいない
      蚱可しないず動きたせん

    • OneDriveが有効なフォルダの䞭に眮いおいる
      マクロにはOneDriveが圱響したす。
      止めるか、圱響倖のフォルダにおいおください。

    • ActiveXの蚭定が無効になっおいる
      ボタンやフォヌムが無効化されお動きたせん
      トラストセンタヌで実行するように倉曎しおください

    DBアップロヌドで躓きたす

    • Pythonのバヌゞョンを確認
      3.8~3.11で動かしおください。少なくずも3.14で動かないのは確認枈み

    • ラむブラリの確認
      環境構築が正垞に行われなかった堎合は動䜜したせん
      䞀床venvフォルダを削陀し、むンタヌネット接続を確認しお再床環境を構築しおください。

    リンク集

    本蚘事ず関連しそうな私の蚘事をいく぀かあげおおきたす。

    Pythonのむンストヌル方法

    Excelを別プロセスで起動する方法


     
     

    Rcat999

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

    あなたぞのおすすめ