Skip to main content

行情数据

获取静态历史K线周期数据-getquotehistory

api.getquotehistory返回指定合约周期大小的历史数据

参数编号 类型 默认 注释
1 int 2:BarType.TICK ticks周期
4:BarType.MINUTE 分K
5:BarType.DK 日K
2 int 周期大小
3 string 合约
4 string 开始日期
5 string 当前日期 结束日期
# 获取静态历史K线周期数据
print(pd.DataFrame(api.getquotehistory(BarType.MINUTE,5,"TC.F.SHFE.au.HOT",starttime="2022120101")))

订阅动态K线(历史+实时K线)数据-subbar

api.subbar订阅动态K线数据,当K线更新时数据从onbar回调方法返回

参数编号 类型 默认 注释
1 int 2:BarType.TICK TICKS周期
4:BarType.MINUTE 分K
5:BarType.DK 日K
2 int 周期大小
3 string 合约
4 string 开始日期
5 bool True K默认按周期更新,当为False时每笔tick都更新
# #订阅动态K线数据,数据从onbar回调方法中返回
api.subbar(BarType.MINUTE,5,"TC.F.CFFEX.T.HOT",starttime="2022120101")
api.subbar(BarType.MINUTE,5,"TC.O.SSE.510050.202212.C.2.5",starttime="2022120101")
api.subbar(BarType.MINUTE,1,"TC.F.SHFE.rb.HOT",starttime="2022120101")
api.subbar(BarType.MINUTE,5,"TC.F.SHFE.rb.HOT",starttime="2022120101")
api.subbar(BarType.DK,1,"TC.F.SHFE.rb.HOT",starttime="2022120101")

获取静态greeks线图周期数据-getgreekshistory

api.getgreekshistory返回指定合约周期大小的greeks历史数据

参数编号 类型 默认 注释
1 int 9:GreeksType.GREEKS1K 分K
10:GreeksType.GREEKSTICK TICKS周期
19:GreeksType.GREEKSDK 日K
800:GreeksType.DOGSS dogs的TICKS周期
820:GreeksType.DOGSK dogs的分K
2 int 周期大小
3 string 合约
4 string 开始日期
5 string 当前日期 结束日期
# 获取历史Greeks
print(api.getgreekshistory(GreeksType.GREEKS1K,1,"TC.F.U_SSE.510050.202212","2022121202"))
# 获取合约的greeks数据
print(api.getgreekshistory(GreeksType.DOGSK,5,"TC.O.SSE.510050.202301.C.2.5","2023010400","2023010407"))
# 订阅实时greeks数据

订阅动态greeks线图数据-subgreeksline

api.subgreeksline订阅动态greeks线图数据,当greeks周期数据更新时,ongreeksline回调方法被触发

参数编号 类型 默认 注释
1 int 9:GreeksType.GREEKS1K 分K
10:GreeksType.GREEKSTICK TICKS周期
19:GreeksType.GREEKSDK 日K
800:GreeksType.DOGSS dogs的TICKS周期
820:GreeksType.DOGSK dogs的分K
2 int 周期大小
3 string 合约
4 string 开始日期
5 bool True K默认按周期更新,当为False时每笔tick都更新
# 订阅动态Greeks线图数据
api.subgreeksline(GreeksType.DOGSK,5,"TC.O.SSE.510050.202301.C.2.75",starttime="2023011101")

获取ATM合约-getATM

参数编号 类型 默认 注释
1 string 合约代码
2 int 虚实值档
-2:实值两档期权合约
-1:实值一档期权合约
0:平值期权合约
1:虚值一档期权合约
# 获取ATM
        # -2:实值两档期权合约
        # -1:实值一档期权合约
        #  0:平值期权合约
        #  1:虚值期权合约
print(api.getATM("TC.O.SSE.510050.202212.C",2))

订阅动态行情数据

订阅动态行情数据,需要创建继承自行情事件类QuoteEvent的子类

from icetcore import (TCoreAPI,
                    QuoteEvent,
                    BarType,
                    GreeksType,
                    OrderStruct,
                    SymbolType,)
