當前位置:首頁 » 科技股票 » 編程貨取股票歷史數據

編程貨取股票歷史數據

發布時間: 2023-08-04 20:57:43

① 如何選取過去每個月股票的市值 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)

② matlab可以直接獲取國內股票或者期貨的歷史數據嗎

matlab可以直接獲取國內股票或者期貨的歷史數據嗎
:有個wdz程序,可免費輸出txt、csv格式的滬深等市場的全部歷史日線、10多年的5分鍾數據。你可先用你這個程序,免費輸出txt格式的對應數據,然後在matlab中讀取即可。

③ 如何使用EXCEL讀取通達信股票日線數據

定量分析的第一步,是獲取數據。 獲取股票歷史行情數據最方便的途徑,就是直接讀取股票行情軟體留在你電腦中的日線數據文件。 但如果不是程序員,電腦里一般不會有VB、VC之類的編程語言。 其實,大家的電腦中一般都有OFFICE。OFFICE中的EXCEL自帶了一個VBA語言的編程環境。功能也很強大。 我用EXCEL里的VBA編寫了一段代碼,讀取通達信股票行情軟體的日線文件。已經測試通過。 代碼如下。與愛好定量分析的朋友分享。 TypeMyType a1AsLong'標示碼 a2AsLong'日期 a3AsSingle'開盤價 a4AsSingle'最高價 a5AsSingle'最低價 a6AsSingle'收盤價 a7AsSingle'成交金額 a8AsLong'成交量 EndType Sub按鈕1_Click() DimFile2AsInteger DimbAsMyType File1=FreeFile Opensh600000.dayForBinaryAccessReadAs#File1i=1DoWhileNotEOF(File1) Get#File1,,b Cells(i,1)=b.a1 Cells(i,2)=b.a2 Cells(i,3)=b.a3 Cells(i,4)=b.a4 Cells(i,5)=b.a5 Cells(i,6)=b.a6

④ 1、如何將財經類網上股票歷年分紅數據提取到EXCEL表裡,並獲取股票實時價格

回答此類問題的描述會被網路知道判違規。

請在「數據」選項下的「自網站」進行相應的操作,然後設置數據更新頻率,即可。

⑤ 如何使用 Yahoo,Finance stock API 獲取股票數據

有三種方法獲得數據,具體如下:

1、通過API獲取實時數據

請求地址:http://finance.yahoo.com/d/quotes.csv?s=<股票名稱>&f=<數據列選項>

具體參數:

s – 表示股票名稱,多個股票之間使用英文「+」分隔如:」XOM+BBDb.TO+MSFT」,表示三個公司的股票:XOM,BBDb.TO,MSFT。

f – 表示返回數據列,如」snd1l1yr」。更詳細的參見雅虎股票 API f 參數對照表。

2、通過API獲取歷史數據

請求地址如下:http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

具體參數:

s – 股票名稱

a – 起始時間,月

b – 起始時間,日

c – 起始時間,年

d – 結束時間,月

e – 結束時間,日

f – 結束時間,年

g – 時間周期。

例如: g=w, 表示周期是「周"。d表示「日」(day),w表示「周」(week),m表示「月」(mouth),一定注意月份參數,其值比真實數據少1。如需要9月數據,則寫為08。

3、通過API獲取深滬股票數據

雅虎的API是國際性的,支持查詢國內滬深股市的數據,但代碼稍微變動一下,如浦發銀行的代號是:600000.SS。規則是:上海市場末尾加.SS,深圳市場末尾加.SZ。

⑥ 在編程中如何能能獲得股票的數據 例如當前價,最高價,最低價,當前成交量等等

要看使和什麼數據了,每個軟體數據的存儲格式不同,有的還是加密存儲的(如指南針)。

以常見的錢龍數據來說吧(錢龍是最簡單的存儲格式)當前價,最高價,最低價,當前成交量等等都是以隨機文件存儲的長整型數據。下面是讀取錢龍數據的C源碼,你可以參考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

typedef struct { ------->定義數據類型
unsigned long date; ------->定義日期為長整
unsigned long open; ------->定義開盤為..
unsigned long high; ------->定義最高為..
unsigned long low; ------->定義最低為..
unsigned long close; ------->定義收盤為..
unsigned long travl; ------->定義成交量..
unsigned long traca; ------->定義成交額..
char unuse[12];
} RECORD;

