4000銘柄の株価情報を全部取得するスクリプト

スポンサーリンク

先日、東証の4000銘柄の株価情報を取得する記事を書きました。

この方法を自動化する方法にuipathを使用していました。予め登録した計算式入りのエクセルブックを、マーケットスピード2の制限に引っかからないように複数用意しておきます。
これをuipathで決められた間隔でスケジュールしておけば問題なく取得できます。
計算式は値として貼り付けることで、その日の全銘柄を取得できたわけです。

今回はVBAを記述することで、エクセルブック全体で全銘柄の株情報を取得することを可能にしました。このVBAの挙動は以下の通りです。

  1. JPXからコード一覧が記述されたファイルをエクセルで取得します。株価コードが必要なため、このようにします。
  2. 取得したい情報(現在値、銘柄名称、出来高など)をタイトル行として記述します。簡単のため、取り込まれたファイルの右に書きました。
  3. VBAを記述します。このVBAは50銘柄の情報をすべて取得します。その後、数値を貼り付けます。この時点で、計算式が存在しないためマーケットスピード2の制限(表示銘柄数超過)に触れることはありません。これを繰り返し、全銘柄の情報を取得します。

Excel VBAで複雑なタスクをこなしているときに、OpenAIのGPT-4(人工知能)の力を借りて問題を解決する機会がありました。これは非常に興味深い経験であり、その過程を紹介したいと思います。

問題はExcelシートに数千行のデータがあり、それぞれの行に特定の関数(RssMarketという関数)を適用して結果を得ることでした。これは一見簡単に見えますが、実際にはExcelの処理能力の制約から、すべての計算を一度に行うことができませんでした。

そこで私はVBAを使用してこの問題に取り組みましたが、関数が非同期で動作するため、最初のマクロ(関数をセルに挿入する)と2つ目のマクロ(結果を値として保存する)の間に適切なタイミングを設定する必要がありました。

この問題を解決するために、私はOpenAIのGPT-4に助けを求めました。私が試した多くのアプローチの中で、最終的に成功したのは、VBAの Application.OnTime メソッドを使用して、2つ目のマクロを遅延実行することでした。

これにより、関数の計算が完了するのを待ってから結果を値として保存することができました。また、4000行以上のデータを処理するためには、このプロセスをループさせる必要がありました。

この経験から、私は人工知能の力が複雑な問題を解決するための新たな道具であることを再確認しました。また、AIと人間が協力することで、作業をより効率的で創造的なものにする可能性を感じました。

この記事の内容があなたの問題解決に役立つことを願っています。人工知能の力を借りて、私たちはより複雑な問題に取り組むことができます。私たちの可能性は無限大です。

VBAで計算式を入力した後、5秒待つことにしてから、値として貼り付けます。K列の1行目から次の情報を取得することを前提としています。

現在日付、現在値時刻、銘柄名称、前日比、前日比率、出来高、売買代金、時価総額、逆日歩、信用倍率、貸借倍率、決算発表日、PER、PBR

これらの項目を増減するにはVBAの内容を見れば比較的簡単に自分の欲しい情報を得ることができます。

コードの詳細や、この問題を解決するまでの詳細な手順については、以下のダウンロードリンクから参照できます。[ダウンロードリンク]

下記が実際の対話内容です。
https://chat.openai.com/share/2dd4f01d-5e11-468e-9d1d-5ac97ca1fda7

GitHub
https://github.com/superdoccimo/4000

タイトルとURLをコピーしました