<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ティッカー on Xainome Blog</title>
    <link>https://xainome-blog.pages.dev/tags/%E3%83%86%E3%82%A3%E3%83%83%E3%82%AB%E3%83%BC/</link>
    <description>Recent content in ティッカー on Xainome Blog</description>
    <generator>Hugo</generator>
    <language>ja-JP</language>
    <lastBuildDate>Thu, 13 Jun 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://xainome-blog.pages.dev/tags/%E3%83%86%E3%82%A3%E3%83%83%E3%82%AB%E3%83%BC/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>短期売買と分析力が向上しそうな株価予測をだらだらとやる part2</title>
      <link>https://xainome-blog.pages.dev/posts/2024/06/stock-price-prediction-part-2/</link>
      <pubDate>Thu, 13 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2024/06/stock-price-prediction-part-2/</guid>
      <description>&lt;h2 id=&#34;前回までの話&#34;&gt;前回までの話&lt;/h2&gt;
&lt;p&gt;前回ティッカーが取れないという話をしたがあれは嘘だ。&lt;/p&gt;
&lt;p&gt;pyppeteerを使うといったがあれも嘘だ。&lt;/p&gt;
&lt;h2 id=&#34;ティッカー取得時の注意点&#34;&gt;ティッカー取得時の注意点&lt;/h2&gt;
&lt;p&gt;前回作成したものからほとんど変えることなくSBIに記載されている全てのティッカーを取得することができました。&lt;/p&gt;
&lt;p&gt;ただ、注意点があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;アメリカ以外の国ではティッカーの後に特定の文字列をつける必要がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ベトナムの「DCL」であれば後ろに「.VN」をつけて「&lt;a href=&#34;http://dcl.vn/&#34;&gt;DCL.VN&lt;/a&gt;」にする必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;中国(香港)の「000621」であれば後ろに「.HK」をつけて、さらに前の0を削除して「&lt;a href=&#34;http://00621.hk/&#34;&gt;00621.HK&lt;/a&gt;」にする必要がある。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;シンガポールとマレーシアに関しては扱うティッカーの文字列がそもそも違うので使えない。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;日本の場合は東京で扱っているものは後ろに「.T」、札幌であれば「.S」が必要。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;前回の修正箇所&#34;&gt;前回の修正箇所&lt;/h2&gt;
&lt;p&gt;日本はまだ取得してないですが上記の点に注意して、コード書いていく必要があります。修正した個所はここ&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sbi_foreign_stock_list = [
  {&amp;#34;america&amp;#34;:   {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html&amp;#34;, &amp;#34;tag&amp;#34;: &amp;#34;table&amp;#34;, &amp;#34;c_cd&amp;#34;:&amp;#34;&amp;#34;,    &amp;#34;class&amp;#34;: &amp;#34;foo_table md-l-table-01 md-l-utl-mt10&amp;#34;}},
  {&amp;#34;china&amp;#34;:     {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_hk_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.HK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;korea&amp;#34;:     {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_kr_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.KS&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;russia&amp;#34;:    {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_ru_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.ME&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;vietnam&amp;#34;:   {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_vn_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.VN&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;Indonesia&amp;#34;: {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_id_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.JK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  # {&amp;#34;Singapore&amp;#34;: {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_sg_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.SI&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}}, # SBIとyahooのティカーが一致しない件
  {&amp;#34;thailand&amp;#34;:  {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_th_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.BK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  # {&amp;#34;malaysia&amp;#34;:  {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_my_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;.KL&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}}, # SBIとyahooのティカーが一致しない件(SBIは英略、yahooは数値)
]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;株価取得コード&#34;&gt;株価取得コード&lt;/h2&gt;
&lt;p&gt;修正するとティッカーリストが作られるので、取得したティッカーリストをもとに株価を取得すると以下のようなコードになります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>短期売買と分析力が向上しそうな株価予測をだらだらとやる part1</title>
      <link>https://xainome-blog.pages.dev/posts/2024/06/stock-price-prediction-part-1/</link>
      <pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://xainome-blog.pages.dev/posts/2024/06/stock-price-prediction-part-1/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://xainome-blog.pages.dev/posts/2024/05/build-rag-app-part-10/&#34;&gt;前回&lt;/a&gt;RAGシステムを作ってみてある程度できました。次に、何を作ろうかということで表題になります。&lt;/p&gt;
&lt;p&gt;前回と違って完成形は全く思い浮かんでません。とりあえずやってれば何かできるかということで作っていきます。&lt;/p&gt;
&lt;h2 id=&#34;ティッカー取得&#34;&gt;ティッカー取得&lt;/h2&gt;
&lt;p&gt;まずは株価の取得が必要なのですが今回は&lt;strong&gt;yahoo! finance&lt;/strong&gt;のAPIを使って取得しようと思います。取得する際のコードは以下。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import pandas_datareader.data as web
df = web.get_data_yahoo(&amp;#39;1304&amp;#39;, &amp;#39;1980-01-01&amp;#39;, &amp;#39;2024-06-10&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;pandas_datareaderにyahoo用の株価取得ライブラリがあるのでそれを利用します。ティッカー(銘柄)と株価取得の時間を設定します。&lt;/p&gt;
&lt;p&gt;株価の取得は簡単なのですが、ティッカーをいちいち手入力するのは面倒ですね。時間は変数で設定できますので問題ないです。&lt;/p&gt;
&lt;p&gt;というわけでティッカーを取得するプログラムを作ります。&lt;/p&gt;
&lt;p&gt;ティッカーを取得するには東京証券取引所、名古屋証券取引所、福岡証券取引所、札幌証券取引所、各国別SBI証券ティッカー一覧から取れると思いますが、今回はSBI証券から取得しようと思います。&lt;/p&gt;
&lt;p&gt;昔やろうとしたことがあったのでそれを流用しようと思います。対象となるサイトは&lt;a href=&#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html&#34;&gt;こちら&lt;/a&gt;です。&lt;/p&gt;
&lt;h3 id=&#34;ティッカー取得プログラム&#34;&gt;ティッカー取得プログラム&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# SBI証券から海外のティッカーまたはコードと銘柄を取得
from bs4 import BeautifulSoup
import re, sys, time
import requests
import pandas as pd

sbi_foreign_stock_list = [
  {&amp;#34;america&amp;#34;:   {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html&amp;#34;, &amp;#34;tag&amp;#34;: &amp;#34;table&amp;#34;, &amp;#34;c_cd&amp;#34;:&amp;#34;&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;md-l-table-01 md-l-utl-mt10&amp;#34;}},
  {&amp;#34;china&amp;#34;:     {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_hk_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;HK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;korea&amp;#34;:     {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_kr_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;KS&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;russia&amp;#34;:    {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_ru_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;ME&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;vietnam&amp;#34;:   {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_vn_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;VN&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;Indonesia&amp;#34;: {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_id_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;JK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;Singapore&amp;#34;: {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_sg_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;SI&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}}, # SBIとyahooのティカーが一致しない件
  {&amp;#34;thailand&amp;#34;:  {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_th_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;BK&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}},
  {&amp;#34;malaysia&amp;#34;:  {&amp;#34;url&amp;#34;: &amp;#34;https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_my_list.html&amp;#34;,       &amp;#34;tag&amp;#34;: &amp;#34;div&amp;#34;,   &amp;#34;c_cd&amp;#34;:&amp;#34;KL&amp;#34;, &amp;#34;class&amp;#34;: &amp;#34;accTbl01&amp;#34;}} # SBIとyahooのティカーが一致しない件
]

for foreign_dict in sbi_foreign_stock_list:
  for country, values in foreign_dict.items():
    country_url = values[&amp;#34;url&amp;#34;]
    country_tag = values[&amp;#34;tag&amp;#34;]
    country_code = values[&amp;#34;c_cd&amp;#34;]
    country_class = values[&amp;#34;class&amp;#34;]
    html = requests.get(country_url)
    soup = BeautifulSoup(html.content, &amp;#34;html.parser&amp;#34;)
    for table_soup in soup.find_all(country_tag, class_=country_class):
      stock_data = []
      rows = table_soup.find_all(&amp;#34;tr&amp;#34;)
      for row in rows[1:]:
        ticker = row.find_all(&amp;#34;th&amp;#34;)[0].text.strip()
        cols = row.find_all(&amp;#34;td&amp;#34;)
        name = cols[0].text.strip()
        stock_data.append((ticker, name))
      continue

    df_foreign_stock = pd.DataFrame(stock_data, columns=[&amp;#34;コード&amp;#34;, &amp;#34;銘柄名&amp;#34;])
    df_foreign_stock[&amp;#34;コード&amp;#34;] = df_foreign_stock[&amp;#34;コード&amp;#34;].astype(str) + country_code
    df_foreign_stock.to_csv(out_oth_fol + country + &amp;#34;_stock_list.csv&amp;#34;)
    time.sleep(2)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これを流用すれば取得できますが、今のサイトではできません。少し前のサイトが&lt;a href=&#34;https://megalodon.jp/2021-1117-0941-36/https://search.sbisec.co.jp:443/v2/popwin/info/stock/pop6040_usequity_list.html&#34;&gt;こちら&lt;/a&gt;です。こちらであれば取得できますが、最新のティッカー情報が取れないので修正します。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
