㈠ 如何使用 Yahoo Finance stock API 獲取股票數據
1、通過API獲取實時數據
請求地址
http://finance.yahoo.com/d/quotes.csv?s=<股票名稱>&f=<數據列選項>
參數
s – 表示股票名稱,多個股票之間使用英文加號分隔,如」XOM+BBDb.TO+JNJ+MSFT」,羅列了四個公司的股票:XOM, BBDb.TO, JNJ, 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 – 時間周期。Example: g=w, 表示周期是』周』。d->』日』(day), w->』周』(week),m>』月』(mouth),v->』dividends only』一定注意月份參數,其值比真實數據-1。如需要9月數據,則寫為08。
3、通過API獲取深滬股票數據
雅虎的API是國際性的,支持查詢國內滬深股市的數據,但代碼稍微變動一下,如浦發銀行的代號是:600000.SS。規則是:上海市場末尾加.ss,深圳市場末尾加.sz。
㈡ 如何獲取股票數據與歷史數據以資料庫方式存儲的
股票歷史數據查詢有個很不錯的網頁工具可以推薦,地址是http://tool.cnfunny.cn/#/打開就可以直接版使用,還可以大批量下載,權方便省事!
㈢ 開發炒股軟體,從哪裡獲得股票數據
目前市場上有很多股票行情交易軟體,各種軟體提供了豐富的分析和展示功能,而且基本上是免費的。但這些數據都是在線的、無法統一地下載到本地進行分析,於是上網找了些資料,有的是將程序到新浪搜狐的財經頻道或其他財經類網站抓取並分析網頁,這種方法操作性不強而且准確率較低,遇到廣告或網頁變動時風險較大。於是找到了Sina股票數據介面,這個介面是通過在IE端輸入"http://hq.sinajs.cn/list="+相應股票代碼網站返回一個文件形式的數據,也可以通過JS獲取該文件中的變數得到想要的數據字元串。
以大秦鐵路(股票代碼:601006)為例,如果要獲取它的最新行情,只需訪問新浪的股票數據介面:http://hq.sinajs.cn/list=sh601006這個url會返回一串文本,例如:
var hq_str_sh601006="大秦鐵路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
這個字元串由許多數據拼接在一起,不同含義的數據用逗號隔開了,按照程序員的思路,順序號從0開始。
0:」大秦鐵路」,股票名字;
1:」27.55″,今日開盤價;
2:」27.25″,昨日收盤價;
3:」26.91″,當前價格;
4:」27.55″,今日最高價;
5:」26.20″,今日最低價;
6:」26.91″,競買價,即「買一」報價;
7:」26.92″,競賣價,即「賣一」報價;
8:」22114263″,成交的股票數,由於股票交易以一百股為基本單位,所以在使用時,通常把該值除以一百;
9:」589824680″,成交金額,單位為「元」,為了一目瞭然,通常以「萬元」為成交金額的單位,所以通常把該值除以一萬;
10:」4695″,「買一」申請4695股,即47手;
11:」26.91″,「買一」報價;
12:」57590″,「買二」
13:」26.90″,「買二」
14:」14700″,「買三」
15:」26.89″,「買三」
16:」14300″,「買四」
17:」26.88″,「買四」
18:」15100″,「買五」
19:」26.87″,「買五」
20:」3100″,「賣一」申報3100股,即31手;
21:」26.92″,「賣一」報價
(22, 23), (24, 25), (26,27), (28, 29)分別為「賣二」至「賣四的情況」
30:」2008-01-11″,日期;
31:」15:05:32″,時間;
相應地,也可以獲得深市相關股票信息,但是這種方法的弊病是只能獲得最新的或者是當天的股票數據,無法將歷史數據導入到資料庫,當然,你也可以以某一天為起始點自己重新創造歷史數據。所以繼續尋找其他網站介面,終於找到了雅虎財經網站,它提供的介面可以直接把股票歷史數據導成Excel,真實太方便了!直接在瀏覽器地址中數據網址即可http://table.finance.yahoo.com/table.csv?s=股票代碼,但是如果手動輸入再逐一下載保存簡直是太麻煩了,光上證股票就800多個,估計剛手動下載完就又開盤了還得重新下載。所以我的思路是,1、利用多線程方法下載股票文件。2、將這些文件統一導入資料庫。
1.1文件下載類:
import java.io.*;
import java.net.*;
import java.util.List;
import fatowen.stocksystem.sysconfig.data.DownLoadVO;
public class HttpDownFile {
private static int BUFFER_SIZE = 8096;
/**根據URL下載文件並保存
* @param destUrl String
* @param fileName String
* @throws Exception
*/
public void saveToFile(String destUrl, String fileName) throws IOException {
FileOutputStream fos = null;
BufferedInputStream bis = null;
HttpURLConnection httpUrl = null;
URL url = null;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
url = new URL(destUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
fos = new FileOutputStream(fileName);
while ((size = bis.read(buf)) != -1)
fos.write(buf, 0, size);
fos.close();
bis.close();
httpUrl.disconnect();
}
}
1.2多線程實現下載類:
import java.util.ArrayList;
import java.util.List;
public class HisDataAddThread extends Thread {
boolean runFlag = true;
List myParamList = null;
String downLoadData ="";
String baseUrl = "http://table.finance.yahoo.com/table.csv?s=";
String result = "";
String savePath = "";
public HisDataAddThread(List paramList,String savePath){
this.myParamList = paramList;
this.savePath = savePath;
}
public void run() {
while(runFlag){
downLoadData = PublicDataUtil.getDownLoadData(myParamList);
if(!Lib.isEmpty(downLoadData)){
HttpDownFile oInstance = new HttpDownFile();
try {
oInstance.saveToFile(baseUrl + downLoadData, savePath + downLoadData + ".csv");
}catch (Exception err) {
System.out.println(err.toString());
}
}else{
runFlag = false;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public List getFailureList() {
return failureList;
}
public void setFailureList(List failureList) {
this.failureList = failureList;
}
public List getSuccessList() {
return successList;
}
public void setSuccessList(List successList) {
this.successList = successList;
}
}
2.將下載完的文件統一保存到資料庫工具類
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class CSVUtitl {
private BufferedReader bufferedreader = null;
private List list = new ArrayList();
public CSVUtitl(){
}
public CSVUtitl(String filename) throws IOException{
bufferedreader = new BufferedReader(new FileReader(filename));
String stemp;
while((stemp = bufferedreader.readLine()) != null){
list.add(stemp);
}
}
public List getList() throws IOException {
return list;
}
// 得到csv文件的行數
public int getRowNum(){
return list.size();
}
//得到csv文件的列數
public int getColNum(){
if(!list.toString().equals("[]")) {
//csv文件中,每列之間的是用','來分隔的
if(list.get(0).toString().contains(",")) {
return list.get(0).toString().split(",").length;
}else if(list.get(0).toString().trim().length() != 0) {
return 1;
}else{
return 0;
}
}else{
return 0;
}
}
//取得指定行的值
public String getRow(int index) {
if (this.list.size() != 0)
return (String) list.get(index);
else
return null;
}
//取得指定列的值
public String getCol(int index){
if (this.getColNum() == 0){
return null;
}
StringBuffer scol = new StringBuffer();
String temp = null;
int colnum = this.getColNum();
if (colnum > 1){
for (Iterator it = list.iterator(); it.hasNext();) {
temp = it.next().toString();
scol = scol.append(temp.split(",")[index] + ",");
}
}else{
for (Iterator it = list.iterator(); it.hasNext();) {
temp = it.next().toString();
scol = scol.append(temp + ",");
}
}
String str=new String(scol.toString());
str = str.substring(0, str.length() - 1);
return str;
}
//取得指定行,指定列的值
public String getString(int row, int col) {
String temp = null;
int colnum = this.getColNum();
if(colnum > 1){
temp = list.get(row).toString().split(",")[col];
}else if(colnum == 1) {
temp = list.get(row).toString();
}else{
temp = null;
}
return temp;
}
public void CsvClose() throws IOException {
this.bufferedreader.close();
}
public void run(String filename) throws IOException {
CSVUtitl cu = new CSVUtitl(filename);
for(int i=0;i<cu.getRowNum();i++){
String SSCCTag = formatData(cu.getString(i,1));//得到第i行.第一列的數據.
String SiteName = formatData(cu.getString(i,2));//得到第i行.第二列的數據.
String StationId= formatData(cu.getString(i,3));
//將數據保存到資料庫中
... ...
... ...
... ...
}
cu.CsvClose();
}
public String formatData(String baseData){
String result = null;
if(!"".equals(baseData) && baseData != null){
if(baseData.length() > 1){
result = baseData.substring(1,baseData.length());
result = result.substring(0, result.length()-1);
}else{
result = baseData;
}
}else{
result = "";
}
return result.trim();
}
public static void main(String[] args) throws IOException {
CSVUtitl test = new CSVUtitl();
try{
File path = new File("e:\\data");
File[] f = path.listFiles();
List l = new ArrayList();
for(int i=0;i<f.length;i++){
if(f[i].getName().endsWith(".csv"))
l.add(f[i]); www.2cto.com
}
Iterator it = l.iterator();
while(it.hasNext()){
File ff = (File)it.next();
test.run(path.toString()+File.separator+ff.getName());
}
}catch (Exception e){
}
}
}
㈣ 股票數據分析都有哪些
看盤的幾個小技巧:
第一:看盤的首要重點是看板塊和熱點個股的輪動規律,進而推測出行情的大小和持續性時間變化。比如每天應該注意是否有漲停個股開盤,如果有,那麼說明主力資金還在努力選擇突破口,如果兩市都有10隻以上的漲停個股開盤,則說明市場處於多頭氣氛,人氣比較旺,少於這個標准則說明市場人氣不佳,投資者應該當心大盤繼續下跌風險。如果每天盤面都有跌停板,並且是以板塊方式出現,那麼,應該警惕新一輪的中級調整開始。在熱點上,如果前一交易日漲停的個股或是上漲比較好的板塊難以維持兩天以上的行情,那麼,就說明主力資金屬於短炒性質,此個股或板塊不能成為一波行情的領頭羊,同時也意味著這一輪上漲屬於單日短線反彈。反過來講,如果熱點板塊每天都有2-3個以上,平均漲幅都在2%以上,並相互進行有效輪番上漲,則中期向好行情就值得期待。2010年7月初、中期,有色資源、煤炭資源、稀土資源以及新能源、智能電網等板塊交替上漲,從而產生中級行情。
第二:看盤應該注重關注成交量。根據兩市目前市值情況看,上海大盤成交量小於1000億應做震盪整理理解,700億以下為縮量,小於500億可以理解為地量,超過1100億應該理解為放量。地量背後往往意味著反轉,例如,2010年6月底和7月初之間,先後多個交易日上海股市成交量低於500億,這個時候空倉資金應為自己的重新進場做好准備。當大盤擺脫下降趨勢,走出一個緩慢的底部構築的形態下,成交量溫和狀態下,投資者可以以不超過半倉的水平買股持股。如果,當股票持續上漲,成交量放大,換手率超過15%(中小板、創業板個股特定條件下可以放寬到20%左右,另外新股、次新股、限售股、轉贈股、配股上市日不在此列),5-20日線開始死叉轉向,那麼此類短線題材股和概念股應該考慮逐步拋售。
第三:努力培養盤感,運用技術手段捕捉市場機會。不管是什麼品種的股票,如經過短期暴跌,跌幅超過50%,下跌垂直度越大,那麼關注價值就越高,當某一天突然縮量,短線買進的機會來了。因為急跌暴跌後,成交量突然萎縮就殺跌盤已經枯竭,肯定會出現反彈,這個時候可以堅決地戰勝自己恐慌情緒積極進去搶一把反彈就走人。同樣,如果股票價格在接連漲了很多時間,而且高位開始頻繁放量,可是價格始終盤旋在某個小區域,連續用小單在尾盤直線拉高製造高位串陽K線,籌碼峰密集嚴重擴散,則說明這個完全是主力在出貨!必須堅決清倉。
第四:別小看低位的三連陽,別漠視高位的三連陰。一般講股票價格在接連下跌一段時間後,突然在某天不那麼狂跌,而且,K線上接連出現紅三兵,價格波動幅度又不是那樣大,通常價格一串上去又被單子砸下來了,請你注意了,這個時候往往就是有主力潛伏著開始收貨中;反過來,如果在漲勢繼續了一段時間,股票價格已經很大幅度地脫離了主力原始成本,這個時候出現了高位幾連陰,股票價格重心開始下移,尤其是在一些時候,主力利用快要收盤的時候,突然用幾筆單把股票價格迅速買回日均線,在隨後的幾天里同樣的手法經常出現,K線圖上收出長下影,那說明主力出貨的概率已經達到80%以上,它的這些做法都是為了麻痹經驗不足的資金。假如某天連10日、20日、30日線都跌破,不管是賺還是賠,堅決離場。
第五:大漲買龍頭,如何發覺龍頭,其實在市場大跌氣氛里很容易判斷龍頭股,應密切注意漲幅榜中始終躍居前幾位的逆市紅盤股,特別是價格處於「三低」范疇,或是股價在15-20元之間,離新多主力拉升底部區域不足50%空間,在大盤大跌的當日或隨後幾天時間里,果斷用長陽反擊K線收復前期長陰失地的,則有望成為反彈的龍頭。市場的法則永遠是「強者恆強,弱者恆弱」。當中級以上行情出現的時候,投資者要善於提早發現誰是龍頭,並果斷追進,抓穩抓牢,別因一時盤面震盪輕易下馬。通常洗得越凶,後期飈漲概率越大。炒股搶佔先機概念很重要。有的股票難當龍頭最好在行情啟動初期果斷放棄,不要跟自己過不去。
第六:在漲勢中不要輕視冷門股、問題股。 你只要它漲得好,漲得牛就是,「漲時重勢,跌時重質」就是這個道理。任何時候,主力和莊家比我們聰明,他們不是傻瓜,當股票一個敢於在大勢不好的情況下縮量封出漲停板,肯定有其不被市場大眾知道的東西隱藏在後面。熊市裡,很多2-5元中小盤個股就是這樣無量快速漲停,通常這個時候非常考驗短線高手的看盤功力,因為這樣的股票往往留給人的思考、判斷、下單時間不會超過一分鍾,一般此類股很容易出現連續漲停,甚至是一字漲停,像2010年7月27日,很多ST股大跌的時候,ST黑化卻震盪走高,上方買盤都被逐步吃掉,並在臨近收盤的最後10分鍾封上漲停,這說明市場已有嗅覺靈敏的資金聞到了變盤氣息在重組前夜下手。
㈤ 怎麼抓取股票數據
那麼中國股市的數據有沒有呢?答案是肯定的,不過要按照下面的參數做些調整,下面提供全球證券交易所的資料。
上證股票是股票代碼後面加上.ss,深證股票是股票代碼後面加上.sz
例如:000001 = 000001.sz
深市數據鏈接:http://table.finance.yahoo.com/table.csv?s=000001.sz
上市數據鏈接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上證綜指代碼:000001.ss,深證成指代碼:399001.SZ,滬深300代碼:000300.ss
下面就是世界股票交易所的網址和縮寫,要查找哪個股票交易所的數據,就按照上面的格式以此類推。
上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv
美國交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
紐西蘭=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv
台灣=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
倫敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv
以上方法只能提供歷史數據,實時數據不能抓取,此方法由ArthurXF提供
㈥ 如何使用 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。
㈦ 股市數據從哪裡得到
像一些數據是要通過人工統計和計算的,所以大多數都是要通過收費軟體才能獲得版,免費的即使你得權到了但是滯後的效果也是挺要命的,所以我還是不向你推薦亂七八糟的網站了,每個用戶在證卷公司開戶時都會有個經理,你有權力要求他在每天開盤時向你提供當天的資訊
㈧ 上海交易所股票交易數據誰可以看到
除了監管機構,
無人可以看到。
㈨ 怎麼看股票行情的數據
股票行情數據分析方法
(1)技術分析:技術分析是以預測市場價格變化的未來趨勢為目的,通過分析歷史圖表對市場價格的運動進行分析的一種方法。股票技術分析是證券投資市場中普遍應用的一種分析方法。
(2)基本分析:基本分析法通過對決定股票內在價值和影響股票價格的宏觀經濟形勢、行業狀況、公司經營狀況等進行分析,評估股票的投資價值和合理價值,與股票市場價進行比較,相應形成買賣的建議。
(3)演化分析:演化分析是以演化證券學理論為基礎,將股市波動的生命運動特性作為主要研究對象,從股市的代謝性,趨利性,適應性,可塑性,應激性,變異性和節律性等方面入手,對市場波動方向與空間進行動態跟蹤研究,為股票交易決策提供機會和風險評估的方法總和。
炒股對於高手說是一種藝術的創作,創作出更多的價值。股票行情分析是創作的靈感來源。所以,一個好的資源必定出現非常偉大的創作。下面我們來說說兩種簡單的分析方法:
方法一:上升三法
學習炒股,最先要會的就是看圖,所以看圖說話,在上升趨勢中,如果出現一根長陽線,在此長陽之後,出現一群實體短小的陰陽線,顯示先前趨勢所面臨的一些壓力。一般而言,這些盤整的線形大多為黑線,但最重要的一點是,這些線形的實體必須處在第一天長白線的高、低價范圍內,包括影線在內。最後一根陰陽線(通常為第五天)的開盤價位於前一天收盤價之上,並且收盤價創出新高。
方法二:下降三法
顧名思義,下降三法就是上升三法的相反方法。就是在市場處於下降趨勢的時候,如果一根長黑線的出現使其跌勢得到加強。隨後三天則為實體短小的線形,其走勢與既定趨勢相反。如果這些盤整線形的實體為白色,則情況最佳。必須注意,這些短小的實體全部位於第一根長黑線的高、低價范圍內。最後一天開盤價應該在前一天的收盤價附近,收盤則創出新低,宣告市場休息時間結束。