當前位置:首頁 » 股票盈虧 » 多線程獲取股票價格
擴展閱讀
設計總院股票歷史股價 2023-08-31 22:08:17
股票開通otc有風險嗎 2023-08-31 22:03:12
短線買股票一天最好時間 2023-08-31 22:02:59

多線程獲取股票價格

發布時間: 2022-07-07 22:48:33

1. EXCEL如何用VBA自動獲取每個股票近幾天的漲幅

一般網頁上的數據都可以通過VBA進行抓取,應用得好,可以實現對很很多資料的動態監測。
漲幅就是指目前這只股票的上漲幅度。
漲幅的計算公式:漲幅=(現價-上一個交易日收盤價)/上一個交易日收盤價*100%
例如:某隻股票價格上一個交易日收盤價100,次日現價為110.01,就是股價漲幅為(110.01-100 )/100*100%=10.01%.一般對於股票來說 就是漲停了!如果漲幅為0則表示今天沒漲沒跌,價格和前一個交易日持平。如果漲幅為負則稱為跌幅。
比如:一支股票的漲幅是:10%、-5%等 。

2. 網頁中顯示若干股票代碼對應的當前價格,要用多線程嗎

大型網站系統,一般都會用多線程的。

3. asp調用股票價格

http://e.itbulo.com/200610/108136.htm這個網址是使用.NET多線程技術顯示實時股票信息,你去看看吧。

4. 用VB如何直接獲取股票實時數據

可以通過調用ChinaStockWebService的服務來實現獲取股票的實時數據,代碼如下:

publicstring[]getStockInfo(stringstockcode)
{

//stringurl="http://hq.sinajs.cn/list="+stockcode;
//stockcode某隻股票的代碼
stringurl="http://hq.sinajs.cn/list=sh600683";
WebClientclient=newWebClient();
client.Headers.Add("Content-Type","text/html;charset=gb2312");
Streamdata=client.OpenRead(url);
StreamReaderreader=newStreamReader(data,Encoding.GetEncoding("gb2312"));
strings=reader.ReadToEnd();
reader.Close();
data.Close();
returns.Split(',');
}

5. js輸入股票代碼獲得實時價格

要獲取股票的時時價格肯定要有一個獲取實時價格的介面
首先js獲取輸入框中的值,然後通過ajax就可以拿到數據,然後再把拿到的數據渲染到頁面就好了
這個和是不是在hbuilder做沒關系

6. 畢業設計,股票交易撮合,Java Web,Jfinal,quartz。多線程代碼需要自己寫

可以的,沒有問題。

7. 開發炒股軟體,從哪裡獲得股票數據

目前市場上有很多股票行情交易軟體,各種軟體提供了豐富的分析和展示功能,而且基本上是免費的。但這些數據都是在線的、無法統一地下載到本地進行分析,於是上網找了些資料,有的是將程序到新浪搜狐的財經頻道或其他財經類網站抓取並分析網頁,這種方法操作性不強而且准確率較低,遇到廣告或網頁變動時風險較大。於是找到了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){

}
}
}

8. java 如何實現 獲取實時股票數據

一般有三種方式:

  1. 網頁爬蟲。採用爬蟲去爬取目標網頁的股票數據,去GitHub或技術論壇(如CSDN、51CTO)上找一下別人寫的爬蟲集成到項目中。

  2. 請求第三方API。會有專門的公司(例如網路API市場)提供股票數據,你只需要去購買他們的服務,使用他們提供的SDK,仿照demo開發實現即可。如下圖所示:

9. 用EXCEL如何自動獲取股票收盤價格

具體方法:

1、首先,新建一個工作表,選中任意一個空單元格。選擇【數據】-【自網站】。

10. Excel 如何從網上獲取某支股票最新價格

以Excel2007獲取股票中國銀行601988為例;

1、在網路網站搜索601988,我們以打開結果里的同花順財經為例