针对于ctp交易接口股票历史数据的查询,其基本原理就是利用api接口开发子系统最终就是开发完成并暴露一个标准的HTTPAPI接口,并将接口注册和接入到API网关。API设计和开发的核心思想仍然应该是基于领域对象建模驱动,通过领域对象建模很好的实现接口和底层数据库,数据库表之间的解耦,也方便实现底层多数据库,多表的支持能力。然后接入到ctp交易接口查询股票历史数据就方便多了。那么,它是怎样实现的呢?简单的示例以下api数据接口使用功能:
基本函数 | Init | API 初始化 |
Deinit | API 反初始化 | |
Logon | 登录交易账户 | |
Logoff | 登出交易账户 | |
QueryData | 查询各类交易数据 | |
QueryHistoryData | 查询各类历史数据 | |
SendOrder | 委托下单 | |
CancelOrder | 委托撤单 | |
GetQuote | 获取五档报价 | |
Repay | 融资融券账户直接还款 | |
GetExpireDate | 查询 API 授权到期日期 | |
单账户批量函数 | QueryDatas | 单账户批量查询各类交易数据 |
SendOrders | 单账户批量下单 | |
CancelOrders | 单账户批量撤单 | |
GetQuotes | 单账户批量获取五档报价 | |
多账户批量函数 | QueryMultiAccountsDatas | 多账户批量查询各类交易数据 |
SendMultiAccountsOrders | 多账户批量下单 | |
CancelMultiAccountsOrders | 多账户批量撤单 | |
GetMultiAccountsQuotes | 多账户批量获取五档报价 | |
不过,当前很多API接口快速开发平台都是基于数据库对象或表,直接发布类似CRUD的API接口服务,但是基于是数据库表的直接发布,一般仍然建议逆向对象这层,方便后续在对象层进行相关的组合,规则扩展等操作。那么,交易者想要查询ctp交易接口股票历史数据,应该怎么操作呢?
就举个例子,我们在查询的时候,一般会定义A股的个股代码,股价,开盘价格,成交额等等数据,就可以通过一些源码来链接到api数据接口查询出来。
如:
import requests;
import time;
import json;
import pandas as pd;
def fenshishuju_dfcf(daima);
//这里我们要定义数组来区分开来,让打印结果更加详细化,实现ctp交易接口股票数据的实时抓取按时间详细化分割,精准的打印出来;
if daima[:2] == "sh":
lsbl = '1.'+daima[2:]
else:
lsbl = '0.' + daima[2:]
wangzhi = "http://push2his.eastmoney.com/api/qt/stock/trends2/get?&fields1=f1%2Cf2%2Cf3%2Cf4%2Cf5%2Cf6%2Cf7%2Cf8%2Cf9" \
"%2Cf10%2Cf11%2Cf12%2Cf13&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58&" \
"ut=7eea3edcaed734bea9cbfc24409ed989&ndays=1&iscr=0&secid="+lsbl+ \
"&_=1643253749790"+str(time.time)
resp = requests.get(wangzhi, timeout=6)
# print (resp)
#打印请求结果的状态码
data = json.loads(resp.text)
shuju = {'日期时间': [], '最新价': [], '均价': [], '成交额': []}
for k in data['data']['trends']:
lsbl = k.split(",")
shuju['日期时间'].append(lsbl[0])
shuju['最新价'].append(lsbl[2])
shuju['均价'].append(lsbl[-1])
shuju['成交额'].append(lsbl[-2])
shuju = pd.DataFrame(shuju)
print(shuju)
return shuju
if __name__ == '__main__':
while 1:
fenshishuju_dfcf('sh603102')
time.sleep(3)
return{
}
输出示例:
上一篇:个性签名《张天明》如何写
下一篇:形容道路弯曲的古代诗词