<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>集保 &#8211; FinLab</title>
	<atom:link href="https://www.finlab.tw/tag/%E9%9B%86%E4%BF%9D/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.finlab.tw</link>
	<description>深入淺出的量化投資，讓你在在茫茫股海中，找到專屬於自己的投資方法</description>
	<lastBuildDate>Wed, 09 Nov 2022 04:48:37 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.9</generator>

<image>
	<url>https://www.finlab.tw/wp-content/uploads/2020/07/favicon.png</url>
	<title>集保 &#8211; FinLab</title>
	<link>https://www.finlab.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">179699571</site>	<item>
		<title>Python爬蟲教學｜台股數據｜集保戶股權分散表</title>
		<link>https://www.finlab.tw/python_crawler_tdcc_inventory/</link>
					<comments>https://www.finlab.tw/python_crawler_tdcc_inventory/#respond</comments>
		
		<dc:creator><![CDATA[Ben]]></dc:creator>
		<pubDate>Wed, 09 Nov 2022 04:44:46 +0000</pubDate>
				<category><![CDATA[Python新手教學]]></category>
		<category><![CDATA[投資新手]]></category>
		<category><![CDATA[財經PYTHON教學]]></category>
		<category><![CDATA[爬蟲]]></category>
		<category><![CDATA[集保]]></category>
		<guid isPermaLink="false">https://www.finlab.tw/?p=4834</guid>

					<description><![CDATA[籌碼數據豐富是台股一大特色~
集保餘額可以幫助我們判斷不同持股分級的持股者間的資金流動變化，每週公佈的特性可當較同步的指標，也減低日週期資料如「分點籌碼」的雜訊。
分析前得先要有資料，讓我們開始執行我們的Python爬蟲吧！]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size">籌碼數據豐富是台股一大特色，像美國只有「每季」公告的 13F 報告揭露大機構(資產管理規模超過 1 億美元)的資金動向，且截止申報日是每個季度 (三個月) 結束之後的 45 天之內，實在落後太久，很難當即時指標。<br>但台股則是有日週期的「法人買賣超」、「融資融券」、「借還券」、「當沖」、「分點券商進出」&#8230;，週週期的則有本篇要抓的「集保戶股權分散表」、月週期則有「董監內部人持股變動與質押」，可說有許多工具可分析籌碼。<br>集保餘額可以幫助我們判斷不同持股分級的持股者間的資金流動變化，每週公佈的特性可當較同步的指標，也減低日週期資料如「分點籌碼」的雜訊。<br>分析前得先要有資料，讓我們開始執行我們的Python爬蟲吧！</p>



<h2>資料源</h2>



<p class="has-medium-font-size"><a href="https://www.tdcc.com.tw/portal/zh/about/about" target="_blank" rel="noopener">台灣集中保管結算所</a> 簡單說就是統計籌碼的單位，服務項目包括有價證券集中保管帳簿劃撥、集中交易及櫃檯買賣市場有價證券交割、興櫃股票款券結算交割、期貨結算電腦處理、無實體有價證券登錄、參加人有價證券電腦帳務處理等，並接受金融監督管理委員會證券期貨局委託辦理股務查核作業。</p>



<p class="has-medium-font-size">「<a href="https://www.tdcc.com.tw/portal/zh/smWeb/qryStock" target="_blank" rel="noopener">集保戶股權分散表</a>」是官方公開資料，每週六早上有新數據，資料查詢分兩種，一種是單一標的歷史資料查詢 (資料僅1年份) ; 另一種是總表查詢，可以一次抓全部資料，要注意總標指提供單週資料。所以若要歷史數據得自己每一檔慢慢搜集，或參考 <a href="https://ai.finlab.tw/database#inventory" target="_blank" rel="noopener">FinLab 資料庫</a>。</p>



<figure class="wp-block-image size-large"><img width="1024" height="647" src="https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-1024x647.png" alt="截圖 2022 11 09 上午11.06.43" class="wp-image-4835" srcset="https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-1024x647.png 1024w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-300x190.png 300w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-768x485.png 768w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-1536x971.png 1536w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.06.43-2048x1294.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" title="Python爬蟲教學｜台股數據｜集保戶股權分散表 1"></figure>



<h2>Python爬蟲程式範例</h2>



<p class="has-medium-font-size">「集保戶股權分散表」爬蟲的資料處理細節見註解。</p>



<pre class="wp-block-code"><code lang="python" class="language-python">def crawl():
    
    # 將網站回傳資料轉到 read_csv 解析，加入 headers 的功能為防止反爬蟲辨識，官方有時會擋 
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_1\
    0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} 
    res = requests.get("https://smart.tdcc.com.tw/opendata/getOD.ashx?id=1-5", headers=headers)
    df = pd.read_csv(StringIO(res.text))
    df = df.astype(str)
    df = df.rename(columns={
        '證券代號': 'stock_id',
        '股數': '持有股數', '占集保庫存數比例%': '占集保庫存數比例'
    })
    
    # 移除「公債」相關的id
    debt_id = list(set([i for i in df['stock_id'] if i[0] == 'Y']))
    df = df[~df['stock_id'].isin(debt_id)]
    
    # 官方有時會有不同格式誤傳，做例外處理
    if '占集保庫存數比例' not in df.columns:
        df = df.rename(columns={'佔集保庫存數比例%': '占集保庫存數比例'})
        
    # 持股分級=16時，資料都為0，要拿掉
    df = df[df['持股分級'] != '16']
    
    # 資料轉數字
    float_cols = ['人數', '持有股數', '占集保庫存數比例']
    df[float_cols] = df[float_cols].apply(lambda s: pd.to_numeric(s, errors="coerce"))
    
    # 抓表格上的時間資料做處理
    df['date'] = datetime.datetime.strptime(df[df.columns[0]][0], '%Y%m%d')
    
    #只要第二層欄位名稱
    df = df.drop(columns=df.columns[0])
    
    # 索引設置 unique index
    df = df.set_index(['stock_id', 'date', '持股分級'])
    return df</code></pre>



<h3>輸出格式</h3>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="941" src="https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.44.52-1024x941.png" alt="截圖 2022 11 09 上午11.44.52" class="wp-image-4836" srcset="https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.44.52-1024x941.png 1024w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.44.52-300x276.png 300w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.44.52-768x706.png 768w, https://www.finlab.tw/wp-content/uploads/2022/11/截圖-2022-11-09-上午11.44.52.png 1537w" sizes="(max-width: 1024px) 100vw, 1024px" title="Python爬蟲教學｜台股數據｜集保戶股權分散表 2"><figcaption>Python爬蟲輸出結果</figcaption></figure>



<h2>未來開發</h2>



<p class="has-medium-font-size">Python爬蟲蒐集完資料後，我們就可以用資料來撰寫策略或做資料視覺化～究竟「集保戶股權分散表」有沒有用？讓我們繼續看下去。<br>了解更多 <a href="https://www.finlab.tw/?s=%E7%88%AC%E8%9F%B2">爬蟲實做</a> ～</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.finlab.tw/python_crawler_tdcc_inventory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4834</post-id>	</item>
	</channel>
</rss>