RECORD reco;
int readrec(FILE *);

void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打開深發展日線

{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}

int readrec(FILE *fp)

{

float fn;

while (! feof(fp)) {

fread(&reco,sizeof(RECORD),1,fp);

printf("%10lu ",reco.date);
fn=float(reco.open)/1000;

printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");

return 0;

⑦ 如何下載所有股票的歷史數據

下載所有股票的歷史數據,以同花順股票軟體為例:
1、首先切換到要下載數據的股票K線形態,按「F1」進入「日線某某股票歷史成交」;
2、點擊滑鼠右鍵->數據導出->導出所有數據->在「請選擇導出的類型」中選擇excel或txt,,只有這二種格式可以選擇;
3、選取好後點擊下一步,在「導入導出對話框模板」中選擇要的項目(如最高價、最低價,開盤價等,默認是全選);
4、點下一步,完成。默認保存路徑在桌面上。

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

以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')

⑨ 如何編程從免費股票軟體中提取實時數據

自己寫程序的話,一種方法是從已提供的信息源,例如webservice獲取數據。還有種辦法就是去連接提供即時信息的網頁硬解析。

代碼舉例如下:

Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '獲取失敗,請檢查網路狀態,或者API埠URL已經不匹配!'

get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request

def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
獲取個股歷史交易數據
--------
輸入:
--------
code:string
股票代碼 比如:601989
start:string
開始日期 格式:YYYY-MM-DD 為空時取到API所提供的最早日期數據
end:string
結束日期 格式:YYYY-MM-DD 為空時取到最近一個交易日數據
ktype:string(default=D, 函數內部自動統一為大寫)
數據類型 D=日K線,W=周K線,M=月K線,5=5分鍾,15=15分鍾
30=30分鍾,60=60分鍾
輸出:
--------
DataFrame
date 日期
open 開盤價
high 最高價
close 收盤價
low 最低價
chg 漲跌額
p_chg 漲跌幅
ma5 5日均價
ma10 10日均價
ma20 20日均價
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover換手率(指數無此項)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()

url = ''
url = get_url(ktype, code)
print(url)

js = json.loads(ping_API(url))
cols = []

if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)

if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df

def code_to_APIcode(code):
"""
功能:
驗證輸入的股票代碼是否正確,若正確則返回API對應使用的股票代碼
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code

def get_url(ktype, code):
"""
功能:
驗證輸入的K線類型是否正確,若正確則返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')

def ping_API(url):
"""
功能:
向API發送數據請求,若鏈接正常返回數據
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text

#測試入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))

⑩ 請問怎樣用Java獲取股票行情歷史數據新浪、搜狐、百度財經都可以......

publicclassStockConnection{
publicstaticvoidmain(String[]args){
URLur=null;
try{
//搜狐股票行情歷史介面
// ur=newURL("http://q.stock.sohu.com/hisHq?code=cn_300228&start=20130930&end=20131231&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp");
//新浪股票行情歷史介面
ur=newURL("http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?&rand=random(10000)&symbol=sh600000&end_date=20150809&begin_date=20000101&type=plain");
HttpURLConnectionuc=(HttpURLConnection)ur.openConnection();
BufferedReaderreader=newBufferedReader(newInputStreamReader(ur.openStream(),"GBK"));
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

熱點內容
為什麼蛋卷基金費率低 發布:2025-03-10 22:12:51 瀏覽:188
天天基金定期寶都有哪些 發布:2025-03-10 21:23:50 瀏覽:578
醫葯基金利潤有多少 發布:2025-03-10 21:22:59 瀏覽:174
數字貨幣怎麼還要買設備 發布:2025-03-10 21:11:31 瀏覽:820
基金定投出現虧損如何補倉 發布:2025-03-10 21:11:27 瀏覽:8
權益金融是什麼 發布:2025-03-10 20:50:10 瀏覽:116
基金虧損怎麼算 發布:2025-03-10 20:48:28 瀏覽:417
中國銀行股票中長線投資 發布:2025-03-10 20:47:13 瀏覽:240
融炎上海金融信息有限公司怎麼樣 發布:2025-03-10 20:46:59 瀏覽:562
新華壹諾基金怎麼看 發布:2025-03-10 20:39:39 瀏覽:335