<?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.beeskynohito.workers.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</language><lastBuildDate>Thu, 13 Jun 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://xainome-blog.beeskynohito.workers.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.beeskynohito.workers.dev/posts/2024/06/stock-price-prediction-part-2/</link><pubDate>Thu, 13 Jun 2024 00:00:00 +0000</pubDate><guid>https://xainome-blog.beeskynohito.workers.dev/posts/2024/06/stock-price-prediction-part-2/</guid><description>&lt;h2 id="前回までの話">前回までの話&lt;/h2>
&lt;p>前回ティッカーが取れないという話をしたがあれは嘘だ。&lt;/p>
&lt;p>pyppeteerを使うといったがあれも嘘だ。&lt;/p>
&lt;h2 id="ティッカー取得時の注意点">ティッカー取得時の注意点&lt;/h2>
&lt;p>前回作成したものからほとんど変えることなくSBIに記載されている全てのティッカーを取得することができました。&lt;/p>
&lt;p>ただ、注意点があります。&lt;/p>
&lt;ul>
&lt;li>
&lt;p>アメリカ以外の国ではティッカーの後に特定の文字列をつける必要がある。&lt;/p>
&lt;ul>
&lt;li>ベトナムの「DCL」であれば後ろに「.VN」をつけて「&lt;a href="http://dcl.vn/">DCL.VN&lt;/a>」にする必要がある。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>中国(香港)の「000621」であれば後ろに「.HK」をつけて、さらに前の0を削除して「&lt;a href="http://00621.hk/">00621.HK&lt;/a>」にする必要がある。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>シンガポールとマレーシアに関しては扱うティッカーの文字列がそもそも違うので使えない。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>日本の場合は東京で扱っているものは後ろに「.T」、札幌であれば「.S」が必要。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="前回の修正箇所">前回の修正箇所&lt;/h2>
&lt;p>日本はまだ取得してないですが上記の点に注意して、コード書いていく必要があります。修正した個所はここ&lt;/p>
&lt;pre tabindex="0">&lt;code>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>&lt;/pre>&lt;h2 id="株価取得コード">株価取得コード&lt;/h2>
&lt;p>修正するとティッカーリストが作られるので、取得したティッカーリストをもとに株価を取得すると以下のようなコードになります。&lt;/p></description></item><item><title>短期売買と分析力が向上しそうな株価予測をだらだらとやる part1</title><link>https://xainome-blog.beeskynohito.workers.dev/posts/2024/06/stock-price-prediction-part-1/</link><pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate><guid>https://xainome-blog.beeskynohito.workers.dev/posts/2024/06/stock-price-prediction-part-1/</guid><description>&lt;p>&lt;a href="https://xainome-blog.beeskynohito.workers.dev/posts/2024/05/build-rag-app-part-10/">前回&lt;/a>RAGシステムを作ってみてある程度できました。次に、何を作ろうかということで表題になります。&lt;/p>
&lt;p>前回と違って完成形は全く思い浮かんでません。とりあえずやってれば何かできるかということで作っていきます。&lt;/p>
&lt;h2 id="ティッカー取得">ティッカー取得&lt;/h2>
&lt;p>まずは株価の取得が必要なのですが今回は&lt;strong>yahoo! finance&lt;/strong>のAPIを使って取得しようと思います。取得する際のコードは以下。&lt;/p>
&lt;pre tabindex="0">&lt;code>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>&lt;/pre>&lt;p>pandas_datareaderにyahoo用の株価取得ライブラリがあるのでそれを利用します。ティッカー(銘柄)と株価取得の時間を設定します。&lt;/p>
&lt;p>株価の取得は簡単なのですが、ティッカーをいちいち手入力するのは面倒ですね。時間は変数で設定できますので問題ないです。&lt;/p>
&lt;p>というわけでティッカーを取得するプログラムを作ります。&lt;/p>
&lt;p>ティッカーを取得するには東京証券取引所、名古屋証券取引所、福岡証券取引所、札幌証券取引所、各国別SBI証券ティッカー一覧から取れると思いますが、今回はSBI証券から取得しようと思います。&lt;/p>
&lt;p>昔やろうとしたことがあったのでそれを流用しようと思います。対象となるサイトは&lt;a href="https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html">こちら&lt;/a>です。&lt;/p>
&lt;h3 id="ティッカー取得プログラム">ティッカー取得プログラム&lt;/h3>
&lt;pre tabindex="0">&lt;code># 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>&lt;/pre>&lt;p>これを流用すれば取得できますが、今のサイトではできません。少し前のサイトが&lt;a href="https://megalodon.jp/2021-1117-0941-36/https://search.sbisec.co.jp:443/v2/popwin/info/stock/pop6040_usequity_list.html">こちら&lt;/a>です。こちらであれば取得できますが、最新のティッカー情報が取れないので修正します。&lt;/p></description></item></channel></rss>