期货数据读取python从新浪财经
用途:读取股票A股,期货,股指期货历史数据
版本3:
更新时间:2022-11-20
说明:类封装Sina其他:
本人是小白,没有钱购买数据,推荐几个免费的数据读取。
掘金的期货数据相对来说比较多,支持最近3个月的tick数据,1996年至今的分钟数据,全部日频数据。
做分析可以,但读取速度不快,做界面的实时读取太慢,另一优点支持回测无限制,仅需注册一个账号。
另外比较不方便的是读取数据时终端必须打开。天勤量化api编写较好,数据读写快,支持免费的实盘交易。另外做界面实时数据读取比较方便。
缺点是要想读取数据受限(8000根k线不是你想象中,当然收费的没这个限制),多数要收费;回测受限;
另外一个优点是直接调用api,比较方便,交易的建议使用新浪财经的仅仅适合入门级的学习,数据读取受限def get_calendar(cls):用途:获取新浪日期
def get_contract_inf_sina(cls, symbol='AP2101'):用途:查询期货合约详情
def get_main_name(cls):用途:获取国内期货连续合约的名称sina
def get_main_day(cls, symbol='V0', startdate='20220901', enddate=''):用途:新浪财经期货-主力连续日数据,不含今天数据-不稳定常报错
def get_realtimeprice(cls, symbol='V2209,V2211', market=''):用途:获取新浪-国内期货实时行情数据
def get_kline_day(cls, symbol="V2105"):用途:内盘-历史行情数据-新浪 新浪财经-期货-日频数据
def get_kline(cls, symbol='m2201', freq='d', market='期货', **kws):用途:获取sina股票期货指定周期的人历史1023个数据def test_sina(sina):
版本3:类封装
#!/usr/bin/env python
# -*- coding: utf-8 -*-# @Project:TcyQuantTrade
# @Module:futures_sina# @Author: tcy
# @Date: 2022/9/28 17:52
# @Emial: 3615693665@qq.com
# @Version: 2.0
# @Last Modified time:
# @City: China Shanghai Songjiang Xiaokunshan
# @Company: Weishi Machinery Manufacturing Priorityfrom datetime import datetime,date
import re
import akshare as ak
import pandas as pd
from urllib import request
import jsonclass Sina(object):def __init__(self): pass@classmethoddef get_calendar(cls):# type:()->pd.DataFrame"""用途:获取新浪日期返回:trade_date0 1990-12-191 1990-12-20...7826 2022-12-297827 2022-12-30"""return ak.tool_trade_date_hist_sina()# 获取期货合约信息@classmethoddef get_contract_inf_sina(cls, symbol='AP2101'):# type:(str)->pd.DataFrame"""用途:查询期货合约详情参数:symbol: str 合约return: 期货合约详情 pd.DataFrame columns=['item','value']网站:https://finance.sina.com.cn/futures/quotes/V2101.shtml-----------------------------------------------------------------------------------------实例:ak.futures_contract_detail()输出:item value0 交易品种 鲜苹果1 最小变动价位 1元/吨2 交易时间 上午 09:00-10:15 10:30-11:30 下午 13:30-15:003 交割品级 符合《中华人民共和国国家标准 鲜苹果》(GB/T 10651-2008)(以下简称《苹果国标...4 交割方式 实物交割5 交易单位 10吨/手6 涨跌停板幅度 上一交易日结算价的±5%7 最后交易日 合约交割月份的第10个交易日8 最低交易保证金 合约价值的7%9 交易代码 AP10 报价单位 元(人民币)/吨11 合约交割月份 1、3、5、7、10、11、12月12 最后交割日 仓单交割:合约交割月份的第12个交易日 车(船)板交割:合约13 交易手续费 5.00 元/手,平今仓5.00元/手14 上市交易所 郑州商品交易所"""return ak.futures_contract_detail(symbol)# sina期货连续合约名称@classmethoddef get_main_name(cls):# type:()->pd.DataFrame"""用途:获取国内期货连续合约的名称sina返回:pd.DataFrame cols=[symbol,exchange,name]实例:df = ak.futures_display_main_sina()df.columns #Index(['symbol', 'exchange', 'name'], dtype='object')dfsymbol exchange name code0 V0 dce PVC连续 V1 P0 dce 棕榈油连续.. ... ... ...63 IC0 cffex 中证500指数期货连续64 TS0 cffex 2年期国债期货连续"""return ak.futures_display_main_sina()@classmethoddef get_main_day(cls, symbol='V0', startdate='20220901', enddate=''):# type:(str,str,str)->pd.DataFrame"""用途:新浪财经期货-主力连续日数据,不含今天数据-不稳定常报错参数:symbol: str 通过 ak.futures_display_main_sina() 函数获取 symbolstart_date: str 开始时间end_date: str 结束时间返回: DataFrame主力连续日数据;日期为str,其他为int cols=[[日期, 开盘价, 最高价, 最低价, 收盘价, 成交量, 持仓量, 动态结算价]说明:日期为str,其他为int原函数:ak.futures_main_sina(symbol: str = 'V0', start_date: str = '19900101',end_date: str = '22220101') -> 'DataFrame'实例:ak.futures_main_sina(symbol= 'V0',start_date = '19900101',end_date = '22220101')日期 开盘价 最高价 最低价 收盘价 成交量 持仓量 动态结算价0 2009-05-25 6575 6630 6435 6490 107764 12278 01 2009-05-26 6485 6540 6445 6460 38290 10562 0... ... ... ... ... ... ... ...3237 2022-09-23 6230 6269 6088 6100 1144145 712168 61703238 2022-09-26 6060 6122 6010 6104 1016829 691095 6075"""enddate = enddate if enddate else date.today().strftime('%Y%m%d')return ak.futures_main_sina(symbol, startdate, enddate)# sina期货合约实时数据@classmethoddef get_realtimeprice(cls, symbol='V2209,V2211', market=''):# type:(str,str)->pd.DataFrame"""用途:获取新浪-国内期货实时行情数据参数:symbol:str 合约名称的组合'V2205, P2205, B2201, M2205',market:str "CF"商品期货, "FF": 金融期货adjust str adjust='0'; adjust='1':返回合约、交易所和最小变动单位的实时数据, 返回数据会变慢返回:期货的实时行情数据 pd.DataFrame cols=['symbol', 'time', 'open', 'high', 'low', 'current_price', 'bid_price','ask_price', 'buy_vol', 'sell_vol', 'hold', 'volume', 'avg_price','last_close', 'last_settle_price']原函数:futures_zh_spot(symbol: str = 'V2205, P2205, B2201, M2205',market: str = 'CF', adjust: str = '0') -> 'DataFrame'实例:a=ak.futures_zh_spot('V2209,V2211','CF')asymbol time open high low current_price bid_price \0 PVC2209 151003 6503.0 6550.0 6400.0 6400.0 6400.01 PVC2211 151014 6261.0 6283.0 6086.0 6205.0 6202.0ask_price buy_vol sell_vol hold volume avg_price last_close \0 6700.0 7 20 0.0 1057 6756.0 6400.01 6205.0 2 1 79253.0 64222 6176.0 6205.0last_settle_price0 6600.01 6227.0a.dtypessymbol objecttime objectopen float64high float64low float64current_price float64bid_price float64ask_price float64buy_vol int64sell_vol int64hold float64volume int64avg_price float64last_close float64last_settle_price float64dtype: object"""market = market if market else 'CF'return ak.futures_zh_spot(symbol, market)# sina期货指定合约的历史数据-日频@classmethoddef get_kline_day(cls, symbol="V2105"):# type:(str)->pd.DataFrame"""用途:内盘-历史行情数据-新浪 新浪财经-期货-日频数据限量:单次返回指定 symbol 的所有日频数据参数:symbol: str symbol="V2105";具体合约可以通过ak.match_main_contract(symbol="shfe") 获取或者访问网页接口: futures_zh_daily_sina目标地址: https://finance.sina.com.cn/futures/quotes/V2105.shtml输出:DataFrame cols=['date', 'open', 'high', 'low', 'close', 'volume', 'hold', 'settle']名称 类型 描述date object -open float64 开盘价high float64 最高价low float64 最低价close float64 收盘价volume int64 成交量hold int64 持仓量settle float64 结算价------------------------------------------------------------------------------------------示例:import akshare as akdf = ak.futures_zh_daily_sina(symbol="V2105")date open high ... volume hold settle0 2021-01-08 29500.000 30680.000 ... 91045 14988 28290.0001 2021-01-11 26225.000 26720.000 ... 23026 17600 26260.000.. ... ... ... ... ... ... ...144 2021-08-12 17000.000 17195.000 ... 11215 21211 17055.000145 2021-08-13 17000.000 17080.000 ... 10536 20793 16865.000"""return ak.futures_zh_daily_sina(symbol)# sina 国内期货合约分时数据-速度快@classmethoddef get_kline_min(cls, symbol="TF2009", period="1"):# type:(str,str)->pd.DataFrame"""用途:内盘-分时行情数据(新浪财经-期货-分时数据)接口:futures_zh_minute_sina目标地址:http://vip.stock.finance.sina.com.cn/quotes_service/view/qihuohangqing.html#titlePos_3限量:单次返回指定 symbol 和 period 的分时数据参数:symbol:str 具体合约(期货品种符号需要大写)如"IF2008"通过ak.match_main_contract(symbol="cffex") 获取,或访问网页period str period="1"; choice of {"1": "1分钟", "5": "5分钟", "15": "15分钟", "30": "30分钟", "60": "60分钟"}输出:DataFrame cols=['datetime', 'open', 'high', 'low', 'close', 'volume', 'hold']名称 类型 描述datetime object -open float64 -high float64 -low float64 -close float64 -volume int64 -hold int64 持仓量示例:import akshare as akdf = ak.futures_zh_minute_sina(symbol="TF2009", period="1")df结果:datetime open high low close volume hold0 2020-07-15 14:47:00 100.610 100.625 100.610 100.610 63 450821 2020-07-15 14:48:00 100.610 100.615 100.595 100.605 45 45068... ... ... ... ... ... ...1021 2020-07-21 14:18:00 101.095 101.095 101.080 101.080 30 439381022 2020-07-21 14:19:00 101.080 101.095 101.080 101.085 43 43941"""return ak.futures_zh_minute_sina(symbol, period)# sina A股国内期货合约分时数据-速度快@classmethoddef get_kline(cls, symbol='m2201', freq='d', market='期货', **kws):# type:(str,str,str,Any)->pd.DataFrame"""用途:获取sina股票期货指定周期的人历史1023个数据返回:DataFrame columns name [date,open,high,low,close,volume]参数:symbol: str 品种代码,freq: str 周期(5m,15m,30m,60m日线),d数据长度最大1023mode=['股票','期货','股指期货']kws:仅用于A股原函数:stock_zh_a_daily(symbol: str = 'sh603843', start_date: str = '19900101',end_date: str = '21000118', adjust: str = '') ->‘DataFrame’参数:start_date: str = '19900101',end_date: str = '21000118',adjust: str = '' 默认为空: 返回不复权的数据;qfq: 返回前复权后的数据; hfq: 返回后复权后的数据;hfq-factor: 返回后复权因子; hfq-factor: 返回前复实例:get_sina_kline(symbol='sh000001', freq='60m', market='股票')get_sina_kline(symbol='sh000001', freq='d', market='股票')get_sina_kline(symbol='rb1910', freq='60m', market='期货')get_sina_kline(symbol='rb1910', freq='d', market='期货')get_sina_kline(symbol='IF1908', freq='60m', market='股指期货')get_sina_kline(symbol='IF1908', freq='d', market='股指期货')说明:股票历史数据API:5分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=5&datalen=102315分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=15&datalen=102330分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=30&datalen=102360分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=60&datalen=1023商品期货历史数据API:5分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=rb191015分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine15m?symbol=rb191030分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine30m?symbol=rb191060分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine60m?symbol=rb1910日K线:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=rb1910股指期货历史数据API:5分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine5m?symbol=IF190815分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine15m?symbol=IF190830分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine30m?symbol=IF190860分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine60m?symbol=IF1908日线:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=IF1908"""cols = ['date', 'open', 'high', 'low', 'close', 'volume']if market == '股票':if freq in ['5m', '15m', '30m', '60m']:url = 'https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=%s&scale=%s&datalen=1023' % (symbol, freq[:-1])else:def data(key, default): return kws[key] if key in kws else defaultstart_date = data('start_date', '19900101')end_date = data('end_date', '20000101')adjust = data('adjust', '')df = ak.stock_zh_a_daily(symbol, start_date, end_date, adjust)return df[cols]elif market == '期货':if freq in ['5m', '15m', '30m', '60m']:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine%s?symbol=%s' % (freq, symbol)else:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=%s' % (symbol)else:if freq in ['5m', '15m', '30m', '60m']:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine%s?symbol=%s' % (freq, symbol)else:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=%s' % (symbol)req = request.Request(url)rsp = request.urlopen(req)res = rsp.read()res_json = json.loads(res)df = pd.DataFrame(res_json)if market == '股票':df.rename(columns={'day': 'date'}, inplace=True)df = df[cols]else:df.rename(columns=dict(zip(df.columns, cols)), inplace=True)return dfdef test_sina(sina):print()print('test sina futures func start...')names = sina.get_main_name() # sina期货连续合约名称print('1.1.期货连续合约名=\n', names)try:df = sina.get_main_day() # sina期货连续合约历史数据-不稳定常报错print('1.2.期货连续合约历史数据=\n', df)except Exception as e:print('err=\n', e)df = sina.get_realtimeprice()print('2.1.期货合约实时数据=\n', df)df = sina.get_kline_day()print('2.2.期货连续合约历史数据-日频=\n', df)df = sina.get_kline_min() # sina A股国内期货合约分时数据-速度快print('2.3.A股期货合约分时数据=\n', df)df = sina.get_kline()print('2.4.期货合约分时数据=\n', df)"""test sina futures func start...1.1.期货连续合约名=symbol exchange name0 V0 dce PVC连续1 P0 dce 棕榈油连续2 B0 dce 豆二连续3 M0 dce 豆粕连续4 I0 dce 铁矿石连续.. ... ... ...61 TF0 cffex 5年期国债期货连续62 IH0 cffex 上证50指数期货连续63 IC0 cffex 中证500指数期货连续64 TS0 cffex 2年期国债期货连续65 IM0 cffex 中证连续指数期货连续[66 rows x 3 columns]1.2.期货连续合约历史数据=日期 开盘价 最高价 最低价 收盘价 成交量 持仓量 动态结算价0 2022-09-01 6220 6350 6210 6302 804836 456624 62841 2022-09-02 6281 6376 6160 6213 1047886 484266 62662 2022-09-05 6267 6420 6243 6404 1146915 464630 63573 2022-09-06 6404 6437 6347 6405 787150 479054 63884 2022-09-07 6376 6466 6305 6362 949583 467781 63735 2022-09-08 6380 6475 6342 6438 963735 469471 63986 2022-09-09 6440 6583 6412 6559 1009380 486271 64897 2022-09-13 6660 6674 6526 6541 611532 503629 65748 2022-09-14 6517 6527 6319 6343 1154538 559391 64049 2022-09-15 6350 6423 6281 6292 1034485 586004 634910 2022-09-16 6270 6307 6230 6278 849857 598962 626911 2022-09-19 6270 6320 6150 6156 1010248 676832 623712 2022-09-20 6150 6226 6122 6133 938762 698700 616413 2022-09-21 6130 6146 6035 6087 1098892 764709 608814 2022-09-22 6082 6244 6042 6230 1199842 697233 613915 2022-09-23 6230 6269 6088 6100 1144145 712168 617016 2022-09-26 6060 6122 6010 6104 1016829 691095 607517 2022-09-27 6099 6130 5951 6065 1212123 749351 60412.1.期货合约实时数据=symbol time open ... avg_price last_close last_settle_price0 PVC2209 151003 6503.0 ... 6756.0 6400.0 6600.01 PVC2211 151013 6201.0 ... 6225.0 6230.0 6176.0[2 rows x 15 columns]2.2.期货连续合约历史数据-日频=date open high low close volume hold settle0 2020-05-20 5730.0 5920.0 5730.0 5880.0 176 134 0.01 2020-05-21 5905.0 5980.0 5875.0 5955.0 287 284 0.02 2020-05-22 5940.0 6025.0 5930.0 5980.0 801 888 0.03 2020-05-25 6000.0 6075.0 5970.0 6020.0 391 1028 0.04 2020-05-26 6030.0 6050.0 5990.0 6025.0 267 1141 0.0.. ... ... ... ... ... ... ... ...238 2021-05-13 9460.0 9640.0 9330.0 9330.0 1016 8384 9430.0239 2021-05-14 9430.0 9500.0 9300.0 9300.0 369 8061 9405.0240 2021-05-17 9320.0 9320.0 9320.0 9320.0 200 8061 9320.0241 2021-05-18 9500.0 9500.0 9500.0 9500.0 26 8035 9500.0242 2021-05-19 9995.0 9995.0 9995.0 9995.0 245 0 9375.0[243 rows x 8 columns]2.3.A股期货合约分时数据=datetime open high low close volume hold0 2020-08-20 13:23:00 100.435 100.445 100.435 100.445 9 115271 2020-08-20 13:24:00 100.445 100.445 100.435 100.435 11 115252 2020-08-20 13:25:00 100.435 100.445 100.435 100.440 18 115313 2020-08-20 13:26:00 100.445 100.445 100.445 100.445 14 115304 2020-08-20 13:27:00 100.445 100.450 100.445 100.445 23 11516... ... ... ... ... ... ... ...1018 2020-09-10 14:36:00 100.120 100.120 100.105 100.105 10 1011019 2020-09-10 14:38:00 100.105 100.105 100.105 100.105 4 1041020 2020-09-10 14:42:00 100.105 100.105 100.105 100.105 5 1041021 2020-09-10 14:47:00 100.105 100.105 100.095 100.095 5 1051022 2020-09-10 15:13:00 100.095 100.095 100.070 100.075 10 115[1023 rows x 7 columns]2.4.期货合约分时数据=date open high low close volume0 2021-01-18 3579.000 3580.000 3466.000 3503.000 345881 2021-01-19 3495.000 3535.000 3480.000 3490.000 134912 2021-01-20 3497.000 3499.000 3354.000 3380.000 325213 2021-01-21 3380.000 3408.000 3361.000 3396.000 106224 2021-01-22 3416.000 3416.000 3311.000 3326.000 16590.. ... ... ... ... ... ...239 2022-01-10 3483.000 3483.000 3483.000 3483.000 51240 2022-01-11 3492.000 3500.000 3288.000 3472.000 2074241 2022-01-12 3473.000 3473.000 3446.000 3446.000 367242 2022-01-13 3473.000 3473.000 3446.000 3483.000 0243 2022-01-14 3473.000 3473.000 3446.000 3483.000 367[244 rows x 6 columns]"""
if __name__ == '__main__':sina = Sina()test_sina(sina)
版本2:
import numpy as np
import pandas as pd
import akshare as ak
import datetime
from urllib import request
import jsondef get_sina_kline(symbol='m2201', period='d', market='期货',**kwargs) -> 'DataFrame':'''用途:获取sina股票期货指定周期的人历史1023个数据返回:DataFrame columns name [date,open,high,low,close,volume]参数:symbol品种代码,period是周期(5m,15m,30m,60m日线),datalen是获取数据的长度,最大就是1023mode=['股票','期货','股指期货']kwargs:仅用于A股stock_zh_a_daily(symbol: str = 'sh603843', start_date: str = '19900101', end_date: str = '21000118', adjust: str = '') ->‘DataFrame’start_date: str = '19900101',end_date: str = '21000118',adjust: str = '' 默认为空: 返回不复权的数据;qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; hfq-factor: 返回后复权因子; hfq-factor: 返回前复实例:get_sina_kline(symbol='sh000001', period='60m', market='股票')get_sina_kline(symbol='sh000001', period='d', market='股票')get_sina_kline(symbol='rb1910', period='60m', market='期货')get_sina_kline(symbol='rb1910', period='d', market='期货')get_sina_kline(symbol='IF1908', period='60m', market='股指期货')get_sina_kline(symbol='IF1908', period='d', market='股指期货')说明:股票历史数据API:5分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=5&datalen=102315分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=15&datalen=102330分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=30&datalen=102360分钟:https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=sh000001&scale=60&datalen=1023商品期货历史数据API:5分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=rb191015分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine15m?symbol=rb191030分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine30m?symbol=rb191060分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine60m?symbol=rb1910日K线:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=rb1910股指期货历史数据API:5分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine5m?symbol=IF190815分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine15m?symbol=IF190830分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine30m?symbol=IF190860分钟:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine60m?symbol=IF1908日线:http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=IF1908'''cols = ['date', 'open', 'high', 'low', 'close', 'volume']if market == '股票':if period in ['5m', '15m', '30m', '60m']:url = 'https://quotes.sina.cn/cn/api/json_v2.php/CN_MarketDataService.getKLineData?symbol=%s&scale=%s&datalen=1023' % (symbol, period[:-1])else:data=lambda key,default:kwargs[key] if key in kwargs else defaultstart_date=data('start_date', '19900101')end_date = data('end_date', '20000101')adjust = data('adjust', '')df= ak.stock_zh_a_daily(symbol, start_date, end_date, adjust)return df[cols]elif market=='期货':if period in ['5m', '15m', '30m', '60m']:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine%s?symbol=%s' % (period, symbol)else:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=%s' % (symbol)else:if period in ['5m', '15m', '30m', '60m']:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine%s?symbol=%s' % (period, symbol)else:url = 'http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=%s' % (symbol)req = request.Request(url)rsp = request.urlopen(req)res = rsp.read()res_json = json.loads(res)df= pd.DataFrame(res_json)if market == '股票':df.rename(columns={'day':'date'}, inplace=True)df =df[cols]else:df.rename(columns=dict(zip(df.columns,cols)), inplace=True)return df# global_gdp_radio_quarterly()
print(get_sina_kline(symbol='IF1908', period='d', market='股指期货'))
#-以下为老版本:
# Name: 新浪财经期货数据python读取
# Purpose:
#
# Author: tcy shanghai yexie
#
# Created: 05/07/2018
# Copyright: (c) tcy 2018# 参考网址: https://www.aliyun.com/jiaocheng/433081.html
# http://blog.sina.com.cn/s/blog_7ed3ed3d0101gphj.html#coding: utf-8import requests
import sys
import numpy as np#读实盘数据
#功能: 实时读取新浪财经期货数据
#参数: 请输入要读取的合约名称
#返回值:以数组的形式返回def read_real_future_data(future_code):# future_code ='M1809'#从新浪财经读数据url_str = ('http://hq.sinajs.cn/list=' +future_code)r = requests.get(url_str)#数据处理,保存在临时数组中b=list(r)str1=b[0].decode(encoding='gbk') +b[1].decode(encoding='gbk')str2=str1.split(',')str3=str2[0].split('_')[-1]str4=str3.split('=')##-------------------------------------------------------------------------## 2018/7/5 shanghai tcy python版本##f=[0,0,0,0,0,0,0,0]##f[0]=str4[0] #code##f[1]=str4[1].strip('"') #name##f[2]=str2[17] #date##f[3]=str2[2] #open##f[4]=str2[3] #high##f[5]=str2[4] #low##f[6]=str2[6] #close##f[7]=str2[14] #vol##--------------------------------------------------------------------------## numpy版本运行速度快dt=np.dtype([('code','S10'),('name','U10'),('date','datetime64[D]'),('open',np.float32),('high',np.float32),('low',np.float32),('close',np.float32),('vol',np.float32)])f=np.array([("","",'1970-01-01',0.0,0.0,0.0,0.0,0.0)],dtype=dt)f[0]['code']=str4[0] #codef[0]['name']=str2[16] #namef[0]['date']=str2[17] #datef[0]['open']=str2[2] #openf[0]['high']=str2[3] #highf[0]['low']=str2[4] #lowf[0]['close']=str2[6] #closef[0]['vol']=str2[14] #vol#测试程序:
f= read_real_future_data('M1809')
print(f)****************************************************************************
****************************************************************************
一。新浪实时数据读取例子http://hq.sinajs.cn/list=M0 #豆粕连续 M0返回值如下:var hq_str_M0="豆粕连续,145958,3170,3190,3145,3178,3153,3154,3154,3162,3169,1325,223,1371608,1611074,连,豆粕,2013-06-28"...;----------------------------------------------------------1.数据读出顺序0:豆粕连续,名字1:145958,数据读取时间2:3170,开盘价3:3190,最高价4:3145,最低价5:3178,昨日收盘价 (2018年6月27日)6:3153,买价,即“买一”报价7:3154,卖价,即“卖一”报价8:3154,最新价,即收盘价9:3162,结算价10:3169,昨结算11:1325,买 量12:223,卖 量13:1371608,持仓量14:1611074,成交量15:连,大连商品交易所简称16:豆粕,品种名简称17:2018-06-28,日期----------------------------------------------2.新浪期货数据各品种代码(商品连续)如下RB0 螺纹钢AG0 白银AU0 黄金CU0 沪铜AL0 沪铝ZN0 沪锌PB0 沪铅RU0 橡胶FU0 燃油WR0 线材A0 大豆M0 豆粕Y0 豆油J0 焦炭C0 玉米L0 乙烯P0 棕油V0 PVCRS0 菜籽RM0 菜粕FG0 玻璃CF0 棉花WS0 强麦ER0 籼稻ME0 甲醇RO0 菜油TA0 甲酸CFF_RE_IF1307 股指期货3.使用方法3.1.品种名 + 0 (数字0),代表品种连续,如果是其他月份,请使用品种名 + YYYMM例如豆粕 2013年09月,M1309http://hq.sinajs.cn/list=M13093.2.一次可以请求多个品种,例如http://hq.sinajs.cn/list=CFF_RE_IF1307,TA0,M0,CFF_RE_IF1306,RB1309,M1309,SR1309********************************************************************************************
二。历史数据读取商品期货http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLineXm?symbol=CODE例子:http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=M05分钟http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine5m?symbol=M015分钟http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine15m?symbol=M030分钟http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine30m?symbol=M060分钟http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesMiniKLine60m?symbol=M0日K线http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=M0股指期货5分钟http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine5m?symbol=IF130615http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine15m?symbol=IF130630分钟http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine30m?symbol=IF130660分钟http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesMiniKLine60m?symbol=IF1306日线http://stock2.finance.sina.com.cn/futures/api/json.php/CffexFuturesService.getCffexFuturesDailyKLine?symbol=IF1306****************************************************************************************************************************************************************************************实例:
import requests
import sys
future_code = 'M1809'
url_str = ('http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=' +
future_code)
r = requests.get(url_str)
r_json = r.json()
r_lists = list(r_json)
print('future_code,date,open,high,low,close,vol')for r_list in r_lists:for v in r_list:print(v + ',',end='')print('\n')
期货数据读取python从新浪财经相关推荐
- python处理期货数据_获取和讯期货数据(Python版本)
获取和讯期货数据(Python版本) 获取和讯期货数据(Python版本) Author: edwardgyw, Date: 2016-11-28 14:38:44 Tags: Python 扩展 商 ...
- python 获取国内期货_获取和讯期货数据(Python版本).md
> 策略名称 获取和讯期货数据(Python版本) > 策略作者 edwardgyw > 策略描述 数狂很早之前写了个js版本的第三方数据获取,我照着他的改写了个python版本的, ...
- python 期货交易接口_期货数据接口(期货数据接口 python)
期货数据接口,聚宽,恒生聚宽,菜狗均可以接口聚宽ip列表小收费:聚宽聚宽-trader.com恒生聚宽ip列表,nae 我们公司用股票接口,你可以试一下websocket.high.js这个 聚宽和华 ...
- python读取mysql数据_如何将mysql的数据读取python
展开全部 本文实例为大家2113分享了Python读取MySQL数据库表数据的具体代码,5261供大家参考,具体内容4102如下 环境:Python 3.6 ,Window 64bit 目的:1653 ...
- 【金融】【python】处理表格(*.xlsx)形式的期货数据
[金融][python]处理表格(*.xlsx)形式的期货数据 数据读取 打开文件 截取特定列 处理脏数据/空数据 转换数据格式 处理数据索引和顺序 显示收盘价折线图 对读取后的数据进行处理 处理金融 ...
- python通达信接口_mootdx: 通达信数据读取 pytdx 的一个简便使用封装
通达信数据读取接口 版本更新 把 pytdx 代码合并至项目里. 可转债历史数据获取识别(添加113开头). 修正转债数据无法获取问题. 修改获取股票数据接口(自动全部获取). 修改指数数据接口,市场 ...
- python调用通达信函数_mootdx: 通达信数据读取 pytdx 的一个简便使用封装
通达信数据读取接口 版本更新 修正转债数据无法获取问题 修改获取股票数据接口(自动全部获取). 修改指数数据接口,市场参数错误. 修复财务数据无法下载问题. 更新了详细的文档. 多种线路配置方案. ( ...
- livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程
敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...
- python csv读取-python如何读取csv数据
python读取csv数据的方法:首先利用csv.reader方法来读取csv文件,该方法会返回一个可迭代的对象csv_read,然后我们可以直接从csv_read对象中获取数据. python中读取 ...
最新文章
- 如何理解PacBio的准确度?
- .NET托管内存类应用的内存泄漏分析和诊断
- JQuery事件绑定,bind与on区别
- Grafana3整合Zabbix实现图形化监控
- iOS点滴- ViewController详解
- python 插入排序算法
- android trace文件分析ANR
- :after伪类+content经典应用举例
- JavaFX 2.0和Scala,例如牛奶和饼干
- POJ 2259 team queue团队排队问题
- 获取zabbix监控数据
- stanford-parser for C#
- Spring 注解编程之模式注解
- 522. 最长特殊序列 II
- vb.net 同时给多个属性赋值_传奇技能,第十四祭:装备属性修改与增加新装备...
- Wake On Lan 网络唤醒 远程开机功能设置教程
- 电脑文件服务器资源管理器在哪,资源管理器在哪?怎么打开资源管理器?5种方法总有适合你...
- wechat微信小程序 :对应的服务器证书无效
- nginx 漏洞修复
- java jcp_太久了,JCP:Eclipse考虑了新的Java规范流程
热门文章
- iSpring Suite+PowerPoint,轻松创建小游戏!
- 华为鸿蒙智能屏评测,华为智慧屏SE系列值得买吗 华为智慧屏SE系列深度评测
- 大学物理实验长度的测量实验报告_大学物理实验报告之长度基本测量
- Java开源网络服务器端组件
- matlab常见的图像增强技术(包括基于幂次变换,对图像进行均衡化处理,巴特沃斯低通,理想低通,梯形低通滤波, 均值滤波,中值滤波,最大,最小值滤波,修正后的阿尔法滤波器)
- mongo删除、添加分片
- Unity UI、图片(Sprite)的显示层级(遮挡关系)控制
- Ubuntu 镜像下载
- HarmonyOS车机应用如何开发?
- 免费离线使用的MarkDown阅读器