用途:读取股票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从新浪财经相关推荐

  1. python处理期货数据_获取和讯期货数据(Python版本)

    获取和讯期货数据(Python版本) 获取和讯期货数据(Python版本) Author: edwardgyw, Date: 2016-11-28 14:38:44 Tags: Python 扩展 商 ...

  2. python 获取国内期货_获取和讯期货数据(Python版本).md

    > 策略名称 获取和讯期货数据(Python版本) > 策略作者 edwardgyw > 策略描述 数狂很早之前写了个js版本的第三方数据获取,我照着他的改写了个python版本的, ...

  3. python 期货交易接口_期货数据接口(期货数据接口 python)

    期货数据接口,聚宽,恒生聚宽,菜狗均可以接口聚宽ip列表小收费:聚宽聚宽-trader.com恒生聚宽ip列表,nae 我们公司用股票接口,你可以试一下websocket.high.js这个 聚宽和华 ...

  4. python读取mysql数据_如何将mysql的数据读取python

    展开全部 本文实例为大家2113分享了Python读取MySQL数据库表数据的具体代码,5261供大家参考,具体内容4102如下 环境:Python 3.6 ,Window 64bit 目的:1653 ...

  5. 【金融】【python】处理表格(*.xlsx)形式的期货数据

    [金融][python]处理表格(*.xlsx)形式的期货数据 数据读取 打开文件 截取特定列 处理脏数据/空数据 转换数据格式 处理数据索引和顺序 显示收盘价折线图 对读取后的数据进行处理 处理金融 ...

  6. python通达信接口_mootdx: 通达信数据读取 pytdx 的一个简便使用封装

    通达信数据读取接口 版本更新 把 pytdx 代码合并至项目里. 可转债历史数据获取识别(添加113开头). 修正转债数据无法获取问题. 修改获取股票数据接口(自动全部获取). 修改指数数据接口,市场 ...

  7. python调用通达信函数_mootdx: 通达信数据读取 pytdx 的一个简便使用封装

    通达信数据读取接口 版本更新 修正转债数据无法获取问题 修改获取股票数据接口(自动全部获取). 修改指数数据接口,市场参数错误. 修复财务数据无法下载问题. 更新了详细的文档. 多种线路配置方案. ( ...

  8. livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程

    敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...

  9. python csv读取-python如何读取csv数据

    python读取csv数据的方法:首先利用csv.reader方法来读取csv文件,该方法会返回一个可迭代的对象csv_read,然后我们可以直接从csv_read对象中获取数据. python中读取 ...

最新文章

  1. 如何理解PacBio的准确度?
  2. .NET托管内存类应用的内存泄漏分析和诊断
  3. JQuery事件绑定,bind与on区别
  4. Grafana3整合Zabbix实现图形化监控
  5. iOS点滴- ViewController详解
  6. python 插入排序算法
  7. android trace文件分析ANR
  8. :after伪类+content经典应用举例
  9. JavaFX 2.0和Scala,例如牛奶和饼干
  10. POJ 2259 team queue团队排队问题
  11. 获取zabbix监控数据
  12. stanford-parser for C#
  13. Spring 注解编程之模式注解
  14. 522. 最长特殊序列 II
  15. vb.net 同时给多个属性赋值_传奇技能,第十四祭:装备属性修改与增加新装备...
  16. Wake On Lan 网络唤醒 远程开机功能设置教程
  17. 电脑文件服务器资源管理器在哪,资源管理器在哪?怎么打开资源管理器?5种方法总有适合你...
  18. wechat微信小程序 :对应的服务器证书无效
  19. nginx 漏洞修复
  20. java jcp_太久了,JCP:Eclipse考虑了新的Java规范流程

热门文章

  1. iSpring Suite+PowerPoint,轻松创建小游戏!
  2. 华为鸿蒙智能屏评测,华为智慧屏SE系列值得买吗 华为智慧屏SE系列深度评测
  3. 大学物理实验长度的测量实验报告_大学物理实验报告之长度基本测量
  4. Java开源网络服务器端组件
  5. matlab常见的图像增强技术(包括基于幂次变换,对图像进行均衡化处理,巴特沃斯低通,理想低通,梯形低通滤波, 均值滤波,中值滤波,最大,最小值滤波,修正后的阿尔法滤波器)
  6. mongo删除、添加分片
  7. Unity UI、图片(Sprite)的显示层级(遮挡关系)控制
  8. Ubuntu 镜像下载
  9. HarmonyOS车机应用如何开发?
  10. 免费离线使用的MarkDown阅读器