當前位置:首頁 » 科技股票 » python獲取所有股票歷史數據

python獲取所有股票歷史數據

發布時間: 2023-10-19 20:51:44

A. windpy python w.wsd獲取哪些歷史行情數據

獲取哪些歷史行情數據
結果顯示:
[html]
root@zhou:/home/zhouqian/python# py value_keys.py test.txt
ssss
2 key3 => ['6', '33']
3 key2 => ['1', '2', '45']
3 key1 => ['4', '5', '13']
遇到的問題總結:
split的用法:line.split()就是分開出左右兩邊的值,在默認的情況下是以一個空格或者多個空格為分割符的,
has_key()的用法:是查看字典數據類型中有沒有這么一個關鍵字。上面可知result={}是初始化了一個字典的數據類型。

B. python用什麼方法或者庫可以拿到全部股票代碼

首先你需要知道哪個網站上有所有股票代碼,然後分析這個網站股票代碼的存放方式,再利用python寫一個爬蟲去爬取所有的股票代碼

C. python的QSTK中,裡面股票的歷史數據是包含在包裡面么,還是通過網路獲取

在 Python的QSTK中,是通過 s_datapath 變數,定義相應股票數據所在的文件夾。一般可以通過 QSDATA 這個環境變數來設置對應的數據文件夾。

具體的股票數據來源,例如滬深、港股等市場,你可以使用免費的WDZ程序輸出相應日線、5分鍾數據到 s_datapath 變數所指定的文件夾中。然後可使用 Python的QSTK中,qstkutil.DataAccess進行數據訪問。

D. 為什麼pandas有國內股票數據

都是公開發行上市的股票,當然會有的,Pandas是數據分析工具包
TuShare是國內股票數據抓取工具,除了股票的實時和歷史數據,還有基本面數據,加上自然語言處理(比如情緒分析),或者機器學習,就比較有趣了。

E. 怎樣遍歷任意股票歷史數據要求使用循環。

以python+tushare為例:
import tushare as ts
一、遍歷所有股票數據:

df=ts.get_stock_basics()

for i in range(len(df)):

df=ts.get_k_data(code=df.code[i], start='2015-12-15', end='2016-08-05')

(但此方法耗時較長,建議遍歷之後用pd.to_csv保存到本地,然後每日更新,以後在本地讀取數據速度會更快)

二、遍歷指定股票數據:

stock_list=['000001','000002','000003']

for i in range(len(df)):

df=ts.get_k_data(code=stock_list[i], start='2015-12-15', end='2016-08-05')

F. 如何選取過去每個月股票的市值 python

