行情数据
获取静态历史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)
发送自定义指标-sendcustomIndicator
api.sendcustomIndicator传入自定义IV数据
参数编号 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
1 | string | 否 | 合约 | |
2 | dict | 否 | 传入指标数据,key为指标名,value为指标值 |
#sendcustomIV传入自定义IV数据
indicator={"MACD - DIF":str(data['Last']*100),"MACD":str(data['Last']),"CCI":str(data['Last']*100),"AVG":str(data['Last']*100)}
api.sendcustomIndicator("TC.O.SSE.510050.HOT",indicator)