目前市场上有很多股票行情交易软件,各种软件提供了丰富的分析和展示功能,而且基本上是免费的。但这些数据都是在线的、无法统一地下载到本地进行分析,于是上网找了些资料,有的是将程序到新浪搜狐的财经频道或其他财经类网站抓取并分析网页,这种方法操作性不强而且准确率较低,遇到广告或网页变动时风险较大。于是找到了Sina股票数据接口,这个接口是通过在IE端输入""+相应股票代码网站返回一个文件形式的数据,也可以通过JS获取该文件中的变量得到想要的数据字符串。
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:这个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,真实太方便了!直接在浏览器地址中数据网址即可股票代码,但是如果手动输入再逐一下载保存简直是太麻烦了,光上证股票就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="";
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){
}
}
}
1.网站上显示的数据来自上海和深圳证券交易所。
2.每个证券公司都有你所说的中国股市的行情数据,和他们公司各自所有客户的交易持仓数据。注意他们有自己的席位号。
3.上海、深圳证券交易所分别开发了level2的高频明细行情数据,通过通达信、大智慧、指南针这样的信息服务公司销售。
4.全部股市的投资者持仓数据包括股票,在证券登记公司两个分公司。这个交易所也没有。
PS:你需要复合股票信息公开披露的权限。这个权限你很难拿到。必须已公司形式取得。如果你用黑客形式,那么很快被抓。
量化交易,借助数学模型、统计学方法及计算机技术辅助决策,其核心在于分析与预测市场数据,制定交易策略。获取与处理数据在量化交易中至关重要。本文探讨数据来源与处理方法,阐述如何有效利用数据提升交易效益。
量化交易强调自动化决策,通过智能系统执行交易策略,减少情绪波动影响。其优势包括系统化分析、高效决策、精准执行与风险控制,以及策略优化。
应用范围广泛,量化交易面向各类投资者,提供科学、高效交易方式。然而,进行量化交易时需充分评估风险,检验策略,以避免风险。
数据来源包括交易所数据、第三方服务商数据、互联网数据及私有数据。交易所提供实时行情、历史数据等,第三方服务商则整合、加工数据,提供标准化接口。互联网数据通过爬虫抓取财经信息,私有数据由团队或机构拥有,提供独特竞争优势。
数据处理包括清洗、整合、转换、标准化、特征提取与选择,构建数据模型。数据清洗剔除无效信息,标准化消除量纲差异,特征选择提高预测精度。构建模型分析市场走势,预测价格变化。
处理数据时需关注数据质量、数据安全与隐私保护,以及模型验证与优化。确保数据来源可靠、准确,遵守法律法规,保护数据安全。通过回测与交叉验证优化模型,提高预测准确性。
综上所述,量化交易依赖数据获取与高效处理,旨在提升决策科学性与交易效益。在应用过程中,需谨慎管理风险,确保数据与模型的高质量与合法性。
一、比特儿交易平台前景怎么样比特儿bter数字货币交易平台,成立于2013年,目前是国内第四大交易所, Alexa流量排名位居国内交易平台第一位。它致力于为用户提供安全,快捷,公平,公证的数字货币交易平台,以高质量的技术服务保证用户的交易信息和资金安全。截止到7月11日,
一、易熵学院0元学易经是真的吗不是真的。现在易熵学院经常出现零元购、免费学习的推销广告,实际上都是套路。首先利用人占便宜的心理,以零元学为引子,把你哄进行,然后再用一点实惠把你套牢,当你深信不疑、欲罢不能时,你的钱包就会心甘情愿的为他们敞开了,当你醒悟时,
1.WBTC币价格:$8.94万 2.2024年11月18日 WBTC币今日行情走势64.08万币价格:64.08万 3.24H最高:65.4万 4.24H成交额:8.79亿 5.最大发行量:9794.19 6.24H换手:14.01% 7.24H最低:63.93万 8.24H成交量:1371.87 9.当前发行量:9794.19 10.24H波幅:2.29% 11.历史最高:66
1.BEAM币价格:$0.02 2.2024年10月31日 BEAM币今日行情走势0.13币价格:0.13 3.24H最高:0.13 4.24H成交额:2.08亿 5.最大发行量:611.49亿 6.24H换手:3.15% 7.24H最低:0.13 8.24H成交量:16.4亿 9.当前发行量:611.49亿 10.24H波幅:7.19% 11.历史最高:0.31 12.最大市值
1.AXL币价格:$0.68 2.2024年11月16日 AXL币今日行情走势4.9币价格:4.9 3.24H最高:4.97 4.24H成交额:2.15亿 5.最大发行量:11.77亿 6.24H换手:5.2% 7.24H最低:4.66 8.24H成交量:4389.28万 9.当前发行量:11.77亿 10.24H波幅:6.53% 11.历史最高:18.93 12.最大市值:
编者按:本文来自 imToken(ID:imToken),Odaily星球日报经授权转载。每个人小时候都有过想要做神秘侦探的梦想,不知道你内心深处是否还保持着这份好奇呢,抑或是已经被现实所淹没。没关系,今天 imToken 就和大家一起到区块链的世界探个究竟。让我们从最简单的转账开始,一
一、交易dl是什么意思DL是数字货币的一种,也是一种区块链中的代币。在数字货币市场中,DL的价值和需求都是由市场供求关系决定的。交易DL可以理解为在数字货币市场上进行买卖这种代币的活动,就像交易股票或外汇一样,主要目的是为了获得更多的利润。进行DL的交易有两种方式:
一、比特币挖矿一天挣多少1.只有在电费控制在0.3元以下的条件下,挖矿才能实现盈利。目前,一台比特币矿机S9每天的收益大约在55元人民币左右(以7000元的币价计算),因此,30台矿机的总收益约为1650元人民币(以210000元的币价计算)。2.比特币(Bitcoin)是一种全球性的加密
一、区块链币的地址和钱包地址一样会发生什么区块链币的地址和钱包地址是不同的概念,它们并不相同。区块链币的地址是一个由数字和字母组成的字符串,用来表示一个区块链账户的公开标识符,可以向这个地址发送或接收区块链币。而钱包地址则是指你所使用的数字货币钱包的地址,
一、莱特币怎么挖矿Litecoin(中文译名:莱特币)是一种基于“点对点”(peer-to-peer)技术的网络货币,它可以帮助用户即时付款给世界上任何一个人。莱特币目前是仅次于比特币全球流通市值第二的虚拟货币。圈内流行比特金、莱特银、无限铜、便士铝(外网)的传说。2013年流行的
一、中国虚拟货币三大交易所三大交易所是指:biteb中国、OK、hbi例如:比特币中国(BTCChina),成立于2011年6月9日,是一个由上海萨图西网络有限公司运营的比特币交易平台。虚拟货币交易所虚拟货币的三大交易所是指:biteb中国、OK、hbi。虚拟货币是指非真实的货币。知名的虚拟
1.AEVO币价格:$0.36 2.2024年11月11日 AEVO币今日行情走势2.6币价格:2.6 3.24H最高:2.71 4.24H成交额:11.66亿 5.最大发行量:10.0亿 6.24H换手:50.82% 7.24H最低:2.42 8.24H成交量:4.49亿 9.当前发行量:10.0亿 10.24H波幅:12.16% 11.历史最高:26.8 12.最大市值:
1.SOLVBTC.BBN币价格:$8.91万 2.2024年11月18日 SOLVBTC.BBN币今日行情走势63.91万币价格:63.91万 3.24H最高:65.25万 4.24H成交额:2628.2万 5.最大发行量:2100.0万 6.24H换手:0.41% 7.24H最低:63.6万 8.24H成交量:41.12 9.当前发行量:1.01万 10.24H波幅:2.59% 11
一、抹茶交易所骗局抹茶交易所骗局是指一些不法分子利用抹茶交易所平台进行非法活动,如盗取用户资产、挪用资金、虚假宣传、操控市场等手段,从而欺骗用户投资抹茶币,以达到非法牟利的目的。此类骗局常常以高额回报为诱饵,借助社交媒体等渠道来扩散宣传。为避免受到抹茶交易
一、比特币最开始多少钱一枚据悉,比特币是在2009年出现的,它最初的价格还不到1美分,仅需1美元便可兑换1300个比特币,若按照现在的汇率换算,现在1美元相当于6.425元人民币,也就是说,比特币最初的价格大约是现在的6元左右。比特币的概念最早由中本聪于2008年11月1日提出,
一、虚拟货币有哪些实际上,中国没有合法的虚拟货币。所有的货币都是非法的,但是在中国投机并不违法。所谓“正规虚拟货币”,无非是更可靠的稳定货币,而不是空气货币。目前国内有很多比较靠谱的虚拟货币类型,比如山寨币的鼻祖比特币,珠宝行业的福元币,专注于小额奖励的d
一、元宝网第一数字货币交易平台是骗人的吗元宝网属于社会毒瘤,由于上边有人没人敢查,元宝网以发展元宝区吸引外资,资金进入后就砸元宝币,以此来割玩家,元宝网每出一个新币就吹着多么多么赚钱,等把币卖给玩家后就一直跌,然后他们就又出来个新币继续卖,等玩家意识到被骗
一、sgb是什么币种SGB是SubGame平台发行的一款平台代币,也是一款数字货币,SGB全称SubGame,业界人士又称它为水果币,发行时的供应总量达到了5亿SGB。SubGame平台研发的项目是面向全世界众多用户与开发者的,它使用户与开发者们参与到波卡生态、平台游戏以及一款支付钱包的建
一、云币网钱包怎么样申云币网钱包怎么申请云币网是一家数字资产交易平台,提供数字货币交易、数字资产钱包等服务。下面是关于云币网钱包的申请流程:1.首先,进入云币网的官方网站并注册一个账号。2.注册完成后,在网站上登录账号并进入用户中心,选择“我的钱包”。3.点击“
一、6 个开源的数字货币钱包探索数字货币世界,存储和交易比特币、以太坊和其他加密货币,你需要知道的6个开源钱包如下:1. Copay:这个 MIT许可的开源钱包,不仅易于存储比特币,而且服务器也是开源的,用户可以自定义控制。多重签名功能和跨平台支持(Android、Windows、Ma