雅虎和新浪股票接口调用方法收集
- 格式:doc
- 大小:25.31 KB
- 文档页数:32
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库。
2)根据第三方提供的API查询获取地区信息。
第一种方法,参见文本《通过纯真IP数据库获取IP地址对应的地区信息》,这种方法的维护代价较高,而且对自己的服务器有一定的压力。
随着技术的开放,第三方已经逐渐免费开放相应的API。
经过测试,目前网易和新浪提供的较为稳定易用。
1)新浪IP地址查询API接口新浪的IP地址查询接口:/iplookup/iplookup.php?format=js&ip=IP地址测试用例:/iplookup/iplookup.php?format=js&ip=114.114.1 14.114返回以下信息:var remote_ip_info = {"ret":1,"start":"114.114.112.0","end":"114.114.119.2 55","country":"\u4e2d\u56fd","province":"\u6c5f\u82cf","city":"\u5357\u4eac ","district":"","isp":"\u7535\u4fe1","type":"","desc":"\u5357\u4eac\u4fe1\u9 8ce114dns\u4e13\u5c5e"};文字经过utf-8编码,分别对应不同的信息。
可以通过javascript跨域直接调用,如(使用jquery):$.getScript('/iplookup/iplookup.php?format=js&ip ='+ip, function(_result){if (remote_ip_info.ret == '1'){alert('IP 详细信息:', 'IP:'+ip+'<BR>国家:'+remote_ip_info.country+'<BR>省份:'+remote_ip_info.province+'<BR>城市:'+remote_ip_info.city+'<BR>区:'+remote_ip_info.district+'<BR>ISP:'+remote_ip_info.isp+'<BR>类型:'+remote_ip_info.type+'<BR>其他:'+remote_ip_info.desc);} else {alert('错误', '没有找到匹配的 IP 地址信息!');}2)网易有道IP地址API接口查询IP地址:/smartresult-xml/search.s?type=ip&q=IP地址举例:/smartresult-xml/search.s?type=ip&q=114.114.114.1 14返回xml文本信息:<?xml version="1.0" encoding="gbk"?><smartresult><product type="ip"><ip>114.114.114.114</ip><location>江苏省南京市信风网络科技有限公司公众DNS服务器</location></product></smartresult>。
雅虎和新浪股票接口调用方法收集[]获取股票数据的2个简单方法blog.science./home.php?mod=space&uid=461456&do=blog&id=4552 111.原文地址:实时股票数据接口大全股票数据的获取目前有如下两种方法可以获取:1. /javascript接口取数据2. web-service接口1./javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:hq.sinajs./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, xx-01-11, 15:05:32";这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;1:”27.55″,今日开盘价;2:”27.25″,昨日收盘价;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″,“买二”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:”xx-01-11″,日期;31:”15:05:32″,时间;一个简单的JavaScript应用例子:这段代码输出大秦铁路(股票代码:601006)的当前股价current price:14.20如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:hq.sinajs./list=sh601003,sh601001查询大盘指数,比如查询上证综合指数(000001):hq.sinajs./list=s_sh000001服务器返回的数据为:var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指数:hq.sinajs./list=s_sz399001对于股票的K线图,日线图等的获取可以通过请求image.sinajs./…./…/*.gif此URL获取,其中*代表股票代码,详见如下:查看日K线图:image.sinajs./newchart/daily/n/sh601006.gif分时线的查询:image.sinajs./newchart/min/n/sh000001.gif日K线查询:image.sinajs./newchart/daily/n/sh000001.gif周K线查询:image.sinajs./newchart/weekly/n/sh000001.gif月K线查询:image.sinajs./newchart/monthly/n/sh000001.gif1.2 Baidu&Google的财经数据第一条搜索结果如下图:通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。
python获取股票数据接⼝# encoding: utf8#部分⽹站api数据有bug,这个bug问题不是⾃⾝程序的问题,⽽是第三⽅公司股票的问题__author__ = 'nooper'import refrom math import ceilimport datetimefrom httpGet import httpGetContentfrom common import decimaldef _get_content(content):"处理腾讯股票数据接⼝信息"regex = pile(r'"(.*)"')result = regex.findall(content)if result:return result[0].split('~')def getStockPosition(code, market):"""处理股票盘⼝数据分析,分析所占的百分⽐率/q=s_pksz000858v_s_pksz000858="0.196~0.258~0.221~0.325";以 ~ 分割字符串中内容,下标从0开始,依次为:0: 买盘⼤单1: 买盘⼩单2: 卖盘⼤单3: 卖盘⼩单所占有的百分⽐百分⽐率"""if code and market:url = "/q=s_pk%s%s" % (market, code)content = httpGetContent(url)if content:result_list = _get_content(content)if result_list:stock_dict = {}stock_dict["code"] = codestock_dict["market"] = marketstock_dict["buy_big_percent"] = float(result_list[0]) # 买盘⼤单所占百分⽐stock_dict["buy_small_percent"] = float(result_list[1]) # 买盘⼩单所占百分⽐stock_dict["sell_big_percent"] = float(result_list[2]) # 卖盘⼤单所占⽐重stock_dict["sell_small_percent"] = float(result_list[3]) # 买盘⼩单所占⽐重stock_dict["date"] = datetime.date.today()return stock_dict# todo 数据对不上def getStockCashFlow(code, market):"""得到股票是资⾦流⼊流出/q=ff_sz000858v_ff_sz000858="sz000858~41773.67~48096.67~-6322.99~-5.53~10200.89~14351.02~-4150.13~-3.63~114422.25~53015.90~59770.57~五粮液~20121221";以 ~ 分割字符串中内容,下标从0开始,依次为:0: 代码1: 主⼒流⼊2: 主⼒流出3: 主⼒净流⼊4: 主⼒净流⼊/资⾦流⼊流出总和5: 散户流⼊6: 散户流出7: 散户净流⼊8: 散户净流⼊/资⾦流⼊流出总和9: 资⾦流⼊流出总和1+2+5+610: 未知11: 未知12: 名字13: ⽇期"""if code and market:url = "/q=ff_%s%s" % (market, code)content = httpGetContent(url)if content:result_list = _get_content(content)if result_list:stock_dict = {}stock_dict["code"] = codestock_dict["main_outflow"] = float(result_list[2]) # 主⼒流出stock_dict["main_netflow"] = float(result_list[3]) # 主⼒净流⼊stock_dict["small_inflow"] = float(result_list[5]) # 散户流⼊stock_dict["small_outflow"] = float(result_list[6]) # 散户流出stock_dict["small_netflow"] = float(result_list[7]) # 散户净流⼊income = stock_dict["main_inflow"] + stock_dict["small_inflow"]outcome = stock_dict["main_outflow"] + stock_dict["main_outflow"]print incomeprint outcomeprint income - outcomestock_dict["unknown_1"] = float(result_list[10])stock_dict["unknwon_2"] = float(result_list[11])stock_dict["date"] = result_list[13] # ⽇期return stock_dictdef getStockCurrentDay(code, Market):'''获取股票当⽇数据腾讯APIAPI地址:/q=sh600383sh:上海sz:深圳返回当天成交数据code:股票代码market:股票市场数据返回@return dict'''if code and Market:url = '/q=%s%s' % (Market, code)headers = {'Content-type': 'application/x-javascript; charset=GBK'}result = httpGetContent(url=url, headers=headers, charset='gbk')if result:stocklist = _get_content(result)if stocklist:stockdict = {}stockdict['code'] = code # 股票代码stockdict['name'] = unicode(stocklist[1], 'utf8') # 股票名称stockdict['last_closing'] = float(stocklist[4]) # 昨⽇收盘价格stockdict['start'] = float(stocklist[5]) # 开盘价格stockdict['end'] = float(stocklist[3]) # 当前收盘价格(可以是当前价格) stockdict['high'] = float(stocklist[33]) # 最⾼价格stockdict['low'] = float(stocklist[34]) # 最低价格stockdict['buyvol'] = int(stocklist[7]) # 外盘 todo 数据对不上stockdict["sellvol"] = int(stocklist[8]) # 内盘 todo 数据对不上stockdict['range_price'] = float(stocklist[31]) # 涨跌价格stockdict['range_percent'] = float(stocklist[32]) # 涨跌⽐%stockdict['volume'] = int(stocklist[6]) # 成交量(⼿)stockdict['total_price'] = int(stocklist[37]) # 成交额(万元)stockdict['change_rate'] = decimal(stocklist[38]) # 换⼿率stockdict['pe'] = decimal(stocklist[39]) # 市盈率stockdict['swing'] = float(stocklist[43]) # 振幅stockdict['pb'] = float(stocklist[46]) # 股票市净率stockdict['date'] = stocklist[30][:8] # 时间stockdict["block"] = False if stockdict["start"] else True #股票是否停牌return stockdictdef getStockMarket(code):"""⼤盘数据接⼝信息上证:code:000001 set=zs深证:code:399001 set=zs中⼩板:code:399005 set=zs创业板: code:399006 set=zs/qp/hq?type=snapshot&code=000001&set=zs"""url = "/qp/hq?type=snapshot&code=%s&set=zs" % coderesult = httpGetContent(url=url, charset="gbk")if result:result = eval(result)stock_dict = {}stock_dict["date"] = result[0][:10] #⽇期stock_dict["name"] = unicode(result[2], 'utf8') #名称stock_dict["range_price"] = float(result[4]) #上涨价格stock_dict["start"] = float(result[9]) #开盘价格stock_dict["high"] = float(result[11]) #最⾼价格stock_dict["low"] = float(result[13]) #最低价格stock_dict["last_closing"] = float(result[7]) #昨⽇收stock_dict["end"] = float(result[3]) #收盘价格stock_dict["total_sum"] = int(result[18]) #多少万元stock_dict["volume"] = int(result[14]) #多少⼿return stock_dicttonghuashun_headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Encoding": "gzip,deflate,sdch","Accept-Language": "zh-CN,zh;q=0.8","Cache-Control": "no-cache","Connection": "keep-alive","Host": "","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"}# def getstockBlock():# """# 新浪股票⿊名单数据# ”需要得到单点登录信息“## 新浪股票⿊名单个股# /stock/disallowStock# """# headers = {# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',# 'Cache-Control': "max-age=0",# 'Host': '',# 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36', # 'Cookie': "PHPSESSID=c32fbi3m3sf0he8v1rdem3t006; gxqSignId=02d9c361fe5fc1ab; WBStore=d6acd6adea5a82d3|undefined"## }# url = "/stock/disallowStock"# content = httpGetContent(url=url, headers=headers)# if content:# soup = BeautifulSoup(content)# td_list = soup.find_all(text=pile('\d+'))# return td_listdef__convert_MIN(content):content = content.split('=')[1]content_list = content.split('|')stock_dict = {}for sub in content_list:if sub:items = sub.split('~')date = items[0]price_list = items[1].split(';')price_dict = {}for a in price_list:b = a.split(',')start = float(b[0]) #开盘价high = float(b[1]) #最⾼价格low = float(b[2]) #最低价格end = float(b[3]) #结束价格volum = int(ceil(float(b[4]))) #成交量多少买⼊total_price = int(ceil(float(b[5]))) #成交额time = b[6] #时间格式是1030,11:30,1400,1500price_dict[time] = {"high": high,'low': low,"end": end,"start": start,"volumn": volum,"total_price": total_price}stock_dict[date] = price_dictreturn stock_dictdef getStock60MIN(code, market, type=''):"""不推荐向后复权得到股票60分钟数据线API接⼝数据/api.php?p=stock_min60&info=k_sz_000005&fq=qq是向前复权b事项后复权q= 空是不复权"""if market not in ('sz', 'sh'):returnurl = "/api.php?p=stock_min60&info=k_%s_%s&fq=%s" % (market, code, type) content = httpGetContent(url=url)if content:return__convert_MIN(content)def getStock30MIN(code, market, type=''):"""30分钟数据接⼝信息/api.php?p=stock_min30&info=k_sz_000005&fq="""if market not in ('sz', 'sh'):returnurl = "/api.php?p=stock_min30&info=k_%s_%s&fq=%s" % (market, code, type) content = httpGetContent(url=url)if content:return__convert_MIN(content)def getStock15MIN(code, market, type=''):"""15分钟数据接⼝/api.php?p=stock_min15&info=k_sz_000005&fq="""if market not in ('sz', 'sh'):returnurl = "/api.php?p=stock_min15&info=k_%s_%s&fq=%s" % (market, code, type) content = httpGetContent(url=url)if content:return__convert_MIN(content)def__convert_inner(stock, stock_dict={}):stock_day = stock.split(',')if all(stock_day):date = stock_day[0] #⽇期start = float(stock_day[1]) #开盘价格high = float(stock_day[2]) #最⾼价格low = float(stock_day[3]) #最低价格end = float(stock_day[4]) #收盘价格volume = int(ceil(float(stock_day[5]))) #成交量total = int(ceil(float(stock_day[6]))) #成交额stock_dict[date] = {"date": date,'start': start,'high': high,'low': low,'end': end,'volume': volume,'total': total,}return stock_dictdef__convert_day(content):stock_list = content.split('=')[1].split('|')stock_dict = {}for stock in stock_list:if stock and stock.strip():__convert_inner(stock, stock_dict)# stock_day = stock.split(',')# date = stock_day[0] #⽇期# start = stock_day[1] #开盘价格# high = stock_day[2] #最⾼价格# low = stock_day[3] #最低价格# end = stock_day[4] #收盘价格# volume = int(ceil(float(stock_day[5]))) #成交量# total = int(ceil(float(stock_day[6]))) #成交额# stock_dict[date] = {# "date": date,# 'start': start,# 'high': high,# 'low': low,# 'end': end,# 'volume': volume,# 'total': total,# }return stock_dictdef__convert_week(content):content_list = content.split(';')regex = pile('=(.*)$')stock_dict = {}for s in content_list:p = regex.findall(s)[0]stock_list = p.split('|')for week in stock_list:if week:__convert_inner(week, stock_dict)return stock_dict#todo 测试完成def getStockDayHistory(code, market, year='2013', type=''):"""/api.php?p=stock_day&info=k_sz_000005&year=2012,2013&fq=sz:深证sh:上海return dict"""url = "/api.php?p=stock_day&info=k_%s_%s&year=%s&fq=%s" % (market, code, year, type) content = httpGetContent(url=url)if content:return__convert_day(content)#todo 测试完成def getStockWeekHistory(code, market, year='2012,2013', type=''):"""x/api.php?p=stock_week&info=k_sz_000005&year=2011,2012,2013&fq=pass"""url = "/api.php?p=stock_week&info=k_%s_%s&year=%s&fq=%s" % (market, code, year, type ) content = httpGetContent(url, tonghuashun_headers)if content:return__convert_week(content)def__convertMonth(content):passdef getStockMonthHistory(code, market, type=''):"""/api.php?p=stock_month&info=k_sz_000671&fq="""url = "/api.php?p=stock_month&info=k_%s_%s&fq=%s" % (market, code, type)content = httpGetContent(url)if content:passdef main():# g = getStock60MIN('600847', 'sh')# for k in g:# print k# print g[k]# g = getStockDayHistory("600198", "sh")# print g# import config## print getStockMarket(config.SHANGHAI)print getStockCurrentDay("600383", "sh")if__name__ == "__main__":main()。
即时通讯类:1、腾讯QQ通讯协议及端口范围QQ 默认采用UDP 通讯方式,端口8000,8001。
如果UDP 的两个端口不通,会自动转换到TCP 80端口或者TCP 443端口进行通讯。
QQ 同时也支持HTTP 代理模式及SOCK5 代理模式。
2、MSN通讯协议及端口范围MSN(Live)messenger 采用TCP 通讯方式,支持1863 端口和80 端口,并在登录过程中使用HTTPS,端口443。
MSN 支持代理服务器(HTTP 代理,SOCK4/SOCK5 代理)。
3、雅虎通通讯协议及端口范围雅虎通采用TCP 通讯方式,默认端口5050,当5050 端口不通时会自动转换为23、21、25、110 等十几个端口。
Yahoo! 支持代理服务器模式。
4、AIM,ICQ通讯协议及端口范围ICQ 和AIM 采用TCP 通讯方式,默认端口5190,也会自动转换到80,443 等其他端口,并且支持代理模式。
从AIM6.5版起,开始采用TLS加密协议。
5、新浪UC通讯协议及端口范围新浪UC 默认采用UDP 和TCP 通讯方式,UDP 端口3001-3004,UDP端口主要参与登陆过程,在聊天室中聊天视频,主要是TCP。
新浪UC 同时也支持HTTP 代理模式及SOCK5 代理模式等。
6、网易泡泡通讯协议及端口范围网易泡泡POPO 默认采用TCP 通讯方式,通讯端口为HTTPS 443。
如果443 的端口不通,会自动转换到HTTP 80 端口进行通讯。
网易泡泡POPO 支持HTTP 代理,S OCK5 代理。
7、贸易通,淘宝旺旺通讯协议及端口范围阿里巴巴贸易通采用TCP 通讯方式,默认登录端口为16000,当16000 端口不通时,则跳转到443 端口进行通讯。
阿里巴巴贸易通支持SOCK4、SOCK5 和HTTP 代理服务器模式登录。
8、Skype通讯协议及端口范围Skype 采用TCP 方式和UDP 方式进行通讯,端口在通讯过程中协商而定。
沪深、香港、美国股票数据接口在即将到来的双十二,在聚合数据平台上的股票数据接口将参与活动,首先我们将分享下股票数据接口代码文档及返回示例,提供沪深、香港、美国股市信息。
接口名称:股票数据接口接口平台:聚合数据接口地址::8080/finance/stock/hs支持格式:json请求方式:get请求示例::8080/finance/stock/hs?gid=sh601009&key=您申请的APPKEY 调用样例及调试工具:API测试工具请求参数说明:名称类型必填说明gid string 是股票编号,上海股市以sh开头,深圳股市以sz开头如:sh601009(type为0或者1时gid不是必须)key String 是APP Keytype int 否0代表上证指数,1代表深证指数返回参数说明:名称类型说明见JSON返回示例- -JSON返回示例:{"resultcode":"200", /*返回码,200:正常*/ "reason":"SUCCESSED!","result":[{"data":{"gid":"sh601009", /*股票编号*/"name":"南京银行", /*股票名称*/"todayStartPri":"8.26", /*今日开盘价*/"yestodEndPri":"8.26", /*昨日收盘价*/"nowPri":"8.37", /*当前价格*/"todayMax":"8.55", /*今日最高价*/"todayMin":"8.25", /*今日最低价*/"competitivePri":"8.37", /*竞买价*/"reservePri":"8.38", /*竞卖价*/"traNumber":"34501453", /*成交量*/"traAmount":"290889560", /*成交金额*/"buyOne":"10870", /*买一*/"buyOnePri":"8.37", /*买一报价*/"buyTwo":"177241", /*买二*/"buyTwoPri":"8.36", /*买二报价*/"buyThree":"92600", /*买三*/"buyThreePri":"8.35", /*买三报价*/"buyFour":"87200" /*买四*/"buyFourPri":"8.34", /*买四报价*/"buyFive":"113700", /*买五*/"buyFivePri":"8.42", /*买五报价*/"sellOne":"47556", /*卖一*/"sellOnePri":"8.38", /*卖一报价*/"sellTwo":"103057", /*卖二*/"sellTwoPri":"8.39", /*卖二报价*/"sellThree":"186689", /*卖三*/"sellThreePri":"8.40", /*卖三报价*/"sellFour":"49000", /*卖四*/"sellFourPri":"8.41", /*卖四报价*/"sellFive":"214535", /*卖五*/"sellFivePri":"15.21", /*卖五报价*/"date":"2012-12-11", /*日期*/"time":"15:03:06", /*时间*/},"dapandata":{"name":"南京银行", /*大盘指数名称*/"dot":"8.37" /*大盘当前点数*/"nowPic":"0.11", /*大盘当前价格*/"rate":"1.33", /*大盘涨跌率*/"traNumber":"345014", /*大盘成交量(手)*/"traAmount":"29088", /*大盘成交金额(万元)*/ },"gopicture":{"minurl":"/newchart/min/n/sh601009.gif",/*分时K线图*/ "dayurl":"/newchart/daily/n/sh601009.gif",/*日K线图*/"weekurl":"/newchart/weekly/n/sh601009.gif",/*周K线图*/"monthurl":"/newchart/monthly/n/sh601009.gif"/*月K线图*/ }}]}----------------------------------深(上)证指数示例------------------------------------------------------------------{"error_code": 0"reason": "SUCCESSED!","result": {"dealNum": "24388041799",/*成交量*/"dealPri": "340674441059.270",/*成交额*/"highPri": "10357.417",/*最高*/"lowpri": "10121.741",/*最低*/"name": "深证成指",/*名称*/"nowpri": "10270.855",/*当前价格*/"openPri": "10200.547",/*今开*/"time": "2015-09-22 14:45:25",/*时间*/"yesPri": "10176.727"/*昨收*/},}数据接口API服务也是大数据企业的重要方向,数据API是每一个开发者必备的,也是需求量最大的数据产品。
基于Python的美股查询接口调用代码实例代码描述:基于Python的美股查询接口调用代码实例代码平台:聚合数据#!/usr/bin/python# -*- coding: utf-8 -*-import json, urllibfrom urllib import urlencode#----------------------------------# 股票查询调用示例代码-聚合数据# 在线接口文档:/docs/81#----------------------------------def main():#配置您申请的APPKeyappkey ="*********************"#1.股票查询request1(appkey,"GET")#股票查询def request1(appkey, m="GET"):url ="/onebox/stock/query "params ={"key": appkey, #应用APPKEY(应用详细页查询)"dtype": "", #返回数据的格式,xml或json,默认json"stock": "", #股票名称}params =urlencode(params)if m =="GET":f =urllib.urlopen("%s?%s"%(url, params))else:f =urllib.urlopen(url, params)content =f.read()res =json.loads(content)if res:error_code =res["error_code"]if error_code ==0:#成功请求print res["result"]else:print"%s:%s"%(res["error_code"],res["reason"]) else:print"request api error"if__name__ =='__main__':main()。
股票拆股接口股本拆细或者缩股信息查询股票拆股接口获取股票进行股本拆细或者缩股的基本信息。
接口名称:股票拆股接口接口平台:聚合数据接口地址:/stock_hs/getEquSplits支持格式:json请求方式:get/post请求示例:/stock_hs/getEquSplits?ticker=000887&key=请求参数说明:名称类型必填说明key String 是APP KeysecID String 与ticker二选一证券内部编码,可通过交易代码在getSecID获取到。
(可多值输入)ticker String 二选一证券交易代码,如'00001'(可多值输入)beginDate String 否股本分拆方案公告日期,可以选择某一固定日期或者某一区间日期endDate String 否股本分拆方案公告日期,可以选择某一固定日期或者某一区间日期field String 否可选参数,用,分隔,默认为空,返回全部字段,不选即为默认值。
返回字段见下方返回参数说明:名称类型说明见JSON返回示例- -股票拆股接口调用JSON返回示例:{"error_code": 0,"reason": "Success","result": [{"secID": "000887.XSHE",/*内部编码*/"ticker": "000887",/*证券代码*/"exchangeCD": "XSHE",/*交易市场*/"secshortName": "中鼎股份",/*证券简称*/"publishDate": "2007-03-27",/*公告日期*/"splitsRatio": 0.32665,/*拆股率*/"splitsBaseDate": "2007-03-29",/*基准日*/"reTradeDate": "2007-03-30",/*拆股后首个交易日*/"sharesBfSplits": 963200000,/*拆股前总股本*/"sharesAfSplits": 314629280/*拆股后总股本*/ }]}。
Matlab通过Yahoo与Sina获取历史与实时股票数据【转至arisZheng:】最近需要进行Matlab培训,与金融从业人员相比,很多学生或非金融行业的人员没有Wind等其他数据源。
为学习或了解Matlab 的金融数量分析,不仅需要学习Matlab语法,更重要的是需要根据实际数据进行实践,为此自己花些时间整理一下Matlab通过Yahoo 与Sina获取历史与实时股票数据的代码与案例。
说明:•历史数据通过Yahoo接口获得(历史数据为未复权数据,使用时候请注意)•实时数据通过Sina的接口获得•Yahoo中证券代码为(上海 .ss 深圳 .sz),例如招商银行,600036.ss[DateV,PriceV]=YahooData('600005.ss', '01/01/2005', '12/31/2008', 'd')•Sina中证券代码为(sh. 上海 sz.深圳),例如招商银行sh600036 StockCode='sh600036';[Name,OpenPrice,ClosePrice,TPrice]=SinaData(StockCode)1.通过yahoo提去股票历史数据(测试函数)%提取数据武钢股份(上海交易所)[DateV,PriceV]=YahooData('600005.ss', '01/01/2005', '12/31/2008', 'd')%将A数据A的格式[价格、日期] 采用的matlab编码形式,以整数编码%将A数据转变为时间序列%画图plot(DateV,PriceV);2.通过yahoo提取股票历史数据(代码函数)function [DateV,PriceV]=YahooData(StockName, StartDate, EndDate, Freq)% 输入参数% StockName 证券代码(上海 .ss 深圳 .sz)% StartDate, EndDate 时间段的开始日与结束日% Freq 频率% This engine is used for a rapid searching in Yahoo!Finance for retriving% Financial Data.%%%数据时间区间startdate=StartDate;enddate=EndDate;%字符串变化ms=num2str(str2num(datestr(startdate, 'mm'))-1);ds=datestr(startdate, 'dd');ys=datestr(startdate, 'yyyy');me=num2str(str2num(datestr(enddate, 'mm'))-1);de=datestr(enddate, 'dd');ye=datestr(enddate, 'yyyy');url2Read=sprintf('/table.csv? s=%s&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=%s&ignor e=.csv', StockName, ms, ds, ys, me, de, ye, Freq);s=urlread(url2Read);[Date Open High Low Close Volume AdjClose]=strread (s,'%s %s %s %s %s %s %s', 'delimiter', ',');Date(1)=[];AdjClose(1)=[];row=size(Date, 1);for i = 1:rowDate_temp(i, 1)=datenum(cell2mat(Date(i)), 'yyyy-mm-dd');AdjClose_temp(i, 1)=str2num(cell2mat(AdjClose(i)));endDateV=Date_temp;PriceV=AdjClose_temp;%存储M文件% root=[pwd, '\'];% filename=[root, StockName, '.mat'];% save(filename, 'stock_Price') ;3.通过Sina提取实时股票数据(测试函数)%提取数据招商银行(上海交易所)StockCode='sh600036';4.通过Sina提取实时股票数据(代码函数)function[Name,OpenPrice,ClosePrice,TPrice]=SinaData(StockCode) % 输入参数% StockCode 证券代码(上海sh+code 深圳 sz+code)%% This engine is used for a rapid searching in Sina !Finance for retriving% Financial Data.%StockName='sh601006';url2Read=['/list=',StockCode];s=urlread(url2Read);result=strread(s,'%s','delimiter', ',');Name=cell2mat(result(1));%名称Name=Name(22:end);OpenPrice=str2num(cell2mat(result(2)));% 今日开盘价;PreClosePrice=str2num(cell2mat(result(3)));% 昨日收盘价;TPrice=str2num(cell2mat(result(4)));% 当前价格;。
关于网络接口的安装问题最近不少朋友问到网络接口的安装问题,在此统一回答,不一定都能释疑,实为一孔之见,意在抛砖引玉。
1、置顶的网络接口集成版:⑴如果使用“转换平台”,安装网络接口时只需选择分区,不能更改目录,否则转换平台不能正确切换接口信息;⑵如果使用“泰康”兄上传的“数据接口管理程序”,网络接口可以自定路径;⑶各个接口对应的股票驱动文件如下(自定路径后 \stocknet 改为自定的路径):数畅网络:\stocknet\scstock.dll银江网络:\stocknet\yjstock.dll网上通:\stocknet\stock.dll倚天金融:\stocknet\skystock.dll环球金融:\windows\system\hqstock.dll网络闪电:\stocknet\StockRcv.dll理想飞驰:\windows\system\FCstock.dll网际风:\windows\system\wjfstk.dllHelloWorld:\stocknet\HeStock.dllTW2TS:\windows\system\tw2ts.dll2、置顶的网络接口原始安装文件:⑴总体原则:先安装网络接口,后安装股卡驱动;安装一个修改、设置一个,记录修改后的股票驱动文件名;⑵如果已经安装了股卡驱动,又不想卸载重新安装,则备份并删除相关文件(以通视卡为例)。
需备份和删除的文件共三个:c:\windows\system\stock.dll、tsdrv.dll、tsdrv32.dll。
⑶各个网络接口原始安装程序安装后,多数驱动文件在 \windows\system 下,文件名一般为:stock.dll,将其改为想用、好记的文件名。
部分网络接口安装后的驱动文件名在目标目录下,不需要改名;⑷“环球金融”安装时,路径无法更改,其固定路径为:c:\qs,安装后目录不能任意更改,否则不能正常接收信息;⑸“倚天金融”安装时有分析家、飞狐交易师“全球市场”选项。
通过新浪网股票接口获取股票信息以下函数全是静态方法,可以在C#中直接调用using System;using System.Collections.Generic;using System.Linq;using System.Text;using ;using System.IO;using System.Data;using System.Text.RegularExpressions;namespace GzyFunctionLibrary{public class GetStockInfo{public static string[] StockItems = new string[32] { "股票名字", "今日开盘价", "昨日收盘价", "当前价格", "今日最高价", "今日最低价", "竞买价,即买一报价", "竞卖价,即卖一报价", "成交的股票数", "成交金额", "买一申请多少股", "买一报价", "买二", "买二", "买三", "买三", "买四", "买四", "买五", "买五", "卖一申报股数", "卖一报价", "卖二申报股数", "卖二报价", "卖三申报股数", "卖三报价", "卖四申报股数", "卖四报价", "卖五申报股数", "卖五报价", "日期", "时间" };public static string[] PastStockItems = new string[] { "指数名称", "当前点数", "涨跌点数", "涨跌率", "成交量(手)", "成交额(万元)" };private static string url = "/list=";private static string PastUrl = "/list=s_";/// <summary>/// 生成/// </summary>/// <param name="StockID"></param>/// <param name="ValueType"></param>/// <returns></returns>private static string GetUrl(string StockID, int ValueType){string id = string.Empty;if (StockID == "" || StockID.Length != 6){return null;}string dm = "sh";if (StockID.Trim() == "000001")dm = "sh";else if (StockID.Trim() == "399001")dm = "sz";else if (StockID.Substring(0, 2) == "00")//深圳dm = "sz";else if (StockID.Substring(0, 2) == "60")dm = "sh";else if (StockID.Substring(0, 2) == "51")//上海基金dm = "sh";switch (ValueType){case 0:return url + dm + StockID;case 1:return PastUrl + dm + StockID;default:return url + dm + StockID;}}/// <summary>/// 获取服务实时及历史信息/// </summary>/// <param name="url"></param>/// <returns></returns>public static string[] GetValue(string url){try{string[] StockValue;WebClient myWebClient = new WebClient();Stream myStream = myWebClient.OpenRead(url);StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("gbk"));string strHTML = sr.ReadToEnd();myStream.Close();sr.Close();int first = strHTML.IndexOf("\"");strHTML = strHTML.Substring(first + 1, strHTML.Length - first - 4);StockValue = strHTML.Split(',');if (StockValue.Length >= 2)return StockValue;elsereturn null;}catch (Exception ex){return null;throw ex;}}/// <summary>/// 获取股票实时信息/// </summary>/// <param name="StockId"></param>/// <returns></returns>public static string[] GetRealValue(string StockId){return GetValue(GetUrl(StockId, 0));}/// <summary>/// 获取股票历史信息/// </summary>/// <param name="StockId"></param>/// <returns></returns>public static string[] GetPastValue(string StockId){return GetValue(GetUrl(StockId, 1));}public static DataTable getHis(string stockId){DataTable dt = new DataTable();dt.Columns.Add("StockId", typeof(string));dt.Columns.Add("iDate", typeof(DateTime));dt.Columns.Add("Opening", typeof(double));dt.Columns.Add("MaxHight", typeof(double));dt.Columns.Add("Closing", typeof(double));dt.Columns.Add("MaxLow", typeof(double));string url = string.Format("/corp/go.php/vMS_MarketHistory/stockid/{0}.p html", stockId);.WebClient wc = new WebClient();string Content = wc.DownloadString(url);string reg = "<a target='_blank'href='/quotes_service/view/vMS_tradehistory.php?symbol=s hd{6}&date=d{4}-d{2}-d{2}'>s*([^s]+)s+</a>s*</div></td>s*<td[^d]*([^<]*)</div></td>s+<td[^d] *([^<]*)</div></td>s+<td[^d]*([^<]*)</div></td>s+<td[^d]*([^<]*)</div></td>s+";MatchCollection result = Regex.Matches(Content, reg);foreach (Match item in result){DataRow dr = dt.NewRow();dr[0] = stockId;dr[1] = item.Groups[1].Value;//时间dr[2] = item.Groups[2].Value;//时间dr[3] = item.Groups[3].Value;//时间dr[4] = item.Groups[4].Value;//时间dr[5] = item.Groups[5].Value;//时间}return dt;}}}。
Python获取股票历史、实时数据与更新到数据库要做量化投资,数据是基础,正所谓“巧妇难为⽆⽶之炊”在免费数据⽅⾯,各⼤⽹站的财经板块其实已提供相应的api,如新浪、雅虎、搜狐。
可以通过urlopen相应格式的⽹址获取数据⽽TuShare正是这么⼀个免费、开源的python财经数据接⼝包,已将各类数据整理为dataframe类型供我们使⽤。
主要⽤到的函数:1.实时⾏情获取tushare.get_today_all()⼀次性获取当前交易所有股票的⾏情数据(如果是节假⽇,即为上⼀交易⽇,结果显⽰速度取决于⽹速)2.历史数据获取tushare.get_hist_data(code, start, end,ktype, retry_count,pause)参数说明:code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中⼩板 cyb=创业板)start:开始⽇期,格式YYYY-MM-DDend:结束⽇期,格式YYYY-MM-DDktype:数据类型,D=⽇k线 W=周 M=⽉ 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为Dretry_count:当⽹络异常后重试次数,默认为3pause:重试时停顿秒数,默认为0⽽如果要进⾏完备详细的回测,每次在线获取数据⽆疑效率偏低,因此还需要⼊库下⾯是数据库设计部分表1:stocks股票表,第⼀列为股票代码,第⼆列为名称,如果get_today_all()中存在的股票stocks表中没有,则插⼊之。
表2:hdata_date⽇线表,由于分钟线只能获取⼀周内的数据,我们先对⽇线进⾏研究。
字段和get_hist_data返回值基本⼀致,多了stock_code列,并将record_date列本来是dataframe的indexstock_code,record_date, //主键open,high,close,low, //开盘,最⾼,收盘,最低volume, //成交量price_change,p_change, //价差,涨幅ma5,ma10,ma20 //k⽇收盘均价v_ma5,v_ma10,v_ma20, //(k⽇volume均值)turnover //换⼿率python⼯程⽬前有3个⽂件,main.py(主程序),Stocks.py(“股票们”类)以及Hdata.py(历史数据类)main.pyimport psycopg2 #使⽤的是PostgreSQL数据库import tushare as tsfrom Stocks import*from HData import*import datetimestocks=Stocks("postgres","123456")hdata=HData("postgres","123456")# stocks.db_stocks_create()#如果还没有表则需要创建#print(stocks.db_stocks_update())#根据todayall的情况更新stocks表#hdata.db_hdata_date_create()nowdate=datetime.datetime.now().date()codestock_local=stocks.get_codestock_local()hdata.db_connect()#由于每次连接数据库都要耗时0.0⼏秒,故获取历史数据时统⼀连接for i in range(0,len(codestock_local)):nowcode=codestock_local[i][0]#print(hdata.get_all_hdata_of_stock(nowcode))print(i,nowcode,codestock_local[i][1])maxdate=hdata.db_get_maxdate_of_stock(nowcode)print(maxdate, nowdate)if(maxdate):if(maxdate>=nowdate):#maxdate⼩的时候说明还有最新的数据没放进去continuehist_data=ts.get_hist_data(nowcode, str(maxdate+datetime.timedelta(1)),str(nowdate), 'D', 3, 0.001)hdata.insert_perstock_hdatadate(nowcode, hist_data)else:#说明从未获取过这只股票的历史数据hist_data = ts.get_hist_data(nowcode, None, str(nowdate), 'D', 3, 0.001)hdata.insert_perstock_hdatadate(nowcode, hist_data)hdata.db_disconnect()Stocks.pyimport tushare as tsimport psycopg2class Stocks(object):#这个类表⽰"股票们"的整体(不是单元)def get_today_all(self):self.todayall=ts.get_today_all()def get_codestock_local(self):#从本地获取所有股票代号和名称conn = psycopg2.connect(database="wzj_quant", user=er, password=self.password, host="127.0.0.1",port="5432")cur = conn.cursor()# 创建stocks表cur.execute('''select * from stocks;''')rows =cur.fetchall()mit()conn.close()return rowspassdef__init__(self,user,password):# self.aaa = aaaself.todayall=[]er=userself.password=passworddef db_perstock_insertsql(self,stock_code,cns_name):#返回的是插⼊语句sql_temp="insert into stocks values("sql_temp+="\'"+stock_code+"\'"+","+"\'"+cns_name+"\'"sql_temp +=");"return sql_temppassdef db_stocks_update(self):# 根据gettodayall的情况插⼊原表中没的。
新浪接口API调用新浪API2.0调用痕迹最近本人研究怎么调用新浪的接口。
一开始由于感觉时间的仓促就从网上找了个实例。
哪知道在模拟授权成功了以后进行接口的调用的时候才知道知道。
人家验证是OAuth1.0认证。
而现在新浪接口是1.0的。
老是调用的时候报Http403 五位码表示access_token无效。
这样一来我都弄疯了,连续折腾了3天,我都太折腾疯了。
总结一句话哥太心急了。
搞了半天就是找错。
问人。
折腾了半天。
没有啥人能帮上忙。
所以我就下定决心研究别人代码。
通过我晚上苦苦的研究终于弄清楚了点思路了。
第二天早上一起来灵感移动。
其实真的他妈那么简单啊。
下面我就给大家介绍我的实现思路。
当然我也借助了别人写的SDK.加以我的改变生产了dll文件。
提供后续开发这学习。
我提供下载地址。
希望能给苦命的程序员又所帮助。
尤其是像我这样的菜鸟。
老鸟当然不需要这些的。
废话都不说了。
下面就介绍下实现思路吧。
1首先我介绍下OAuth授权的内部原理:A:客户端从服务器端获取一个没有经过授权的tonken(一个32位的字符串)B:用户从客户端获取一个验证编号。
C:客户端向服务器端获取一个成功的授权编号现在也不说这些内部原理了:直接阐述代码吧。
const long clientID = 1253617897;//申|¨o请?的ì?app_key//获取程序keyconst string responseType = "authorization_code";//这个值好像可以起好多的。
集体是代表什么我还是希望别人多多参考新浪APIconst string redirectUri = "http://localhost:1978/sina/URLredirection.aspx";//回?调ì??地ì?址?¤这个回调地址是设置在新浪申请的应该平台里面的。
股票实时API数据接口http/javascript接口取数据以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:/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″,时间;这个接口对于JavaScript程序非常方便,通常的使用方式为,静态或动态地在页面中插入:<script type="text/javascript" src="/list=sh601006" charset="gb2312"></script><script type="text/javascript">var elements=hq_str_sh601006.split(",");document.write("current price:"+elements[3]);</script>这段代码输出大秦铁路(股票代码:601006)的当前股价current price:14.20如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:/list=sh601003,sh601001但如果你要查询大盘指数,情况会有不同,比如查询上证综合指数(000001),使用如下URL:/list=s_sh000001 服务器返回的数据为:var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指的URL为:/list=s_sz399001对于股票的K线图,日线图等的获取可以通过请求/…./…/*.gif此URL 获取,其中*代表股票代码,详见如下:查看日K线图:/newchart/daily/n/sh601006.gif分时线的查询:/newchart/min/n/sh000001.gif日K线查询:/newchart/daily/n/sh000001.gif周K线查询:/newchart/weekly/n/sh000001.gif月K线查询:/newchart/monthly/n/sh000001.gif来源:大CC古希腊哲学大师亚里士多德说:人有两种,一种即“吃饭是为了活着”,一种是“活着是为了吃饭”.一个人之所以伟大,首先是因为他有超于常人的心。
C# Sina股票接口(2011-01-25 14:05:52)转载需要注意的这个只是获取单只股票代码的用处,通过这个代码有炒股的朋友就可以写出简单的自动止损和按一定价格入场的程序了。
(国内正规券商不支持这种功能,可能是为了防止一些东西。
)我们先来看一下股票信息的类namespace .Library.Entity{public class StockInfo{public string Name{get;set;}public decimal TodayOpen{get;set;}public decimal YesterdayClose{get;set;}public decimal Current{get;set;}public decimal High{get;set;}public decimal Low{ get; set; }/// <summary>/// 竟买价买1/// </summary>public decimal Buy{ get; set; }/// <summary>/// 竟卖价卖1/// </summary>public decimal Sell { get; set; }/// <summary>/// 成交数单位股数通常除于100成为手/// </summary>public int VolAmount { get; set; }/// <summary>/// 成交多少钱,单位元/// </summary>public decimal V olMoney { get; set; }/// <summary>/// 新浪是可以看到5个,5档看盘,买1-买5 /// </summary>public List<GoodsInfo> BuyList { get; set; }/// <summary>/// 卖1-卖5/// </summary>public List<GoodsInfo> SellList { get; set; }/// <summary>/// Date and Time/// </summary>public DateTime Time { get; set; }public override string ToString(){return Name + ": " + V olAmount + ":" + Current;}}}namespace .Library{///股票数据获取接口,你可以自己实现新浪yahoo...public interface IDataService{StockInfo GetCurrent(string stockCode);}}namespace .DataServices{public class Sina : IDataService{private const string dataurl = "/list={0}";#region IStockInfo MembersHttpClient client;private StockInfo PrevInfo;public StockInfo GetCurrent(string stockCode){try{if (client == null){client = new HttpClient();}if (stockCode.Substring(0, 2) == "60")//上海是600打头{stockCode = "sh" + stockCode;}else if(stockCode.Substring(0,2)=="00")//深圳{stockCode = "sz" + stockCode;}else if (stockCode.Substring(0, 2) == "51")//上海基金{stockCode = "sh" + stockCode;}string url = string.Format(dataurl, stockCode);string data = client.DownloadString(string.Format(url, stockCode));PrevInfo = Parse(data);return PrevInfo;}catch{return PrevInfo;}}/// <summary>/// Parse Sina data to stock Info/// </summary>/// <param name="input"></param>/// <returns></returns>public static StockInfo Parse(string content){// var hq_str_sh600066 = "宇通客车,9.27,9.35,9.76,9.80,9.27,9.77,9.78,4567858,44306952,3100,9.77,1200,9.76,20500,9.75,1400,9. 74,15300,9.73,10030,9.78,28093,9.79,156827,9.80,2800,9.81,6400,9.82,2009-01-09,15:03:32";int start = content.IndexOf('"')+1;int end = content.IndexOf('"',start);string input = content.Substring(start, end - start);string[] temp = input.Split(',');if (temp.Length != 32){return null;}StockInfo info = new StockInfo(); = temp[0];info.TodayOpen = decimal.Parse(temp[1]);info.YesterdayClose = decimal.Parse(temp[2]);info.Current = decimal.Parse(temp[3]);info.High = decimal.Parse(temp[4]);info.Low = decimal.Parse(temp[5]);info.Buy = decimal.Parse(temp[6]);info.Sell = decimal.Parse(temp[7]);info.VolAmount = int.Parse(temp[8]);info.VolMoney = decimal.Parse(temp[9]);info.BuyList = new List<GoodsInfo>(5);int index = 10;for (int i = 0; i < 5; i++){GoodsInfo goods = new GoodsInfo();goods.State = GoodsState.Buy;goods.Amount = int.Parse(temp[index]);index++;goods.Price = decimal.Parse(temp[index]);index++;info.BuyList.Add(goods);}info.SellList = new List<GoodsInfo>(5);for (int i = 0; i < 5; i++){GoodsInfo goods = new GoodsInfo();goods.State = GoodsState.Sell;goods.Amount = int.Parse(temp[index]);index++;goods.Price = decimal.Parse(temp[index]);index++;info.SellList.Add(goods);}info.Time = DateTime.Parse(temp[30] + " " + temp[31]);return info;}#endregion}}public class GoodsInfo{public int Amount{ get; set; }public decimal Price{get;set;}public GoodsState State { get; set; }}如果C#新浪的股票接口满足不了你需要的话你还可以了解一些商业的股票接口行情写库/StockInfoSoft.aspx。
Yahoo股票搜索功能使用技巧介绍股票搜索在投资领域中扮演着重要的角色,它能帮助投资者迅速获取所需的股票信息,提供有力的决策依据。
Yahoo股票搜索功能是市场上广泛使用的工具之一,本文将重点介绍Yahoo股票搜索的使用技巧,帮助投资者更好地利用该功能来进行投资决策。
一、基本搜索技巧1. 关键字搜索:在搜索栏中输入股票代码、股票名称或关键字,Yahoo股票搜索会快速给出搜索结果。
例如,输入"AAPL"即可获得关于苹果公司的相关信息。
2. 多个股票查询:若想一次性查询多个股票的信息,可以在搜索栏中输入多个股票代码,用逗号隔开。
例如,输入"AAPL, MSFT"可同时查看苹果和微软的相关信息。
3. 股票指数查询:若想了解特定股票指数(如道琼斯工业平均指数、纳斯达克指数等)的信息,可以直接在搜索栏中输入指数代码。
例如,输入"^DJI"可快速获取道琼斯工业平均指数的相关数据。
二、高级搜索技巧1. 直接搜索股价:若想快速了解某只股票的当前价格,可以在搜索栏中直接输入股票代码或名称,并添加关键词"股价"或"价格",Yahoo股票搜索会迅速给出该只股票的实时价格。
2. 技术指标查询:若想了解特定股票的技术指标(如移动平均线、相对强弱指数等)等数据,可在搜索栏中输入股票代码或名称,并添加关键词"技术指标"。
Yahoo股票搜索将为您提供该只股票的相应技术指标图表和数据。
3. 资讯搜索:若希望获取某只股票的最新新闻、分析和报道,可以在搜索栏中输入股票代码或名称,并添加关键词"资讯"或"新闻"。
Yahoo股票搜索将为您呈现与该只股票相关的最新资讯和报道。
三、筛选搜索结果1. 时间筛选:在搜索结果页面的左侧,可以使用时间筛选器来缩小搜索范围,找到最新的相关信息。
如需查看最近一周或一月内发布的股票新闻,只需在时间筛选器中选择相应选项即可。
2023 java yahoofinance用法全文共四篇示例,供读者参考第一篇示例:2023 Java YahooFinance用法Java是一种广泛应用于软件开发领域的编程语言,而YahooFinance是一个提供金融数据的网站。
结合这两者,我们可以利用Java语言来获取和处理YahooFinance提供的金融数据,以便在我们的程序中使用。
本文将介绍如何在2023年使用Java编程语言来获取和处理YahooFinance的金融数据。
我们需要在Java项目中引入yahoofinance库。
这个库提供了一系列方便的方法来获取YahooFinance的股票数据。
我们可以通过Maven等依赖管理工具来引入这个库,或者直接下载其源码并导入到我们的项目中。
一旦引入了yahoofinance库,我们就可以开始使用其中提供的方法来获取金融数据了。
接下来,我们可以通过yahoofinance库中的方法来获取股票的实时价格、历史价格、财务数据等信息。
我们可以使用以下代码来获取某只股票的实时价格:```Stock stock = YahooFinance.get("AAPL");BigDecimal price = stock.getQuote().getPrice();System.out.println("Apple的实时股价是:" + price);```在这段代码中,我们首先通过get方法获取了代表苹果公司(AAPL)股票的Stock对象,然后通过getQuote方法获取了股票的报价信息,最后通过getPrice方法获取了股票的实时价格。
通过类似的方法,我们也可以获取股票的历史价格、财务数据等信息。
除了获取股票数据之外,我们还可以使用yahoofinance库来进行股票分析和预测。
我们可以通过简单的算法来计算某只股票的涨幅或者波动率,以便在交易决策中使用。
我们也可以使用机器学习等技术来进行更精确的股票预测,以帮助我们在股市中取得更好的投资收益。
案例讨论:阿里巴巴并购雅虎中国一、公司背景2005年8月11日,阿里巴巴和雅虎同时在北京宣布,阿里巴巴收购雅虎中国全部资产,同时得到雅虎10亿美元投资,以打造中国最大的互联网搜索平台,从而也缔造了中国互联网历史上最大的一起并购案。
其时,阿里巴巴的主要业务模式是企业间电子商务(B2B),也是其收入的主要来源,其他的业务包括子公司浙江淘宝网络有限公司的用户间电子商务(C2C),以及浙江支付宝网络科技有限公司的电子支付业务。
阿里巴巴是全球B2B的著名品牌,连续5次被美国《福布斯》选为全球最佳B2B站点之一。
1.并购前阿里巴巴的基本情况阿里巴巴网站于1998年正式推出,到2005年并购前阿里巴巴的发展历程如下表阿里巴巴的发展历程从市场情况来看,并购前阿里巴巴拥有注册用户720余万户,淘宝网拥有的注册会员900万名、登录商品达800万件,2005年第二季度的成交量就达到10亿元人民币,同时,支付宝也有上千家购物平台加盟,并且与招商银行、中国工商银行、中国农业银行和国际信用卡组织VISA等建立了战略合作关系。
从营业收益来看,淘宝网和支付宝采取免费经营策略,阿里巴巴的营业收入主要来自阿里巴巴“中国供应商”和“诚信通”会员费。
公司通过向8.5万用户收取250美元---10000美元年费的形式赚钱,而这些企业与阿里巴巴的续签率为75%---78%。
阿里巴巴基本上实现了每天利润100万元这个目标,2004年阿里巴巴总收入大约为6亿元人民币,同行业新浪的年收入约为1.14亿美元,搜狐微1.03亿美元,网易为1.09亿美元。
可以说在中国当时的B2B电子商务市场中,阿里巴巴处于绝对的地位,在约10亿元人民币的总市场规模中,阿里巴巴独占六成,在C2C市场中,eBay 占据的份额为53%,淘宝网占41%,一拍网为6%,但淘宝网的增长速度很快,对eBay的挑战越来越大。
从当时电子商务的发展来看,2004年年底全球电子商务交易总额已达 2.7万亿美元,中国电子商务市场规模为3239亿元人民币。
《金融人工智能:用Python实现AI量化交易》阅读随笔目录一、内容简述 (2)1.1 本书的目的和范围 (3)1.2 金融人工智能的发展趋势 (4)二、基础知识 (5)2.1 量化交易的概念和原理 (7)2.2 Python在金融领域的应用概述 (8)2.3 金融数据分析和处理的常用库 (9)三、金融人工智能的算法与模型 (11)3.1 机器学习算法在量化交易中的应用 (12)3.1.1 监督学习算法 (14)3.1.2 非监督学习算法 (15)3.1.3 强化学习算法 (16)3.2 深度学习算法在量化交易中的应用 (18)3.2.1 卷积神经网络 (19)3.2.2 循环神经网络 (20)3.2.3 生成对抗网络 (21)3.3 量化交易模型的评价和优化 (23)四、使用Python实现金融人工智能 (24)4.1 Python金融库的介绍和使用 (26)4.2 金融数据的获取和处理 (27)4.3 金融模型的构建和训练 (29)4.4 金融模型的回测和优化 (30)五、风险管理与合规性 (32)5.1 量化交易中的风险类型 (33)5.2 风险管理策略和方法 (34)5.3 合规性要求和实践 (34)六、未来展望 (36)6.1 金融人工智能的发展方向 (37)6.2 量化交易的未来趋势 (38)七、结语 (39)7.1 本书总结 (40)7.2 对读者的寄语 (41)一、内容简述《金融人工智能:用Python实现AI量化交易》是一本关于金融人工智能和量化交易的书籍。
这本书的内容主要围绕金融市场的智能化交易展开,详细介绍了如何利用Python实现AI量化交易。
在阅读这本书的过程中,我收获颇丰。
本书首先介绍了金融市场的背景和发展趋势,阐述了人工智能在金融行业中的应用和前景。
对Python编程语言在金融领域的重要性进行了阐述,说明了Python在金融数据分析、算法交易和机器学习等领域的广泛应用。
雅虎和新浪股票接口调用方法收集[]获取股票数据的2个简单方法blog.science./home.php?mod=space&uid=461456&do=blog&id=4552 111.原文地址:实时股票数据接口大全股票数据的获取目前有如下两种方法可以获取:1. /javascript接口取数据2. web-service接口1./javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:hq.sinajs./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, xx-01-11, 15:05:32";这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;1:”27.55″,今日开盘价;2:”27.25″,昨日收盘价;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″,“买二”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:”xx-01-11″,日期;31:”15:05:32″,时间;一个简单的JavaScript应用例子:这段代码输出大秦铁路(股票代码:601006)的当前股价current price:14.20如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:hq.sinajs./list=sh601003,sh601001查询大盘指数,比如查询上证综合指数(000001):hq.sinajs./list=s_sh000001服务器返回的数据为:var hq_str_s_sh000001="上证指数,3094.668,-128.073,-3.97,436653,5458126";数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);查询深圳成指数:hq.sinajs./list=s_sz399001对于股票的K线图,日线图等的获取可以通过请求image.sinajs./…./…/*.gif此URL获取,其中*代表股票代码,详见如下:查看日K线图:image.sinajs./newchart/daily/n/sh601006.gif分时线的查询:image.sinajs./newchart/min/n/sh000001.gif日K线查询:image.sinajs./newchart/daily/n/sh000001.gif周K线查询:image.sinajs./newchart/weekly/n/sh000001.gif月K线查询:image.sinajs./newchart/monthly/n/sh000001.gif1.2 Baidu&Google的财经数据第一条搜索结果如下图:通过点击左边的图片我们发现会将此图片链接到sina财经频道上,也就是说google股票数据的获取也是从sina获取。
后经抓包分析,发现google也是采用1.1中介绍的接口。
Baidu的股票数据baidu的财经频道==================================2. 这个方法作者页面上说过不得,所以摘抄一段:剩下的在(实际上是上面方法的Java版)炒股有一段时间了,发现现在的股票行情软件在很多情况下并不是太好用,我炒股的时候喜欢看盘口的实时交易记录,如果同时关注多支股票的话,我用过的行情软件没有找到同时观看多支股票盘口交易数据的功能,另外在工作的时候使用目前的行情软件也不太方便。
所以打算自己写个专门的行情软件,但是数据源是个最棘手的问题,经过搜索和不懈的努力,找到了两种方式:1. 通过webservice调用,该网站提供了的和收费的服务,但是的限制了每天的请求次数,在此不太实用。
调用sina专门的js服务器来解析数据,这种方式我使用了有很长一段时间,速度还是相当不错的,有时候比专门的行情软件的实时数据还快,下面是获取数据的部分代码:3. 从新浪获取历史数据的方法:这几天在网上找股票的历史数据想研究研究,最后找到一个不错的接口,于雅虎,是在一个博客上找到的,地址为:./stock/history_min.php\?symbol=sh\d{6}&date=\d{4}-\d{2 }-\d{2}'>\s*([^\s]+)\s+\s*\s*<td[^\d]*([^<]*)\s+<td[^\d]*([^<]*)\s+<td[^\d]*([^<]*)\s+<td[^\d]*([^<]*)\s+"$result = [RegEx]::matches($content, $reg)foreach($item in $result){$date = $item.Groups[1].Value # 时间$opening = $item.Groups[2].Value # 开盘$maxHigh = $item.Groups[3].Value # 最高$closing = $item.Groups[4].Value # 收盘$maxLow = $item.Groups[5].Value # 最低Write-Host $date $opening $maxHigh $closing $maxLow}C# Sina股票接口(xx-01-25 14:05:52)需要注意的这个只是获取单只股票代码的用处,通过这个代码有炒股的朋友就可以写出简单的自动止损和按一定价格入场的程序了。
(国内正规券商不支持这种功能,可能是为了防止一些东西。
)我们先来看一下股票信息的类namespace Qianfa..Library.Entity{public class StockInfo {public string Name{get;set;}public decimal TodayOpen {get;set;}public decimal YesterdayClose {get;set;}public decimal Current{get;set;}public decimal High {get;set;}public decimal Low { get; set; }////// 竟买价买1///public decimal Buy{ get; set; }////// 竟卖价卖1///public decimal Sell { get; set; }////// 成交数单位股数通常除于100成为手 ///public int VolAmount { get; set; } ////// 成交多少钱,单位元///public decimal VolMoney { get; set; }////// 新浪是可以看到5个,5档看盘 ,买1-买5 ///public List BuyList { get; set; }////// 卖1-卖5///public List SellList { get; set; }////// Date and Time///public DateTime Time { get; set; }public override string ToString(){return Name + ": " + VolAmount + ":" + Current; }}}namespace Qianfa..Library{///股票数据获取接口,你可以自己实现新浪yahoo...public interface IDataService{StockInfo GetCurrent(string stockCode);}}namespace Qianfa..DataServices{public class Sina : IDataService{private const string dataurl = "hq.sinajs./list={0}";#region IStockInfo MembersHttpClient client;private StockInfo PrevInfo;public StockInfo GetCurrent(string stockCode) {try{if (client == null){client = new HttpClient();}if (stockCode.Substring(0, 2) == "60")//上海是600打头 {stockCode = "sh" + stockCode;}else if(stockCode.Substring(0,2)=="00")//深圳{stockCode = "sz" + stockCode;}else if (stockCode.Substring(0, 2) == "51")//上海基金 {stockCode = "sh" + stockCode;}string url = string.Format(dataurl, stockCode);string data = client.DownloadString(string.Format(url, stockCode));PrevInfo = Parse(data);return PrevInfo;}catch{return PrevInfo;}}////// Parse Sina data to stock Info/////////public static StockInfo Parse(string content){int end = content.IndexOf('"',start);string input = content.Substring(start, end - start); string[] temp = input.Split(',');if (temp.Length != 32){return null;}StockInfo info = new StockInfo(); = temp[0];info.TodayOpen = decimal.Parse(temp[1]);info.YesterdayClose = decimal.Parse(temp[2]); info.Current = decimal.Parse(temp[3]);info.High = decimal.Parse(temp[4]);info.Low = decimal.Parse(temp[5]);info.Buy = decimal.Parse(temp[6]);info.Sell = decimal.Parse(temp[7]);info.VolAmount = int.Parse(temp[8]);info.VolMoney = decimal.Parse(temp[9]); info.BuyList = new List(5);int index = 10;for (int i = 0; i < 5; i++){GoodsInfo goods = new GoodsInfo();goods.State = GoodsState.Buy;goods.Amount = int.Parse(temp[index]);index++;goods.Price = decimal.Parse(temp[index]); index++; info.BuyList.Add(goods);}info.SellList = new List(5);for (int i = 0; i < 5; i++){GoodsInfo goods = new GoodsInfo();goods.State = GoodsState.Sell;goods.Amount = int.Parse(temp[index]);index++;goods.Price = decimal.Parse(temp[index]); index++;info.SellList.Add(goods);}info.Time = DateTime.Parse(temp[30] + " " + temp[31]); return info;}#endregion}}public class GoodsInfo{public int Amount{ get; set; }public decimal Price{get;set;股票实时API数据接口/javascript接口取数据以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:hq.sinajs./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, xx-01-11, 15:05:32";这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。