類似,可以修改一下
股票漲跌幅數據是量化投資學習的基本數據資料之一,下面以python代碼編程為工具,獲得所需要的歷史數據。主要步驟有:
(1) #按照市值從小到大的順序活得N支股票的代碼;
(2) #分別對這一百隻股票進行100支股票操作;
(3) #獲取從2016.05.01到2016.11.17的漲跌幅數據;
(4) #選取記錄大於40個的數據,去除次新股;
(5) #將文件名名為「股票代碼.csv」。
具體代碼如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 17 23:04:33 2016
獲取股票的歷史漲跌幅,並分別存為csv格式
@author: yehxqq151376026
"""

import numpy as np
import pandas as pd

#按照市值從小到大的順序活得100支股票的代碼
df = get_fundamentals(
query(fundamentals.eod_derivative_indicator.market_cap)
.order_by(fundamentals.eod_derivative_indicator.market_cap.asc())
.limit(100),'2016-11-17', '1y'
)

#分別對這一百隻股票進行100支股票操作
#獲取從2016.05.01到2016.11.17的漲跌幅數據
#選取記錄大於40個的數據,去除次新股
#將文件名名為「股票代碼.csv」
for stock in range(100):
priceChangeRate = get_price_change_rate(df['market_cap'].columns[stock], '20160501', '20161117')
if priceChangeRate is None:
openDays = 0
else:
openDays = len(priceChangeRate)
if openDays > 40:
tempPrice = priceChangeRate[39:(openDays - 1)]
for rate in range(len(tempPrice)):
tempPrice[rate] = "%.3f" %tempPrice[rate]
fileName = ''
fileName = fileName.join(df['market_cap'].columns[i].split('.')) + '.csv'
fileName
tempPrice.to_csv(fileName)

G. python讀取財經數據

提取日期數據基本語法
from WindPy import w
w.start()
當出現.ErrorCode==-103說明沒連接上,要start一下

w.wsd(security, fields, startDate = None, endDate= None , options = None)
opion 可選(period, 日期類型, 貨幣類型,前後復權)

提取財務數據基本語法
w.wss(security, fields, options = None)

提取板塊日序列基本語法
w.wses(sectorCode, fields, startDate = None, endDate = None, options = None)

提取板塊日截面數據基本語法
w.wsee(sectorCode, fields, options=None)

提取宏觀數據基本語法
w.edb(codes, startDate =None, endDate =None, options=None)

1.日期序列基本語法
ts.get_hist_data(stock,start,end)
注意:1.stock不能是集合,只能單個股票 2.需要帶上.sz或.sh 3.沒有field,只能取出數據後再切除.

2.pro用法
pro.daily(code, start, end, fields)

tushare引用語句

弊端也很明顯,一方面不能stock集合輸入,一次只能調取一個股票對應數據,另一方面tushare雖是免費試用,但有許可權限制。

基本語法
wb.get_data_yahoo(code, start, end)
wb.DataReader(code, 'yahoo', start, end)

沒法添加fields, 雖能集合適用,但出來的索引挺奇怪的

推薦使用定義函數或用for循環批量獲取數據

總體感覺wind api最舒服,但需要賬號,mac也不能直接調用wind api。還是推薦tushare的pro用法。

小白學習中,請指教=v=

H. 如何用python 爬蟲抓取金融數據

獲取數據是數據分析中必不可少的一部分,而網路爬蟲是是獲取數據的一個重要渠道之一。鑒於此,我拾起了Python這把利器,開啟了網路爬蟲之路。

本篇使用的版本為python3.5,意在抓取證券之星上當天所有A股數據。程序主要分為三個部分:網頁源碼的獲取、所需內容的提取、所得結果的整理。

一、網頁源碼的獲取

很多人喜歡用python爬蟲的原因之一就是它容易上手。只需以下幾行代碼既可抓取大部分網頁的源碼。

為了減少干擾,我先用正則表達式從整個頁面源碼中匹配出以上的主體部分,然後從主體部分中匹配出每隻股票的信息。代碼如下。

pattern=re.compile('<tbody[sS]*</tbody>')
body=re.findall(pattern,str(content)) #匹配<tbody和</tbody>之間的所有代碼pattern=re.compile('>(.*?)<')
stock_page=re.findall(pattern,body[0]) #匹配>和<之間的所有信息

其中compile方法為編譯匹配模式,findall方法用此匹配模式去匹配出所需信息,並以列表的方式返回。正則表達式的語法還挺多的,下面我只羅列所用到符號的含義。

語法 說明

. 匹配任意除換行符「 」外的字元

* 匹配前一個字元0次或無限次

? 匹配前一個字元0次或一次

s 空白字元:[<空格> fv]

S 非空白字元:[^s]

[...] 字元集,對應的位置可以是字元集中任意字元

(...) 被括起來的表達式將作為分組,裡面一般為我們所需提取的內容

正則表達式的語法挺多的,也許有大牛隻要一句正則表達式就可提取我想提取的內容。在提取股票主體部分代碼時發現有人用xpath表達式提取顯得更簡潔一些,看來頁面解析也有很長的一段路要走。

三、所得結果的整理

通過非貪婪模式(.*?)匹配>和<之間的所有數據,會匹配出一些空白字元出來,所以我們採用如下代碼把空白字元移除。

stock_last=stock_total[:] #stock_total:匹配出的股票數據for data in stock_total: #stock_last:整理後的股票數據
if data=='':
stock_last.remove('')

最後,我們可以列印幾列數據看下效果,代碼如下

print('代碼',' ','簡稱',' ',' ','最新價',' ','漲跌幅',' ','漲跌額',' ','5分鍾漲幅')for i in range(0,len(stock_last),13): #網頁總共有13列數據
print(stock_last[i],' ',stock_last[i+1],' ',' ',stock_last[i+2],' ',' ',stock_last[i+3],' ',' ',stock_last[i+4],' ',' ',stock_last[i+5])

I. 股票池如何用python構建

股票池用python構建的方法是:使用第三方平台,目前可以使用的是聚寬,對比一下聚寬、優礦、大寬網(已經倒閉了),都大同小異,選哪個都一樣。

雖然這些平台都大同小異,但是代碼可不能簡單復制粘貼,因為底層函數庫是不一樣的,有可能在別的平台根本用不了某個函數,並且簡單復制到自己電腦中的python的話百分之百用不了。

代碼的思路是,每個月底進行調倉,選出市值最小的股票交易,去掉ST/*ST/停牌/漲停的股票,然後選擇最小市值的10隻,基準是創業板綜指,看看結果。

python構建數據獲取方法是:

這里使用為了接下來的操作需要將一定歷史范圍的股票數據下載下來,這里下載起始時間為20160101,截至時間為運行代碼的時間范圍的歷史日線數據。

這里以tushare為例, tushare獲取歷史數據有兩種方式。

第一種是以迭代歷史交易日的方式獲取所有歷史數據,假設獲取三年的歷史數據,一年一般220個交易日左右,那麼3年需要請求660多次左右,如果以這種方式的話,就下載數據的時間只需要1分鍾多點的樣子。

第二種是以迭代所有股票代碼的方式獲取所有歷史數據,股票數量有大概3800多個,需要請求3800多次,但是在積分有限的情況下一分鍾最多請求500次,也就意味著僅下載數據的時間至少需要大概8分鍾時間。

理論上,你獲取的歷史范圍超過17.3年,那麼使用第一種方式才比第二種方式快。

熱點內容
如何成立炒股工作室合法 發布:2024-11-30 05:36:58 瀏覽:69
搞金融的年薪50萬算什麼水平 發布:2024-11-30 05:34:48 瀏覽:129
金融概念技術有哪些 發布:2024-11-30 04:45:29 瀏覽:766
如何用電腦在東方財富炒股票 發布:2024-11-30 04:45:28 瀏覽:882
金杯股票為啥漲停 發布:2024-11-30 04:43:21 瀏覽:264
c類基金多少錢 發布:2024-11-30 04:23:21 瀏覽:971
牛市熊市基金怎麼樣 發布:2024-11-30 04:21:55 瀏覽:943
股權基金公司怎麼樣 發布:2024-11-30 04:08:08 瀏覽:681
除權日對買賣股票的影響 發布:2024-11-30 04:03:15 瀏覽:222
自動售貨機如何檢驗貨幣 發布:2024-11-30 03:57:32 瀏覽:102