from datetime import datetime,timedelta


class APIEvent(TradeEvent,QuoteEvent):
    #连线成功通知apitype="quoteapi"是行情api的通知,"tradeapi"是交易通知
    def onconnected(self,apitype:str):
        print(apitype)
    #断线成功通知
    def ondisconnected(self,apitype:str):
        print(apitype)
    #subATM订阅的ATM合约信息,动态推送期权的ATM平值,OTM-1C虚值一档认购,OTM-1P虚值一档认沽,和认购期权合约列表
    def onATM(self,datatype,symbol,data:dict):
        pass
    #实时greeks
    def ongreeksreal(self,datatype,symbol,data:dict):
        print("实时\n")
        print(data)
    #subgreeksline订阅的动态线图数据
    def ongreeksline(self,datatype,interval,symbol,data,isreal):
        print(data)
    #subquote订阅的合约实时行情
    def onquote(self,data):
        #print(data)
        pass
	    #subbar订阅的动态K线数据
    def onbar(self,bartype,interval,symbol,data:list,isreal:bool):
        print("$$$$$$$$$$$$$$$$$$$$$$\n",bartype,"  ",interval,"  ",data[-3],"\n",data[-2],"\n",data[-1])
    #server时间
    def onservertime(self, serverdt):
        print("!!!!!!!!!!!!!!!",serverdt)
        pass
#api=TCoreAPI(APIEvent)#icetcore 6.6之前版本
api=TCoreAPI(apppath="C:/AlgoMaster2/APPs64",eventclass=APIEvent)#icetcore 6.6及之之后版本
re=api.connect()#(appid="AlgoMaster")
time.sleep(1)
# #订阅动态K线数据,数据从onbar回调方法中返回
api.subbar(BarType.MINUTE,5,"TC.F.CFFEX.T.HOT",starttime="2022120101")
api.join()

订阅实时greeks数据-subgreeksreal

api.subgreeksreal订阅实时greeks数据,当盘口greeks数据有更新时,ongreeksreal回调方法被触发

api.subgreeksreal("TC.O.SSE.510050.202301.C.2.5")

订阅实时行情数据-subquote

api.subquote订阅实时行情数据,返回结果如果是小于0的字符串数字表示订阅失败,当盘口数据有更新时, onquote回调方法被触发

re=api.subquote("TC.O.SSE.510050.202212.C.2.5")
if re=="-1":
    print("订阅数超过上限")
elif re=="-10":
    print("无报价权限")

订阅动态ATM合约信息-subATM

api.subATM订阅实时ATM合约信息,当期权合约变化时,或者平值期权合约变化时,onATM回调方法被触发, data:OTM-1C虚值一档认购,OTM-1P虚值一档认沽,和认购期权合约列表

#subATM订阅的ATM合约信息,动态推送期权的ATM平值,OTM-1C虚值一档认购,OTM-1P虚值一档认沽,和认购期权合约列表
api.subATM("TC.O.SSE.510050.202212.C")

启用自定义IV数据-activecustomgreeks

api.activecustomgreeks启用自定义IV数据,在连线建立后,sendcustomIV之前调用一次即可,否则sendcustomIV无效(启用该模式需要在“期权序列参数”设定为:本机自定义实时拟合)

参数编号 类型 默认 注释
1 int 1:只传入期权IV
11:传入期权和期货IV
10:只传入期货IV
#activecustomgreeks启用自定义IV数据
api.activecustomgreeks(1)

关闭自定义IV数据-unactivecustomgreeks

api.unactivecustomgreeks关闭自定义IV,在不需要使用传入自定义IV数据时,必须调用该方法关闭,否则客户端无法恢复更新原本行情更新

#unactivecustomgreeks关闭自定义IV
api.unactivecustomgreeks()

传入自定义IV数据-sendcustomIV

api.sendcustomIV传入自定义IV数据

参数编号 类型 默认 注释
1 string 合约
2 float 需要传入的IV值
#sendcustomIV传入自定义IV数据
api.sendcustomIV("TC.O.SSE.510050.202212.C",15.06)