update xtquant version to 250425
This commit is contained in:
parent
20628a07e6
commit
280234523d
@ -3,7 +3,6 @@
|
||||
__version__ = "xtquant"
|
||||
|
||||
|
||||
|
||||
def check_for_update(package_name):
|
||||
import requests
|
||||
from pkg_resources import get_distribution
|
||||
|
1
src/xtquant/config/downloadSchedule.json
Normal file
1
src/xtquant/config/downloadSchedule.json
Normal file
@ -0,0 +1 @@
|
||||
{}
|
@ -328,12 +328,19 @@ function c_relate()
|
||||
end
|
||||
|
||||
function c_std()
|
||||
local cache = FormulaDataCacheDouble(cacheDoubleNum)
|
||||
function std_func(value, N, timetag, __formula, type)
|
||||
local ret = std(value, cache, N, timetag, __formula, type)
|
||||
return ret
|
||||
local container = FormulaCacheContainer()
|
||||
function wrapper(X, N, timetag, formula)
|
||||
return std(container, X, N, timetag, formula)
|
||||
end
|
||||
return std_func
|
||||
return wrapper
|
||||
end
|
||||
|
||||
function c_stdp()
|
||||
local container = FormulaCacheContainer()
|
||||
function wrapper(X, N, timetag, formula)
|
||||
return stdp(container, X, N, timetag, formula)
|
||||
end
|
||||
return wrapper
|
||||
end
|
||||
|
||||
function c_var()
|
||||
@ -345,15 +352,6 @@ function c_var()
|
||||
return var_func
|
||||
end
|
||||
|
||||
function c_stdp()
|
||||
local cache = FormulaDataCacheDouble(cacheDoubleNum)
|
||||
function stdp_func(value, N, timetag, __formula)
|
||||
local ret = stdp(value, cache, N, timetag, __formula)
|
||||
return ret
|
||||
end
|
||||
return stdp_func
|
||||
end
|
||||
|
||||
function c_varp()
|
||||
local cache = FormulaDataCacheDouble(cacheDoubleNum)
|
||||
function varp_func(value, N, timetag, __formula)
|
||||
|
1
src/xtquant/config/user/root3/config/config_cmd
Normal file
1
src/xtquant/config/user/root3/config/config_cmd
Normal file
@ -0,0 +1 @@
|
||||
÷³Ñªg幃bÚh“V‡(EŸ¨)ê´í‹5Ðða<mïmZ!Rß– Ê•GÅ
|
@ -1,4 +1,4 @@
|
||||
-- 取Client配置
|
||||
-- 取Client配置
|
||||
|
||||
function()
|
||||
local ret = {
|
||||
@ -17,6 +17,7 @@ function()
|
||||
threadPools = {
|
||||
--datasource
|
||||
datasource_callback = 10,
|
||||
datasource_process = 3,
|
||||
datasource_req = 10,
|
||||
datasource_other = 5,
|
||||
datasource_tradedate_change = 1,
|
||||
@ -26,14 +27,14 @@ function()
|
||||
accounts = 5,
|
||||
persistmini = 1,
|
||||
subquote = 3,
|
||||
--python策略运行
|
||||
--python策略运行
|
||||
pystrategy_run = 3,
|
||||
--msgservice
|
||||
msg_service = 1,
|
||||
uicontrol_hpf_data_model = 1,
|
||||
server_miniquote = 1,
|
||||
server_vbaservice = 1,
|
||||
--指标全推
|
||||
--指标全推
|
||||
index_quote = 2,
|
||||
},
|
||||
client_xtservice = {
|
||||
@ -78,7 +79,7 @@ function()
|
||||
["1011"] = "0",
|
||||
["1801"] = "0",
|
||||
["1802"] = "0",
|
||||
["1803"] = "60000",
|
||||
["1803"] = "60000,86400000",
|
||||
["1804"] = "0",
|
||||
["1806"] = "0",
|
||||
["1808"] = "60000,86400000",
|
||||
@ -91,20 +92,33 @@ function()
|
||||
["2003"] = "86400000",
|
||||
["2004"] = "86400000",
|
||||
["2006"] = "86400000",
|
||||
["2013"] = "86400000",
|
||||
["2014"] = "0",
|
||||
["2016"] = "86400000",
|
||||
["2017"] = "60000",
|
||||
["2018"] = "60000",
|
||||
["2999"] = "86400000",
|
||||
["3000"] = "0",
|
||||
["3001"] = "60000,300000,3600000,86400000",
|
||||
["3002"] = "60000",
|
||||
["3004"] = "60000",
|
||||
["3006"] = "60000,86400000",
|
||||
["3013"] = "86400000",
|
||||
["3014"] = "60000,86400000",
|
||||
["3015"] = "86400000",
|
||||
["3017"] = "0,86400000",
|
||||
["3018"] = "86400000",
|
||||
["3019"] = "86400000",
|
||||
["3030"] = "0",
|
||||
["4000"] = "86400000",
|
||||
["4002"] = "60000,300000,3600000,86400000",
|
||||
["4011"] = "60000,86400000",
|
||||
["4003"] = "60000,300000,3600000,86400000",
|
||||
["4011"] = "60000,300000,3600000,86400000",
|
||||
["4999"] = "86400000",
|
||||
["5000"] = "0",
|
||||
["5002"] = "86400000",
|
||||
["5003"] = "0",
|
||||
["9000"] = "0",
|
||||
["9000"] = "0,86400000",
|
||||
},
|
||||
config = {
|
||||
configdir = "../config",
|
||||
|
@ -5,19 +5,15 @@
|
||||
<QuoterServers autoupdate="0" current_trade_option="" current_trade_future="" current_shkstock="" autochangeserver="0" current_trade_hkstock="" current_trade_stock="" current_future="" reconnectonlost="1" current_future_option="" current_trade_future_option="" current_trade_shkstock="" current_trade_gold="" autohide="1" current_trade_neeq="" current_gold="" current_hkstock="" current_option="" nWholeQuoteGear="5" current_neeq="" showdlgonlost="0" current_stock="">
|
||||
<QuoterServer username="" address="115.231.218.73" password="" servername="VIP迅投绍兴电信" platform="1" port="55310" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="115.231.218.79" password="" servername="VIP迅投绍兴电信" platform="1" port="55310" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.11" password="" servername="VIP迅投东莞电信" platform="1" port="55310" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.27" password="" servername="VIP迅投东莞电信" platform="1" port="55310" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.121" password="" servername="迅投东莞主站" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.122" password="" servername="迅投东莞主站" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="43.242.96.162" password="" servername="迅投上海主站" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="43.242.96.164" password="" servername="迅投上海主站" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="36.99.48.20" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="36.99.48.21" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="42.228.16.210" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="42.228.16.211" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="0" markets="" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="115.231.218.73" password="" servername="VIP迅投绍兴电信" platform="1" port="55310" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="115.231.218.79" password="" servername="VIP迅投绍兴电信" platform="1" port="55310" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.11" password="" servername="VIP迅投东莞电信" platform="1" port="55310" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.27" password="" servername="VIP迅投东莞电信" platform="1" port="55310" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.121" password="" servername="迅投东莞主站" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="218.16.123.122" password="" servername="迅投东莞主站" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="43.242.96.162" password="" servername="迅投浦东主站" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="43.242.96.164" password="" servername="迅投浦东主站" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="36.99.48.20" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="36.99.48.21" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="42.228.16.210" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
<QuoterServer username="" address="42.228.16.211" password="" servername="VIP迅投郑州电信" platform="1" port="55300" type="2" quotertype="1" markets="SZO|ZF|DF|INE|IF|SZ|SH|HK|SF|GF|SHO" tradeusersynchro="0"/>
|
||||
</QuoterServers>
|
||||
</TTQuoterConfigFile>
|
||||
|
@ -25,7 +25,7 @@ g_stocktype_info = {
|
||||
XT_GE_SH_B = "90****,SH,102",--沪市B股
|
||||
XT_GE_SH_FUND = "50****,SH,103",--沪市封基
|
||||
XT_GE_SH_INDEX = "000***,SH,104", --沪市指数
|
||||
XT_GE_SH_ETF = "510***|511***|512***|513***|515***|516***|517***|518***|560***|561***|562***|563***|588***,SH,105", --沪市ETF
|
||||
XT_GE_SH_ETF = "510***|511***|512***|513***|515***|516***|517***|518***|520***|530***|560***|561***|562***|563***|588***,SH,105", --沪市ETF
|
||||
XT_GE_SH_WARRANT = "000000,SH,106", --沪市权证
|
||||
XT_GE_SH_SUBSCRIBE = "73****|78****|712***|715***|795***,SH,107", --沪市申购
|
||||
XT_GE_SH_EXCHANGEABLE_LOAN = "132***|1370**|1371**|1372**|1373**|1374**,SH,108", --沪市可交换公司债券
|
||||
@ -35,7 +35,7 @@ g_stocktype_info = {
|
||||
XT_GE_SH_SHORTTERM_CORPORATE_LOAN_TRANSFER = "1350**|1351**|1352**|1353**|1354**|1175**|1176**|1177**|1178**|1179**,SH,112", --沪市证券公司短期债券挂牌转让
|
||||
XT_GE_SH_ABS = "128***,SH,113", --信贷资产支持证券
|
||||
XT_GE_SH_CORPORATE_LOAN_PLEDGE = "102***|134***|154***|164***,SH,114", --沪市公司债券质押券入库
|
||||
XT_GE_SH_CORPORATE_BOND = "1230**|1231**|1232**|1233**|1234**|136***|143***|1220**|1221**|1222**|1223**|1224**|155***|163***|175***|185***|188***|1375**|1376**|1377**|1378**|1379**|1385**|1386**|1387**|1388**|1389**|115***|240***|241***,SH,115", --沪市公司债
|
||||
XT_GE_SH_CORPORATE_BOND = "1230**|1231**|1232**|1233**|1234**|136***|143***|1220**|1221**|1222**|1223**|1224**|155***|163***|175***|185***|188***|1375**|1376**|1377**|1378**|1379**|1385**|1386**|1387**|1388**|1389**|115***|240***|241***|242***|243***|244***,SH,115", --沪市公司债
|
||||
XT_GE_SH_PUBLIC_PREFERED_SHARES = "330***,SH,116", --沪市公开发行优先股交易
|
||||
XT_GE_SH_NON_PUBLIC_PREFERED_SHARES_TRANSFER = "360***,SH,117",--沪市非公开发行优先股转让
|
||||
XT_GE_SH_PUBLIC_PREFERED_SHARES_SUBSCRIBE = "770***,SH,118", --沪市公开发行优先股申购
|
||||
@ -54,10 +54,10 @@ g_stocktype_info = {
|
||||
XT_GE_SH_SEPERATION_BOND = "126***,SH,131", --沪市分离债
|
||||
XT_GE_SH_ASSET_SECURITIZATION = "121***,SH,132", --沪市资产证券化
|
||||
XT_GE_SH_CREDIT_ASSET_SUPPORTED = "128***,SH,133", --信贷资产支持证券
|
||||
XT_GE_SH_ENTERPRISE_BOND = "120***|124***|1270**|1271**|1272**|1273**|1274**|1275**|1276**|1277**|1278**|129***|139***|1225**|1226**|1227**|1228**|1229**|152***|1840**|1841**|1842**|1843**|1844**|1845**|1846**|1847**|270***|271***|272***,SH,134", --沪市企业债(席位托管方式)
|
||||
XT_GE_SH_ENTERPRISE_BOND = "120***|124***|127***|129***|139***|1225**|1226**|1227**|1228**|1229**|152***|184***|270***|271***|272***,SH,134", --沪市企业债(席位托管方式)
|
||||
XT_GE_SH_CONVERTIBALE_BOND = "1000**|1001**|1002**|1003**|1004**|1005**|1006**|1007**|1008**|110***|112***|113***|1110**|1111**|1112**|1113**|1114**|1180**|1181**|1182**|1183**|1184**,SH,135", --沪市可转债
|
||||
XT_GE_SH_LOCAL_GOVERNMENT_LOAN = "130***|140***|147***|157***|160***|173***|171***|186***|101***|109***|198***|230***|231***,SH,136", --沪市地方债
|
||||
XT_GE_SH_GOVERNMENT_LOAN = "010***|019***|020***|130***|160***|171***|009***|140***|147***|157***|173***|186***|101***|109***|198***|230***|231***,SH,137", --沪市政府债(国债+地方债)
|
||||
XT_GE_SH_LOCAL_GOVERNMENT_LOAN = "130***|140***|147***|157***|160***|173***|171***|186***|101***|109***|198***|230***|231***|232***|233***,SH,136", --沪市地方债
|
||||
XT_GE_SH_GOVERNMENT_LOAN = "010***|019***|020***|130***|160***|171***|009***|140***|147***|157***|173***|186***|101***|109***|198***|230***|231***|232***|233***,SH,137", --沪市政府债(国债+地方债)
|
||||
XT_GE_SH_CPB = "1370**|1371**|1372**|1373**|1374**,SH,138",--上海可交换私募债
|
||||
XT_GE_SH_STANDARD_BOND = "888880|SHRQ88,SH,139", --沪市标准券
|
||||
XT_GE_SH_CLOSED_ENDED_FUNDS = "500***|5058**,SH,140", --沪市封闭式基金
|
||||
@ -72,11 +72,11 @@ g_stocktype_info = {
|
||||
XT_GE_SH_SEPERATION_BOND_REPURCHASE = "1050**|1051**|1052**|1053**|1054**|1055**|1056**|1057*|1058**,SH,149", --分离债质押式回购标准券入库
|
||||
XT_GE_SH_BOND_OFFER_REPURCHASE = "205***,SH,150", --债券质押式报价回购
|
||||
XT_GE_SH_MS_PRIVATE_PLACEMENT_BOND = "125***|145***|150***|151***,SH,151", --中小企业私募债券在固定收益平台转让
|
||||
XT_GE_SH_CROSS_BORDER_ETF = "513**0|5109*0,SH,152", --跨境ETF
|
||||
XT_GE_SH_CROSS_BORDER_ETF = "513**0|510900|5205**|5206**|5207**|5208**|5209**,SH,152", --跨境ETF
|
||||
XT_GE_SH_CROSS_BORDER_LOF = "501018|501021|501023|501025|50130*|501310|501311|501313,SH,153", --跨境LOF
|
||||
XT_GE_SH_INNOVATION_CLOSED_ENDED_FUNDS = "5058**,SH,154", --上海创新型封闭式基金
|
||||
XT_GE_SF_FIXED_INCOME_ETF = "511***,SH,155",--上海的固定收益类
|
||||
XT_GE_SH_GOLD = "518**0,SH,156",--上海黄金
|
||||
XT_GE_SH_GOLD = "518**0,SH,156",--上海黄金ETF
|
||||
XT_GE_SH_RTMF = "5198**,SH,157",--上海实时申赎货币基金
|
||||
XT_GE_SH_TMF = "5116**|5117**|5118**|5119**,SH,158",--上海交易型货币基金
|
||||
XT_GE_SH_STOCK_IPO = "730***|732***|780***|712***|795***|787***|707***,SH,159",--上海股票申购代码
|
||||
@ -106,7 +106,7 @@ g_stocktype_info = {
|
||||
XT_GE_SH_LOAN_REPURCHASE_DAY_28 = "204028,SH,183", --沪市28天回购
|
||||
XT_GE_SH_LOAN_REPURCHASE_DAY_28_UPPER = "204091|204182,SH,184", --沪市28天以上回购
|
||||
XT_GE_SH_GSF = "502**1|502**2|502**4|502**5|502**7|502008|502018|502028|502038|502058|502049|502050,SH,185", --上海分级基金子基金
|
||||
XT_GE_SH_ASS = "121***|1235**|1236**|1237**|1238**|1239**|128***|131***|142***|146***|149***|156***|159***|165***|168***|169***|179***|180***|183***|189***|1931**|1932**|1933**|1934**|1935**|1936**|1937**|1938**|1939**|112***|199***|260***|261***,SH,186",--上海资产支持证券
|
||||
XT_GE_SH_ASS = "121***|1235**|1236**|1237**|1238**|1239**|128***|131***|142***|146***|149***|156***|159***|165***|168***|169***|179***|180***|183***|189***|1931**|1932**|1933**|1934**|1935**|1936**|1937**|1938**|1939**|112***|199***|260***|261***|262***|263***|264***|265***|266***,SH,186",--上海资产支持证券
|
||||
XT_GE_SH_LOAN_CBB_SCB_NEW = "733***|783***|754***|7590**|713***|718***,SH,187",--上海可转债可交换债新债申购代码
|
||||
--XT_GE_SH_EXCHANGEABLE_BOND = "759***,SH,188",--上海可交换债券
|
||||
XT_GE_SH_OPEN_END_FUND = "5190**|5191**|5192**|5193**|5194**|5195**|5196**|5197**|5199**,SH,189",--上海开放式基金申赎代码
|
||||
@ -179,11 +179,11 @@ g_stocktype_info = {
|
||||
XT_GE_SH_SUBSCRIPTION_ETF_CROSS_BORDER = "5109*3|513**3,SH,256", --上海跨境ETF认购
|
||||
XT_GE_SH_SUBSCRIPTION_REPAYMENT_ETF_CROSS_BORDER = "5109*4|513**4,SH,257", --上海跨境ETF认购扣款还款
|
||||
XT_GE_SH_NON_FUND_ETF_CROSS_BORDER = "5109*5|513**5,SH,258", --上海跨境ETF非沪市资金
|
||||
XT_GE_SH_TRANSACTION_ETF_LOAN = "5110*0|5112*0,SH,259", --上海债券ETF交易
|
||||
XT_GE_SH_TRANSACTION_ETF_LOAN = "5110*0|5111*0|5112*0,SH,259", --上海实物债券ETF
|
||||
XT_GE_SH_SUBSCRIPTION_ETF_LOAN = "5110*3|5112*3,SH,260", --上海债券ETF认购
|
||||
XT_GE_SH_SUBSCRIPTION_REPAYMENT_ETF_LOAN = "5110*4|5112*4,SH,261", --上海债券ETF认购扣款还款
|
||||
XT_GE_SH_NON_FUND_ETF_LOAN = "5110*5|5112*5,SH,262", --上海债券ETF非沪市资金
|
||||
XT_GE_SH_TRANSACTION_ETF_CR_LOAN = "5113*0|5114*0|5115*0,SH,263", --上海现金申赎债券ETF交易
|
||||
XT_GE_SH_TRANSACTION_ETF_CR_LOAN = "5113*0|5114*0|5115*0,SH,263", --上海现金债券ETF
|
||||
XT_GE_SH_FUND_ETF_CR_LOAN = "5113*2|5114*2|5115*2,SH,264", --上海现金申赎债券ETF沪市资金
|
||||
XT_GE_SH_SUBSCRIPTION_ETF_CR_LOAN = "5113*3|5114*3|5115*3,SH,265", --上海现金申赎债券ETF认购
|
||||
XT_GE_SH_SUBSCRIPTION_REPAYMENT_ETF_CR_LOAN = "5113*4|5114*4|5115*4,SH,266", --上海现金申赎债券ETF认购扣款还款
|
||||
@ -218,15 +218,15 @@ g_stocktype_info = {
|
||||
XT_GE_SH_QUOTATION_REPURCHASE_DAY_245 = "205245,SH,295", --沪市245天报价回购
|
||||
XT_GE_SH_QUOTATION_REPURCHASE_DAY_301 = "205301,SH,296", --沪市301天报价回购
|
||||
XT_GE_SH_QUOTATION_REPURCHASE_DAY_357 = "205357,SH,297", --沪市357天报价回购
|
||||
XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN = "125***|135***|145***|150***|151***|162***|166***|167***|177***|178***|194***|196***|197***|1823**|1824**|1825**|1826**|1827**|1828**|1829**|114***|250***|251***|252***|253***|254***,SH,298", --上海非公开发行公司债券
|
||||
XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN = "125***|135***|145***|150***|151***|162***|166***|167***|177***|178***|194***|196***|197***|1823**|1824**|1825**|1826**|1827**|1828**|1829**|114***|250***|251***|252***|253***|254***|255***|256***|257***,SH,298", --上海非公开发行公司债券
|
||||
XT_GE_SH_ENTERPROSE_SUPPORT_AUCTION_BOND = "142***|131***,SH,299",--企业支持债券(竞价系统可交易)
|
||||
XT_GE_SH_ABS_TRANSFER = "149***,SH,300", --沪市资产支持证券挂牌转让
|
||||
XT_GE_SH_TMFR = "5116*1|5117*1|5118*1|5119*1|5195*1|5199*1,SH,301",--上海交易型货币及其它货币基金申赎
|
||||
XT_GE_SH_PUBLIC_INFRASTRUCTURE_FUND = "5080**,SH,302",--上海公募基础设施基金
|
||||
XT_GE_SH_DIRECTIONAL_CONVERTIBALE_BOND = "1108**|1109**,SH,303", --沪市定向可转债
|
||||
XT_GE_SH_DIRECTIONAL_CONVERTIBALE_BOND = "1108**|1109**|1185**|1186**,SH,303", --沪市定向可转债
|
||||
XT_GE_SH_50_ETF = "510050,SH,350",
|
||||
XT_GE_SH_300_ETF = "510300,SH,351",
|
||||
XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN = "115***|136***|143***|163***|175***|185***|188***|240***|241***,SH,352", --上海公开发行公司债现券交易
|
||||
XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN = "115***|136***|143***|163***|175***|185***|188***|240***|241***|242***|243***|244***,SH,352", --上海公开发行公司债现券交易
|
||||
XT_GE_SH_TECH_BOARD_ETF = "5880*1|5881*1|5882*1|5883*1|5884*1,SH,353", -- 上海科创板etf申赎
|
||||
XT_GE_SH_NON_PUBLIC_CONVERTIBLE_CORPORATE_LOAN = "1108**|1109**,SH,354", -- 上海非公开发行可转换公司债券
|
||||
XT_GE_SH_TECH_BOARD_CONVERTIBLE_BOND = "1180**|1181**|1182**|1183**|1184**,SH,355", -- 上海科创板可转债
|
||||
@ -238,12 +238,13 @@ g_stocktype_info = {
|
||||
XT_GE_SH_GOVERNMENT_BANK_FINANCE_LOAN_DISTRIBUTE_SALE = "7512**|7513**,SH,361", --政策性银行金融债券分销
|
||||
XT_GE_SH_LOCAL_GOVERNMENT_LOAN_ONLINE_DISTRIBUTE_SALE = "75190*|75191*|75192*|75193*|75194*|75195*|75196*,SH,362", --地方政府债券网上分销
|
||||
XT_GE_SH_PLACING = "703***,SH,363", -- 上海配售
|
||||
XT_GE_SH_TECH_BOARD_ETF_ETFCODE = "5880*0|5881*0|5882*0|5883*0|5884*0,SH,364", -- 上海科创板etf
|
||||
XT_GE_SH_TECH_BOARD_ETF_ETFCODE = "588***,SH,364", -- 上海科创板etf
|
||||
XT_GE_SH_MAIN_BOARD = "60****,SH,365", -- 沪市主板
|
||||
XT_GE_SH_500_ETF = "510500,SH,366", -- 上海500etf
|
||||
XT_GE_SH_TECH_BOARD_50_ETF = "588080,SH,367", --科创板50ETF
|
||||
XT_GE_SH_TECH_50_ETF = "588000,SH,368", --科创50ETF
|
||||
XT_GE_SH_GOV_ALLOW = "1279**|1848**|1849**,SH,369",--上海政府支持债券
|
||||
XT_GE_SH_TECH_DIRECTIONAL_CONVERTIBALE_BOND = "1185**|1186**,SH,370", --沪市科创板定向可转债
|
||||
|
||||
XT_GE_SZ_A = "00****|30****,SZ,10001",--深市A股
|
||||
XT_GE_SZ_B = "20****,SZ,10002",--深市B股
|
||||
@ -257,13 +258,13 @@ g_stocktype_info = {
|
||||
XT_GE_SZ_GLR = "131990,SZ,10010",--深市国债回购(131990不是的,需要业务支持)
|
||||
XT_GE_SZ_GLIB = "100***|101***|102***|103***|104***|105***|106***|107***,SZ,10011",--深市附息国债
|
||||
XT_GE_SZ_GLD = "108***|110***,SZ,10012",--深市贴现国债
|
||||
XT_GE_SZ_CB = "112***,SZ,10013",--深市公司债
|
||||
XT_GE_SZ_CB = "112***|524***|525***|526***|527***|528***|529***,SZ,10013",--深市公司债
|
||||
XT_GE_SZ_EB = "111***,SZ,10014",--深市企业债
|
||||
XT_GE_SZ_SB = "115***,SZ,10015",--深市分离债
|
||||
XT_GE_SZ_MSP_PB = "118***|114***|133***|134***,SZ,10016",--深市私募债
|
||||
XT_GE_SZ_MSP_PB = "118***|114***|133***|134***|520***|521***|522***|523***,SZ,10016",--深市非公开发行公司债券
|
||||
XT_GE_SZ_SFMP = "119***,SZ,10017",--深市专项资金管理规划
|
||||
XT_GE_SZ_LGL = "109***|104***|105***|19****|173***,SZ,10018",--深市地方政府债
|
||||
XT_GE_SZ_CBB = "121***|122***|123***|124***|125***|126***|127***|128***|129***|10165*|10166*|10167*|10168*|10169*,SZ,10019",--深市可转债
|
||||
XT_GE_SZ_LGL = "109***|104***|105***|106***|107***|19****|173***|56****|57****|58****|59****,SZ,10018",--深市地方政府债
|
||||
XT_GE_SZ_CBB = "1210**|1211**|1212**|1213**|1214**|122***|123***|124***|125***|126***|127***|128***|129***,SZ,10019",--深市可转债
|
||||
XT_GE_SZ_STANDAR_B = "131990|131991|SZRQ88,SZ,10020",--深市标准券
|
||||
XT_GE_SZ_CEF = "184***,SZ,10021",--深市封闭式基金
|
||||
XT_GE_SZ_LOF = "16****,SZ,10022",--深市LOF
|
||||
@ -271,21 +272,21 @@ g_stocktype_info = {
|
||||
XT_GE_SZ_SCB_PB = "117***|1156**|1157**|1158**|1159**,SZ,10024",--深市 中小企业可交换私募债
|
||||
XT_GE_SZ_SC_SB = "1189**|1151**|1152**|1153**|1154**|1155**,SZ,10025",--深市证券公司次级债
|
||||
XT_GE_SZ_SPB = "1180**|1181**|1182**|1183**|1184**|1185**|1186**|1187**|1188**,SZ,10026",--深市其他中小企业私募债
|
||||
XT_GE_SZ_ASS = "1161**|1162**|1163**|1164**|1191**|1192**|1193**|1194**|138***|139***|135***|136***|137***|143***|144***|146***,SZ,10027",--深市企业资产支持证券
|
||||
XT_GE_SZ_ASS = "116***|1191**|1192**|1193**|1194**|138***|139***|135***|136***|137***|143***|144***|146***|50****|51****,SZ,10027",--深市企业资产支持证券
|
||||
XT_GE_SZ_GSF = "150***|151***,SZ,10028",--深市分级基金子基金
|
||||
XT_GE_SZ_CB_ETF = "159920|159941|159954|159960|159963|159605|159607|159612|159615|159632|159636|159655|159711|159712|159718|159726|159735|159740|159741|159742|159747|159750|159751|159776|159788|159792|159822|159823|159850|159866|159892|159519|159696|159699|159509|159513|159506|159501|159659,SZ,10029",--深市跨境ETF
|
||||
XT_GE_SZ_CB_LOF = "160125|160416|160717|160719|161116|161210|161714|161815|162411|164701|164705|164815|164824|165510|165513|164906|163208|162719|162416|162415|161831|161229|161130|161129|161128|161127|161126|161125|161124|160924|160923|160922|160723|160644|160322|160216|160140|160138|159691|159660|159688|159687,SZ,10030",--深市跨境LOF
|
||||
XT_GE_SZ_CB_ETF = "159920|159941|159954|159960|159605|159607|159612|159615|159632|159636|159655|159711|159712|159718|159726|159735|159740|159741|159742|159747|159750|159751|159776|159788|159792|159822|159823|159850|159866|159892|159519|159696|159699|159509|159513|159506|159501|159659|159568|159577|159529|159570|159567|159502|159518|159691|159660|159688|159687|159318|159303|159329|159331|159569|159302|159333|159312,SZ,10029",--深市跨境ETF
|
||||
XT_GE_SZ_CB_LOF = "160125|160416|160717|160719|161116|161210|161714|161815|162411|164701|164705|164815|164824|165510|165513|164906|163208|162719|162416|162415|161831|161229|161130|161129|161128|161127|161126|161125|161124|160924|160923|160922|160723|160644|160322|160216|160140|160138,SZ,10030",--深市跨境LOF
|
||||
XT_GE_SZ_ICEF = "150***,SZ,10031",--深市创新型封闭式基金
|
||||
XT_GE_SZ_ZB_CCB = "127***,SZ,10032",--深市主板可转换公司债券
|
||||
XT_GE_SZ_CYB_CCB = "123***,SZ,10033",--深市创业板可转换公司债券
|
||||
XT_GE_SZ_ZXB_CCB = "128***,SZ,10034",--深市中小板可转换公司债券
|
||||
XT_GE_SZ_GLRA = "131***,SZ,10035",--深市国债回购(131900不是的,需要业务支持)
|
||||
XT_GE_SZ_GOLD = "159934|159937|159812|159830|159831|159832|159833|159834,SZ,10036",--深市黄金
|
||||
XT_GE_SZ_GOLD = "159934|159937|159812|159830|159831|159834,SZ,10036",--深市黄金ETF
|
||||
XT_GE_SZ_RTMF = "1590**,SZ,10037",--深市实时申赎货币基金
|
||||
XT_GE_SZ_XGED = "SZXGED,SZ,10038",--深新股额
|
||||
XT_GE_SZ_SEO = "07****|37****,SZ,10039",--深增发股
|
||||
XT_GE_SZ_SA = "08****|380***,SZ,10040",--深圳配股
|
||||
XT_GE_SZ_LOAN_ETF = "159926|159972|159988|159816|159649|159650|159651,SZ,10041",--深圳债券ETF
|
||||
XT_GE_SZ_LOAN_ETF = "159972|159816|159649|159650|159651,SZ,10041",--深圳债券ETF
|
||||
XT_GE_SZ_LOAN_REPURCHASE_DAY_1 = "131810,SZ,10042", --深市1天回购
|
||||
XT_GE_SZ_LOAN_REPURCHASE_DAY_2 = "131811,SZ,10043", --深市2天回购
|
||||
XT_GE_SZ_LOAN_REPURCHASE_DAY_3 = "131800,SZ,10044", --深市3天回购
|
||||
@ -322,15 +323,22 @@ g_stocktype_info = {
|
||||
XT_GE_SZ_PUBLIC_INFRASTRUCTURE_FUND = "180***,SZ,10076",--深市公募基础设施基金
|
||||
XT_GE_SZ_DIRECTIONAL_CONVERTIBALE_BOND = "124***,SZ,10077", --深市定向可转债
|
||||
XT_GE_SZ_EXCHANGEABLE_LOAN = "120***|117***|1156**|1157**|1158**|1159**,SZ,10078",--深圳可交换公司债
|
||||
XT_GE_SZ_ETF_CROSS_MARKET = "159602|159603|159606|159608|159609|159610|159611|159613|159616|159617|159618|159619|159620|159621|159623|159625|159628|159629|159630|159631|159633|159635|159637|159638|159639|159640|159641|159642|159643|159645|159646|159647|159658|159663|159667|159701|159702|159703|159707|159710|159713|159715|159717|159719|159720|159723|159725|159728|159729|159730|159731|159732|159733|159736|159738|159739|159743|159745|159748|159752|159755|159757|159758|159760|159761|159763|159766|159767|159768|159769|159770|159775|159778|159779|159780|159781|159782|159786|159787|159789|159791|159793|159795|159796|159797|159798|159813|159815|159819|159820|159824|159825|159827|159828|159835|159837|159838|159839|159840|159841|159842|159843|159845|159847|159848|159849|159851|159852|159853|159855|159856|159857|159858|159859|159861|159862|159863|159864|159865|159867|159870|159871|159872|159873|159875|159876|159877|159880|159881|159883|159885|159886|159887|159888|159889|159890|159891|159895|159896|159898|159899|159999|159980|159981|159985|159649|159650|159801|159805|159806|159807|159811|159919|159922|159923|159925|159928|159929|159930|159931|159933|159935|159936|159938|159939|159940|159944|159945|159951|159953|159959|159962|159965|159968|159973|159974|159982|159986|159987|159990|159992|159993|159994|159995|159996|159997|159998|159809|159983|159978|159979|159976|159984|159869|159790|159783|159601|159672|159676|159685|159653|159657|159689|159671|159678|159679|159666|159652|159656|159669|159683|159665|159677|159675|159662|159627|159680|159907|159515|159517|159698|159510|159511|159516|159512|159503|159686|159673|159508|159690|159507|159692|159695|159622|159670|159697,SZ,10079",--深圳跨市etf
|
||||
XT_GE_SZ_ETF_CROSS_MARKET = "159602|159603|159606|159608|159609|159610|159611|159613|159616|159617|159618|159619|159620|159621|159623|159625|159628|159629|159630|159631|159633|159635|159637|159638|159639|159640|159641|159642|159643|159645|159646|159647|159658|159663|159667|159701|159703|159707|159713|159715|159717|159719|159720|159723|159725|159728|159729|159730|159731|159732|159736|159738|159739|159743|159745|159748|159752|159755|159757|159758|159760|159761|159763|159766|159767|159768|159769|159770|159775|159778|159779|159780|159781|159782|159786|159787|159791|159793|159795|159796|159797|159798|159813|159819|159820|159824|159825|159827|159828|159835|159837|159838|159839|159840|159841|159842|159843|159845|159847|159848|159849|159851|159852|159855|159856|159857|159858|159859|159861|159862|159863|159864|159865|159867|159870|159871|159872|159873|159875|159876|159877|159880|159881|159883|159885|159886|159887|159888|159889|159890|159891|159895|159896|159898|159899|159801|159805|159806|159807|159811|159919|159922|159923|159925|159928|159929|159930|159931|159933|159935|159936|159938|159939|159940|159944|159945|159959|159965|159968|159973|159974|159982|159987|159990|159992|159993|159994|159995|159996|159997|159998|159976|159869|159790|159783|159601|159672|159676|159685|159653|159657|159689|159671|159678|159679|159666|159652|159656|159669|159683|159665|159677|159675|159662|159627|159680|159907|159515|159517|159698|159510|159511|159516|159512|159503|159686|159673|159508|159690|159507|159692|159695|159622|159670|159697|159505|159520|159521|159522|159523|159531|159532|159535|159536|159537|159538|159539|159540|159543|159546|159549|159551|159555|159560|159661|159693|159565|159566|159547|159527|159562|159530|159556|159559|159593|159589|159591|159592|159595|159596|159581|159586|159300|159542|159533|159322|159315|159558|159309|159552|159583|159800|159301|159332|159327|159330|159587|159335|159326|159351|159339|159338|159352|159353|159305|159337|159590|159325|159328|159361,SZ,10079",--深圳跨市etf
|
||||
XT_GE_SZ_100_ETF = "159901,SZ,10080",--深证100ETF股票期权
|
||||
XT_GE_SZ_500_ETF = "159922,SZ,10081",--深圳500ETF
|
||||
XT_GE_SZ_CYB_ETF = "159915,SZ,10082",--创业板ETF
|
||||
XT_GE_SZ_BEARER_LOAN_ETF = "159972|159816,SZ,10083",--深市实物债券ETF
|
||||
XT_GE_SZ_CR_LOAN_ETF = "159651|159649|159650,SZ,10084",--深市现金债券ETF
|
||||
XT_GE_SZ_COMMODITY_FUTURES_ETF = "159980|159981|159985,SZ,10085",--深市商品期货ETF
|
||||
|
||||
XT_GE_MARKET_NEW3BOARD_DELISTED = "400***|420***,NEEQ,20000", --两网及退市公司股票 新三板
|
||||
XT_GE_NEW3BOARD_PREFERED_SHARES_TRANSFER = "820***,NEEQ,20001", --全国股转非公开优先股转让
|
||||
XT_GE_BJ = "43****|83****|87****,BJ,20002",--北交
|
||||
XT_GE_BJ_SUBSCRIBE = "889***,BJ,20003",--北交所申购
|
||||
XT_GE_BJ = "43****|83****|87****|920***,BJ,20002",--北交
|
||||
XT_GE_BJ_SUBSCRIBE = "889***|920***,BJ,20003",--北交所申购
|
||||
XT_GE_BJ_CENTRAL_GOVERNMENT_LOAN = "802***|812***,BJ,20004",--京市国债
|
||||
XT_GE_BJ_LOCAL_GOVERNMENT_LOAN = "801***|809***,BJ,20005",--京市地方债
|
||||
XT_GE_BJ_GOVERNMENT_LOAN = "802***|812***|801***|809***,BJ,20006",--京市政府债(国债+地方债)
|
||||
XT_GE_BJ_CORPORATE_LOAN = "821***,BJ,20007",--京市公司债
|
||||
},
|
||||
--存放扩展类型,能用基础类型描述的,尽量用基础类型,基础类型执行效率高于扩展类型
|
||||
--扩展类型可以是基础类型,也可以由基础类型通过简单的&(且)|(或)运算得出,允许用小括号调整运算优先级
|
||||
@ -347,12 +355,12 @@ g_stocktype_info = {
|
||||
XT_GE_EXTRA_MARKET_ST = "XT_GE_MARKET_SH|XT_GE_MARKET_SZ,100008",--股票
|
||||
XT_GE_EXTRA_SZ_CGL = "XT_GE_SZ_GLIB|XT_GE_SZ_GLD,100009",--深市中央政府债(国债)
|
||||
XT_GE_EXTRA_SZ_GL = "XT_GE_EXTRA_SZ_CGL|XT_GE_SZ_LGL,100010",--深市政府债
|
||||
XT_GE_EXTRA_SZ_LOAN = "XT_GE_SZ_GLIB|XT_GE_SZ_GLD|XT_GE_SZ_CB|XT_GE_SZ_CBB|XT_GE_SZ_EB|XT_GE_SZ_SB|XT_GE_SZ_MSP_PB|XT_GE_SZ_SFMP|XT_GE_SZ_LGL|XT_GE_SZ_POB|XT_GE_SZ_SCB_PB|XT_GE_SZ_ZB_CCB|XT_GE_SZ_CYB_CCB|XT_GE_SZ_ZXB_CCB|XT_GE_SZ_LOAN_REITS|XT_GE_SZ_LOAN_DIRECTIONAL|XT_GE_SZ_EXCHANGEABLE_LOAN|XT_GE_SZ_ENTERPROSE_SUPPORT_BOND|XT_GE_SZ_GOV_ALLOW,100011",--深市所有债券
|
||||
XT_GE_EXTRA_SZ_LOAN = "XT_GE_SZ_GLIB|XT_GE_SZ_GLD|XT_GE_SZ_CB|XT_GE_SZ_CBB|XT_GE_SZ_EB|XT_GE_SZ_SB|XT_GE_SZ_MSP_PB|XT_GE_SZ_SFMP|XT_GE_SZ_LGL|XT_GE_SZ_POB|XT_GE_SZ_SCB_PB|XT_GE_SZ_ZB_CCB|XT_GE_SZ_CYB_CCB|XT_GE_SZ_ZXB_CCB|XT_GE_SZ_LOAN_REITS|XT_GE_SZ_LOAN_DIRECTIONAL|XT_GE_SZ_EXCHANGEABLE_LOAN|XT_GE_SZ_ENTERPROSE_SUPPORT_BOND|XT_GE_SZ_GOV_ALLOW|XT_GE_SZ_LOAN_IPO|XT_GE_SZ_ASS,100011",--深市所有债券
|
||||
XT_GE_EXTRA_STOCK_EX = "!XT_GE_EXTRA_STOCK_INDEX,100012",--广义的股票
|
||||
XT_GE_EXTRA_ETF = "XT_GE_SH_ETF|XT_GE_SZ_ETF,100013",--ETF
|
||||
XT_GE_EXTRA_CLOSED_ENDED_FUNDS = "XT_GE_SH_CLOSED_ENDED_FUNDS|XT_GE_SZ_CEF,100014",--封闭式基金
|
||||
XT_GE_EXTRA_WARRANT = "XT_GE_SH_WARRANT|XT_GE_SZ_WARRANT,100015",--权证
|
||||
XT_GE_EXTRA_LOAN = "XT_GE_EXTRA_SH_LOAN|XT_GE_EXTRA_SZ_LOAN,100016",--债券
|
||||
XT_GE_EXTRA_LOAN = "XT_GE_EXTRA_SH_LOAN|XT_GE_EXTRA_SZ_LOAN|XT_GE_EXTRA_BJ_LOAN,100016",--债券
|
||||
XT_GE_EXTRA_SZ_GLR = "XT_GE_SZ_GLRA&(!XT_GE_SZ_GLR),100017",--深市国债回购
|
||||
XT_GE_EXTRA_STANDARD_BOND = "XT_GE_SH_STANDARD_BOND|XT_GE_SZ_STANDAR_B,100018",--标准券
|
||||
XT_GE_EXTRA_POLICY_JRZ = "XT_GE_SH_POLICY_JRZ,100019",
|
||||
@ -364,7 +372,7 @@ g_stocktype_info = {
|
||||
XT_GE_EXTRA_SH_IPO = "XT_GE_SH_STOCK_IPO|XT_GE_SH_LOAN_IPO|XT_GE_SH_FUND_IPO,100025",--上海申购代码
|
||||
XT_GE_EXTRA_CB_ETF = "XT_GE_SZ_CB_ETF|XT_GE_SH_CROSS_BORDER_ETF,100026",--跨境ETF
|
||||
XT_GE_EXTRA_CB_LOF = "XT_GE_SH_CROSS_BORDER_LOF|XT_GE_SZ_CB_LOF,100027",--跨境LOF
|
||||
XT_GE_EXTRA_STOCK_TRANABLE = "XT_GE_EXTRA_STOCK|XT_GE_EXTRA_FUND|XT_GE_EXTRA_ETF|XT_GE_EXTRA_WARRANT|XT_GE_SH_SUBSCRIBE|XT_GE_SZ_GEM_BORAD|XT_GE_EXTRA_GLR|XT_GE_EXTRA_LOAN|XT_GE_SF_FIXED_INCOME_ETF|XT_GE_EXTRA_GOLD|XT_GE_EXTRA_MONETARY_FUND|XT_GE_EXTRA_SZ_CGL|XT_GE_SH_CENTRAL_GOVERNMENT_LOAN|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SZ_LGL|XT_GE_EXTRA_SH_IPO|XT_GE_SH_PLEDGE|XT_GE_EXTRA_CB_ETF|XT_GE_EXTRA_CB_LOF|XT_GE_SH_SHARES_ALLOTMEN|XT_GE_SH_SHARES_CONVERTIBLE_BOND|XT_GE_SZ_CBB|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_SEO|XT_GE_SZ_SEO|XT_GE_SH_LOAN_CBB_SCB_NEW|XT_GE_SZ_LOAN_IPO|XT_GE_SZ_CDR_ALLOTMEN|XT_GE_SH_TECH_BOARD|XT_GE_SH_BOND_OFFER_REPURCHASE|XT_GE_SH_SUBSCRIPTION_TECH_BOARD|XT_GE_SH_TRANSACTION_ETF_CROSS_MARKET|XT_GE_BOND_DISTRIBUTION|XT_GE_SH_PUBLIC_PREFERED_SHARES|XT_GE_SH_NON_PUBLIC_PREFERED_SHARES_TRANSFER|XT_GE_SH_BOND_RESALE|XT_GE_SH_CONVERTIBALE_BOND_RESALE|XT_GE_SH_CONVERTIBLE_BOND_STOCK|XT_GE_SZ_NON_PUBLIC_PREFERED_SHARES_TRANSFER|XT_GE_SZ_SA|XT_GE_SZ_OLDSHARES_PREFERRED_CONVERTIBLE_BOND|XT_GE_SH_ENTERPROSE_SUPPORT_AUCTION_BOND|XT_GE_EXTRA_PUBLIC_INFRASTRUCTURE_FUND|XT_GE_BJ_SUBSCRIBE,100028",--可交易的
|
||||
XT_GE_EXTRA_STOCK_TRANABLE = "XT_GE_EXTRA_STOCK|XT_GE_EXTRA_FUND|XT_GE_EXTRA_ETF|XT_GE_EXTRA_WARRANT|XT_GE_SH_SUBSCRIBE|XT_GE_SZ_GEM_BORAD|XT_GE_EXTRA_GLR|XT_GE_EXTRA_LOAN|XT_GE_SF_FIXED_INCOME_ETF|XT_GE_EXTRA_GOLD|XT_GE_EXTRA_MONETARY_FUND|XT_GE_EXTRA_SZ_CGL|XT_GE_SH_CENTRAL_GOVERNMENT_LOAN|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SZ_LGL|XT_GE_EXTRA_SH_IPO|XT_GE_SH_PLEDGE|XT_GE_EXTRA_CB_ETF|XT_GE_EXTRA_CB_LOF|XT_GE_SH_SHARES_ALLOTMEN|XT_GE_SH_SHARES_CONVERTIBLE_BOND|XT_GE_SZ_CBB|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_SEO|XT_GE_SZ_SEO|XT_GE_SH_LOAN_CBB_SCB_NEW|XT_GE_SZ_LOAN_IPO|XT_GE_SZ_CDR_ALLOTMEN|XT_GE_SH_TECH_BOARD|XT_GE_SH_BOND_OFFER_REPURCHASE|XT_GE_SH_SUBSCRIPTION_TECH_BOARD|XT_GE_SH_TRANSACTION_ETF_CROSS_MARKET|XT_GE_BOND_DISTRIBUTION|XT_GE_SH_PUBLIC_PREFERED_SHARES|XT_GE_SH_NON_PUBLIC_PREFERED_SHARES_TRANSFER|XT_GE_SH_BOND_RESALE|XT_GE_SH_CONVERTIBALE_BOND_RESALE|XT_GE_SH_CONVERTIBLE_BOND_STOCK|XT_GE_SZ_NON_PUBLIC_PREFERED_SHARES_TRANSFER|XT_GE_SZ_SA|XT_GE_SZ_OLDSHARES_PREFERRED_CONVERTIBLE_BOND|XT_GE_SH_ENTERPROSE_SUPPORT_AUCTION_BOND|XT_GE_EXTRA_PUBLIC_INFRASTRUCTURE_FUND|XT_GE_BJ_SUBSCRIBE|XT_GE_BJ_GOVERNMENT_LOAN|XT_GE_BJ_CORPORATE_LOAN,100028",--可交易的
|
||||
XT_GE_EXTRA_MAIN_BOARD = "XT_GE_SH_MAIN_BOARD|XT_GE_SZ_MAIN_BOARD,100029", --主板
|
||||
XT_GE_EXTRA_INTRA_DAY = "XT_GE_EXTRA_LOAN|XT_GE_EXTRA_GOLD|XT_GE_SF_FIXED_INCOME_ETF|XT_GE_EXTRA_WARRANT|XT_GE_EXTRA_CB_ETF|XT_GE_EXTRA_CB_LOF|XT_GE_SH_TMF|XT_GE_SZ_RTMF|XT_GE_EXTRA_LOAN_ETF|XT_GE_EXTRA_MARKET_FU|XT_GE_MARKET_OP,100030", --回转交易
|
||||
XT_GE_EXTRA_SH_DISTRIBUTION = "XT_GE_SH_NEW_SHARES_DISTRIBUTION|XT_GE_SH_PLACING_FIRST_DISTRIBUTION|XT_GE_SH_CONVERTIBLE_BOUND_DISTRIBUTION,100031", --上海配号
|
||||
@ -375,7 +383,7 @@ g_stocktype_info = {
|
||||
XT_GE_EXTRA_GF = "XT_GE_SH_GF|XT_GE_SZ_GF,100036", --分级基金
|
||||
XT_GE_EXTRA_LOF = "XT_GE_SH_LOF|XT_GE_SZ_LOF,100037", --LOF
|
||||
XT_GE_EXTRA_LOAN_ETF = "XT_GE_SH_LOAN_ETF|XT_GE_SZ_LOAN_ETF,100038", --债券ETF
|
||||
XT_GE_EXTRA_SH_LOAN = "XT_GE_SH_GOVERNMENT_LOAN_INTEREST_BEARING|XT_GE_SH_GOVERNMENT_LOAN_DISCOUNT|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_CORPORATE_BOND|XT_GE_SH_ENTERPRISE_BOND|XT_GE_SH_ASSET_SECURITIZATION|XT_GE_SH_SEPERATION_BOND_REPURCHASE|XT_GE_SH_FINANCIAL_BONDS|XT_GE_SH_CREDIT_ASSET_SUPPORTED|XT_GE_SH_EXCHANGEABLE_LOAN|XT_GE_SH_PRIVATELY_LOAN_TRANSFER|XT_GE_SH_SHORTTERM_CORPORATE_LOAN_TRANSFER|XT_GE_SH_EPB_TRANSFER|XT_GE_SH_CPB|XT_GE_SH_CPB_LOAN|XT_GE_SH_GOVERNMENT_LOAN|XT_GE_SH_SEPERATION_BOND|XT_GE_SH_LOAN_CBB_SCB_NEW|XT_GE_SH_MS_PRIVATE_PLACEMENT_BOND|XT_GE_SH_ENTERPROSE_SUPPORT_BOND|XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN|XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN|XT_GE_SH_ASS|XT_GE_SH_GOV_ALLOW,100039", --上海债券
|
||||
XT_GE_EXTRA_SH_LOAN = "XT_GE_SH_GOVERNMENT_LOAN_INTEREST_BEARING|XT_GE_SH_GOVERNMENT_LOAN_DISCOUNT|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_CORPORATE_BOND|XT_GE_SH_ENTERPRISE_BOND|XT_GE_SH_ASSET_SECURITIZATION|XT_GE_SH_SEPERATION_BOND_REPURCHASE|XT_GE_SH_FINANCIAL_BONDS|XT_GE_SH_CREDIT_ASSET_SUPPORTED|XT_GE_SH_EXCHANGEABLE_LOAN|XT_GE_SH_PRIVATELY_LOAN_TRANSFER|XT_GE_SH_SHORTTERM_CORPORATE_LOAN_TRANSFER|XT_GE_SH_EPB_TRANSFER|XT_GE_SH_CPB|XT_GE_SH_CPB_LOAN|XT_GE_SH_GOVERNMENT_LOAN|XT_GE_SH_SEPERATION_BOND|XT_GE_SH_LOAN_CBB_SCB_NEW|XT_GE_SH_MS_PRIVATE_PLACEMENT_BOND|XT_GE_SH_ENTERPROSE_SUPPORT_BOND|XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN|XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN|XT_GE_SH_ASS|XT_GE_SH_GOV_ALLOW|XT_GE_SH_LOAN_IPO,100039", --上海债券
|
||||
XT_GE_EXTRA_REPURCHASE_DAY_1 = "XT_GE_SH_LOAN_REPURCHASE_DAY_1|XT_GE_SZ_LOAN_REPURCHASE_DAY_1,100040", --1天逆回购
|
||||
XT_GE_EXTRA_REPURCHASE_DAY_2 = "XT_GE_SH_LOAN_REPURCHASE_DAY_2|XT_GE_SZ_LOAN_REPURCHASE_DAY_2,100041", --2天逆回购
|
||||
XT_GE_EXTRA_REPURCHASE_DAY_3 = "XT_GE_SH_LOAN_REPURCHASE_DAY_3|XT_GE_SZ_LOAN_REPURCHASE_DAY_3,100042", --3天逆回购
|
||||
@ -385,8 +393,8 @@ g_stocktype_info = {
|
||||
XT_GE_EXTRA_REPURCHASE_DAY_28 = "XT_GE_SH_LOAN_REPURCHASE_DAY_28|XT_GE_SZ_LOAN_REPURCHASE_DAY_28,100046", --28天逆回购
|
||||
XT_GE_EXTRA_REPURCHASE_DAY_28_UPPER = "XT_GE_SH_LOAN_REPURCHASE_DAY_28_UPPER|XT_GE_SZ_LOAN_REPURCHASE_DAY_28_UPPER,100047", --28天以上逆回购
|
||||
XT_GE_EXTRA_NOT_CLOSING_AUCTION_MATCH = "XT_GE_EXTRA_SH_LOAN|XT_GE_SH_FUND|XT_GE_SH_ETF|XT_GE_SH_BOND_OFFER_REPURCHASE|XT_GE_SH_GOVERNMENT_LOAN_REPURCHASE|XT_GE_SH_PLEDGE,100070", --上交所不执行收盘集合竞价的品种
|
||||
XT_GE_EXTRA_RATE_BOND = "XT_GE_SH_GOVERNMENT_LOAN|XT_GE_EXTRA_SZ_GL|XT_GE_SH_POLICY_JRZ|XT_GE_BANK_LOAN,100080", --利率类债券
|
||||
XT_GE_EXTRA_FICC = "XT_GE_SH_CORPORATE_BOND|XT_GE_SH_OLD_GOVERNMENT_LOAN|XT_GE_SH_CENTRAL_GOVERNMENT_LOAN|XT_GE_SH_GOVERNMENT_LOAN_INTEREST_BEARING|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_ENTERPRISE_BOND|XT_GE_SH_MS_PRIVATE_PLACEMENT_BOND|XT_GE_SH_SEPERATION_BOND|XT_GE_SH_CREDIT_ASSET_SUPPORTED|XT_GE_SH_GOVERNMENT_LOAN|XT_GE_SH_ENTERPROSE_SUPPORT_BOND|XT_GE_SH_EXCHANGEABLE_LOAN|XT_GE_SH_PRIVATELY_LOAN_TRANSFER|XT_GE_SH_SHORTTERM_CORPORATE_LOAN_TRANSFER|XT_GE_SH_CPB_LOAN|XT_GE_SH_NON_PUBLIC_CONVERTIBLE_BOND_STOCK|XT_GE_SH_BOND_TRIPARTITE_REPURCHASE|XT_GE_SH_LOW_CORPORATE_BOND|XT_GE_SH_ASSET_BACKED_SECURITIES|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN|XT_GE_SH_ASS|XT_GE_SH_FINANCIAL_BONDS|XT_GE_SH_BOND_PROTOCOL_REPURCHASE|XT_GE_SH_BOND_TRIPARTITE_REPURCHASE|XT_GE_SZ_LOAN_REITS|XT_GE_SZ_LOAN_DIRECTIONAL|XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN|XT_GE_SH_PUBLIC_INFRASTRUCTURE_FUND|XT_GE_SH_GOV_ALLOW,100090", --固收
|
||||
XT_GE_EXTRA_RATE_BOND = "XT_GE_SH_GOVERNMENT_LOAN|XT_GE_EXTRA_SZ_GL|XT_GE_SH_POLICY_JRZ|XT_GE_BANK_LOAN|XT_GE_BJ_GOVERNMENT_LOAN ,100080", --利率类债券
|
||||
XT_GE_EXTRA_FICC = "XT_GE_SH_CORPORATE_BOND|XT_GE_SH_OLD_GOVERNMENT_LOAN|XT_GE_SH_CENTRAL_GOVERNMENT_LOAN|XT_GE_SH_GOVERNMENT_LOAN_INTEREST_BEARING|XT_GE_SH_CONVERTIBALE_BOND|XT_GE_SH_ENTERPRISE_BOND|XT_GE_SH_MS_PRIVATE_PLACEMENT_BOND|XT_GE_SH_SEPERATION_BOND|XT_GE_SH_CREDIT_ASSET_SUPPORTED|XT_GE_SH_GOVERNMENT_LOAN|XT_GE_SH_ENTERPROSE_SUPPORT_BOND|XT_GE_SH_EXCHANGEABLE_LOAN|XT_GE_SH_PRIVATELY_LOAN_TRANSFER|XT_GE_SH_SHORTTERM_CORPORATE_LOAN_TRANSFER|XT_GE_SH_CPB_LOAN|XT_GE_SH_NON_PUBLIC_CONVERTIBLE_BOND_STOCK|XT_GE_SH_BOND_TRIPARTITE_REPURCHASE|XT_GE_SH_LOW_CORPORATE_BOND|XT_GE_SH_LOCAL_GOVERNMENT_LOAN|XT_GE_SH_NON_PUBLIC_CORPORATE_LOAN|XT_GE_SH_ASS|XT_GE_SH_FINANCIAL_BONDS|XT_GE_SH_BOND_PROTOCOL_REPURCHASE|XT_GE_SH_BOND_TRIPARTITE_REPURCHASE|XT_GE_SZ_LOAN_REITS|XT_GE_SZ_LOAN_DIRECTIONAL|XT_GE_SH_PUBLIC_CORPORATE_TRADE_LOAN|XT_GE_SH_PUBLIC_INFRASTRUCTURE_FUND|XT_GE_SH_GOV_ALLOW|XT_GE_BJ_GOVERNMENT_LOAN|XT_GE_BJ_CORPORATE_LOAN|XT_GE_SZ_ASS,100090", --固收
|
||||
XT_GE_BOND_DISTRIBUTION = "XT_GE_SH_GOVERNMENT_LOAN_DISTRIBUTE_SALE|XT_GE_SH_LOCAL_GOVERNMENT_LOAN_DISTRIBUTE_SALE|XT_GE_SH_PUBLIC_LOAN_DISTRIBUTE_SALE|XT_GE_SH_LOAN_ISSUANCE_DISTRIBUTE_SALE|XT_GE_SZ_LOAN_ISSUANCE_DISTRIBUTE_SALE|XT_GE_SH_GOVERNMENT_BANK_FINANCE_LOAN_DISTRIBUTE_SALE|XT_GE_SH_LOCAL_GOVERNMENT_LOAN_ONLINE_DISTRIBUTE_SALE,100200", --债券分销
|
||||
XT_GE_EXTRA_50_ETF = "XT_GE_SH_50_ETF,100100",
|
||||
XT_GE_EXTRA_300_ETF = "XT_GE_SH_300_ETF|XT_GE_SZ_300_ETF,100101",
|
||||
@ -399,12 +407,13 @@ g_stocktype_info = {
|
||||
XT_GE_EXTRA_100_ETF = "XT_GE_SZ_100_ETF,100108",--100ETF股票期权
|
||||
XT_GE_EXTRA_500_ETF = "XT_GE_SH_500_ETF|XT_GE_SZ_500_ETF,100109",--500ETF
|
||||
XT_GE_EXTRA_CYB_ETF = "XT_GE_SZ_CYB_ETF,100110",--创业板ETF
|
||||
XT_GE_EXTRA_BJ_LOAN = "XT_GE_BJ_CENTRAL_GOVERNMENT_LOAN|XT_GE_BJ_LOCAL_GOVERNMENT_LOAN|XT_GE_BJ_GOVERNMENT_LOAN|XT_GE_BJ_CORPORATE_LOAN,100111",--北京债券
|
||||
},
|
||||
optionTypes
|
||||
= {
|
||||
XT_GE_SF_FTOPTION = "au*****?|cu*****?|al*****?|ru*****?|zn*****?|ag*****?|rb*****?|br*****?,SFO,100050", --上期所期权 四位到期数字,一位C/P
|
||||
XT_GE_ZF_FTOPTION = "SR****?|CF****?|TA****?|MA****?|RM****?|ZC****?|OI****?|PK****?|PX****?|SH****?,ZFO,100051", --郑商所期权 三位到期数字,一位C/P
|
||||
XT_GE_DF_FTOPTION = "m****-*-?|c****-*-?|i****-*-?|y****-*-?|p****-*-?|j****-*-?|jm****-*-?|pg****-*-?|v****-*-?|l****-*-?|pp****-*-?|a****-*-?|b****-*-?|eg****-*-?|eb****-*-?,DFO,100052", --大商所期权 四位到期数字,一位C/P
|
||||
XT_GE_SF_FTOPTION = "au*****?|cu*****?|al*****?|ru*****?|zn*****?|ag*****?|rb*****?|br*****?|pb*****?|ni*****?|sn*****?|ao*****?,SFO,100050", --上期所期权 四位到期数字,一位C/P
|
||||
XT_GE_ZF_FTOPTION = "SR****?|CF****?|TA****?|MA****?|RM****?|ZC****?|OI****?|PK****?|PX****?|SH****?|PF****?|SA****?|SM****?|SF****?|UR****?|AP****?,ZFO,100051", --郑商所期权 三位到期数字,一位C/P
|
||||
XT_GE_DF_FTOPTION = "m****-*-?|c****-*-?|i****-*-?|y****-*-?|p****-*-?|j****-*-?|jm****-*-?|pg****-*-?|v****-*-?|l****-*-?|pp****-*-?|a****-*-?|b****-*-?|eg****-*-?|eb****-*-?|jd****-*-?|cs****-*-?|lh****-*-?|lg****-*-?,DFO,100052", --大商所期权 四位到期数字,一位C/P
|
||||
XT_GE_IF_FTOPTION = "HO?|IO?|MO?|ZO?|IF?^&&IO?,IFO,100053", --中金所期权,HO\IO期权专用,有IF套利期权合约
|
||||
XT_GE_SF_ARBITAGE_FTOPTION = ",SFO,100054",--上期所套利期权
|
||||
XT_GE_ZF_ARBITAGE_FTOPTION = ",ZFO,100055",--郑商所套利期权
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/xtquant/datacenter.cp313-win_amd64.pyd
Normal file
BIN
src/xtquant/datacenter.cp313-win_amd64.pyd
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/xtquant/datacenter_shared.dll
Normal file
BIN
src/xtquant/datacenter_shared.dll
Normal file
Binary file not shown.
@ -89,6 +89,12 @@ xtdata是xtquant库中提供行情相关数据的模块,本模块旨在提供
|
||||
- `get_stock_list_in_sector` 增加`real_timetag`参数
|
||||
- 2024-09-06
|
||||
- 增加`subscribe_quote2`,与第一版相比,多一个除权参数
|
||||
- 2024-10-11
|
||||
- `data_dir`变量作用改为设置用户自定义数据路径
|
||||
- `get_data_dir`函数来返回数据路径
|
||||
- 2024-10-16
|
||||
- 删除`get_trading_time`函数
|
||||
- 增加`get_trading_period`,`get_kline_trading_period`,`get_all_trading_periods`,`get_all_kline_trading_periods`函数获取交易时段
|
||||
|
||||
## 接口概述
|
||||
|
||||
@ -759,6 +765,23 @@ get_full_kline(field_list = [], stock_list = [], period = '1m'
|
||||
- 返回
|
||||
- dict - {field: DataFrame}
|
||||
|
||||
#### 获取本地数据路径
|
||||
|
||||
```python
|
||||
get_data_dir()
|
||||
```
|
||||
|
||||
- 释义
|
||||
- 获取本地数据路径
|
||||
- 参数
|
||||
- 无
|
||||
- 返回
|
||||
- str
|
||||
- 备注
|
||||
- 如果更改过`xtdata.data_dir`变量的值,优先返回变量设置的值
|
||||
- 没有设置过,返回服务的数据路径
|
||||
- 注意----设置`xtdata.data_dir`的值可以强制指定读取本地数据的位置,谨慎修改
|
||||
|
||||
### 财务数据接口
|
||||
|
||||
#### 获取财务数据
|
||||
@ -1348,6 +1371,205 @@ download_index_weight()
|
||||
'turnoverRate10' #10日换手
|
||||
```
|
||||
|
||||
#### hfiopv - 高频IOPV
|
||||
|
||||
```python
|
||||
高频IOPV数据指标, 100ms推送频率
|
||||
普通指标:
|
||||
'time' #时间戳
|
||||
'dIOPV' #动态IOPV
|
||||
'dUpperLimitIOPV' #涨停IOPV
|
||||
'dLowerLimitIOPV' #跌停IOPV
|
||||
'dSidecarIOPV' #停牌IOPV
|
||||
'dUpperLimitMarketValue' #涨停成分股市值
|
||||
'dLowerLimitMarketValue' #跌停成分股市值
|
||||
'dSidecarMarketValue' #停牌成分股市值
|
||||
'dUpperLimitMarketValue_local' #本市场涨停成分股市值
|
||||
'dLowerLimitMarketValue_local' #本市场跌停成分股市值
|
||||
'dSidecarMarketValue_local' #本市场停牌成分股市值
|
||||
'dUpperLimitMarketValue_SH' #上海市场涨停成分股市值
|
||||
'dLowerLimitMarketValue_SH' #上海市场跌停成分股市值
|
||||
'dSidecarMarketValue_SH' #上海市场停牌成分股市值
|
||||
'dUpperLimitMarketValue_SZ' #深圳市场涨停成分股市值
|
||||
'dLowerLimitMarketValue_SZ' #深圳市场跌停成分股市值
|
||||
'dSidecarMarketValue_SZ' #深圳市场停牌成分股市值
|
||||
'dIndexDeviation' #指数偏差
|
||||
|
||||
五档指标:
|
||||
'purchaseIOPVs' #申购动态IOPV
|
||||
'redemptionIOPVs' #赎回动态IOPV
|
||||
'lxPurchaseIOPV' #申购IOPV
|
||||
'lxRedemptionIOPV' #赎回IOPV
|
||||
'lxPremiumNoRisk' #溢价无风险
|
||||
'lxDiscountNoRisk' #折价无风险
|
||||
'purchaseMarketValue' #申购市值
|
||||
'redemptionMarketValue' #赎回市值
|
||||
'purchaseMarketValue_local' #本市场申购市值
|
||||
'redemptionMarketValue_local' #本市场赎回市值
|
||||
'premiumProfits' #五档预估溢价
|
||||
'discountProfits' #五档预估折价
|
||||
'premiumCapacitys' #溢价容量
|
||||
'discountCapacitys' #折价容量
|
||||
```
|
||||
|
||||
#### fullspeedorderbook - 全速盘口
|
||||
|
||||
```python
|
||||
'time' #时间戳
|
||||
'price' #最新成交价
|
||||
'bidPrice' #多档委买价列表 [1 - 20]档
|
||||
'bidVolume' #多档委买量列表 [1 - 20]档
|
||||
'askPrice' #多档委卖价列表 [1 - 20]档
|
||||
'askVolume' #多档委卖量列表 [1 - 20]档
|
||||
```
|
||||
|
||||
#### l2transactioncount - level2逐笔成交统计
|
||||
|
||||
```python
|
||||
'time' #时间戳
|
||||
'bidNumber' #主买单总单数
|
||||
'offNumber' #主卖单总单数
|
||||
'ddx' #大单动向
|
||||
'ddy' #涨跌动因
|
||||
'ddz' #大单差分
|
||||
'netOrder' #净挂单量
|
||||
'netWithdraw' #净撤单量
|
||||
'withdrawBid' #总撤买量
|
||||
'withdrawOff' #总撤卖量
|
||||
'bidNumberDx' #主买单总单数增量
|
||||
'offNumberDx' #主卖单总单数增量
|
||||
'transactionNumber' #成交笔数增量
|
||||
|
||||
'bidMostAmount' #主买特大单成交额
|
||||
'bidBigAmount' #主买大单成交额
|
||||
'bidMediumAmount' #主买中单成交额
|
||||
'bidSmallAmount' #主买小单成交额
|
||||
'bidTotalAmount' #主买累计成交额
|
||||
|
||||
'offMostAmount' #主卖特大单成交额
|
||||
'offBigAmount' #主卖大单成交额
|
||||
'offMediumAmount' #主卖中单成交额
|
||||
'offSmallAmount' #主卖小单成交额
|
||||
'offTotalAmount' #主卖累计成交额
|
||||
|
||||
'unactiveBidMostAmount' #被动买特大单成交额
|
||||
'unactiveBidBigAmount' #被动买大单成交额
|
||||
'unactiveBidMediumAmount' #被动买中单成交额
|
||||
'unactiveBidSmallAmount' #被动买小单成交额
|
||||
'unactiveBidTotalAmount' #被动买累计成交额
|
||||
|
||||
'unactiveOffMostAmount' #被动卖特大单成交额
|
||||
'unactiveOffBigAmount' #被动卖大单成交额
|
||||
'unactiveOffMediumAmount' #被动卖中单成交额
|
||||
'unactiveOffSmallAmount' #被动卖小单成交额
|
||||
'unactiveOffTotalAmount' #被动卖累计成交额
|
||||
|
||||
'netInflowMostAmount' #净流入超大单成交额
|
||||
'netInflowBigAmount' #净流入大单成交额
|
||||
'netInflowMediumAmount' #净流入中单成交额
|
||||
'netInflowSmallAmount' #净流入小单成交额
|
||||
|
||||
'bidMostVolume' #主买特大单成交量
|
||||
'bidBigVolume' #主买大单成交量
|
||||
'bidMediumVolume' #主买中单成交量
|
||||
'bidSmallVolume' #主买小单成交量
|
||||
'bidTotalVolume' #主买累计成交量
|
||||
|
||||
'offMostVolume' #主卖特大单成交量
|
||||
'offBigVolume' #主卖大单成交量
|
||||
'offMediumVolume' #主卖中单成交量
|
||||
'offSmallVolume' #主卖小单成交量
|
||||
'offTotalVolume' #主卖累计成交量
|
||||
|
||||
'unactiveBidMostVolume' #被动买特大单成交量
|
||||
'unactiveBidBigVolume' #被动买大单成交量
|
||||
'unactiveBidMediumVolume' #被动买中单成交量
|
||||
'unactiveBidSmallVolume' #被动买小单成交量
|
||||
'unactiveBidTotalVolume' #被动买累计成交量
|
||||
|
||||
'unactiveOffMostVolume' #被动卖特大单成交量
|
||||
'unactiveOffBigVolume' #被动卖大单成交量
|
||||
'unactiveOffMediumVolume' #被动卖中单成交量
|
||||
'unactiveOffSmallVolume' #被动卖小单成交量
|
||||
'unactiveOffTotalVolume' #被动卖累计成交量
|
||||
|
||||
'netInflowMostVolume' #净流入超大单成交量
|
||||
'netInflowBigVolume' #净流入大单成交量
|
||||
'netInflowMediumVolume' #净流入中单成交量
|
||||
'netInflowSmallVolume' #净流入小单成交量
|
||||
|
||||
'bidMostAmountDx' #主买特大单成交额增量
|
||||
'bidBigAmountDx' #主买大单成交额增量
|
||||
'bidMediumAmountDx' #主买中单成交额增量
|
||||
'bidSmallAmountDx' #主买小单成交额增量
|
||||
'bidTotalAmountDx' #主买累计成交额增量
|
||||
|
||||
'offMostAmountDx' #主卖特大单成交额增量
|
||||
'offBigAmountDx' #主卖大单成交额增量
|
||||
'offMediumAmountDx' #主卖中单成交额增量
|
||||
'offSmallAmountDx' #主卖小单成交额增量
|
||||
'offTotalAmountDx' #主卖累计成交额增量
|
||||
|
||||
'unactiveBidMostAmountDx' #被动买特大单成交额增量
|
||||
'unactiveBidBigAmountDx' #被动买大单成交额增量
|
||||
'unactiveBidMediumAmountDx' #被动买中单成交额增量
|
||||
'unactiveBidSmallAmountDx' #被动买小单成交额增量
|
||||
'unactiveBidTotalAmountDx' #被动买累计成交额增量
|
||||
|
||||
'unactiveOffMostAmountDx' #被动卖特大单成交额增量
|
||||
'unactiveOffBigAmountDx' #被动卖大单成交额增量
|
||||
'unactiveOffMediumAmountDx' #被动卖中单成交额增量
|
||||
'unactiveOffSmallAmountDx' #被动卖小单成交额增量
|
||||
'unactiveOffTotalAmountDx' #被动卖累计成交额增量
|
||||
|
||||
'netInflowMostAmountDx' #净流入超大单成交额增量
|
||||
'netInflowBigAmountDx' #净流入大单成交额增量
|
||||
'netInflowMediumAmountDx' #净流入中单成交额增量
|
||||
'netInflowSmallAmountDx' #净流入小单成交额增量
|
||||
|
||||
'bidMostVolumeDx' #主买特大单成交量增量
|
||||
'bidBigVolumeDx' #主买大单成交量增量
|
||||
'bidMediumVolumeDx' #主买中单成交量增量
|
||||
'bidSmallVolumeDx' #主买小单成交量增量
|
||||
'bidTotalVolumeDx' #主买累计成交量增量
|
||||
|
||||
'offMostVolumeDx' #主卖特大单成交量增量
|
||||
'offBigVolumeDx' #主卖大单成交量增量
|
||||
'offMediumVolumeDx' #主卖中单成交量增量
|
||||
'offSmallVolumeDx' #主卖小单成交量增量
|
||||
'offTotalVolumeDx' #主卖累计成交量增量
|
||||
|
||||
'unactiveBidMostVolumeDx' #被动买特大单成交量增量
|
||||
'unactiveBidBigVolumeDx' #被动买大单成交量增量
|
||||
'unactiveBidMediumVolumeDx' #被动买中单成交量增量
|
||||
'unactiveBidSmallVolumeDx' #被动买小单成交量增量
|
||||
'unactiveBidTotalVolumeDx' #被动买累计成交量增量
|
||||
|
||||
'unactiveOffMostVolumeDx' #被动卖特大单成交量增量
|
||||
'unactiveOffBigVolumeDx' #被动卖大单成交量增量
|
||||
'unactiveOffMediumVolumeDx' #被动卖中单成交量增量
|
||||
'unactiveOffSmallVolumeDx' #被动卖小单成交量增量
|
||||
'unactiveOffTotalVolumeDx' #被动卖累计成交量增量
|
||||
|
||||
'netInflowMostVolumeDx' #净流入超大单成交量增量
|
||||
'netInflowBigVolumeDx' #净流入大单成交量增量
|
||||
'netInflowMediumVolumeDx' #净流入中单成交量增量
|
||||
'netInflowSmallVolumeDx' #净流入小单成交量增量
|
||||
```
|
||||
|
||||
#### l2thousand - level2委买委卖千档盘口
|
||||
|
||||
```python
|
||||
'timeTag' #时间戳
|
||||
'price' #最新成交价
|
||||
'bidPrice' #多档委买价(向量)
|
||||
'bidVolume' #多档委买量(向量),单位是手
|
||||
'offPrice' #多档委卖价(向量)
|
||||
'offVolume' #多档委卖量(向量),单位是手
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 数据字典
|
||||
|
||||
#### 证券状态
|
||||
|
@ -77,10 +77,10 @@ XtQuant目前提供的库包括Python3.6、3.7、3.8版本,不同版本的pyth
|
||||
- `xtconstant.MARKET_CONVERT_1` - 市价最优一档即成剩转[中金所]
|
||||
- `xtconstant.MARKET_CONVERT_5` - 市价最优五档即成剩转[中金所]
|
||||
- 2023-10-20
|
||||
- 委托结构`XtOrder`,成交结构`XtTrade`,持仓结构`XtPosition` 新增多空字段
|
||||
- `direction` - 多空,股票不需要
|
||||
- 委托结构`XtOrder`,成交结构`XtTrade`新增交易操作字段
|
||||
- `offset_flag` - 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等
|
||||
- 委托结构`XtOrder`,成交结构`XtTrade`,持仓结构`XtPosition` 新增多空字段
|
||||
- `direction` - 多空,股票不需要
|
||||
- 委托结构`XtOrder`,成交结构`XtTrade`新增交易操作字段
|
||||
- `offset_flag` - 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等
|
||||
- 2023-11-03
|
||||
- 添加券源行情查询接口 `smt_query_quoter`
|
||||
- 添加库存券约券申请接口 `smt_negotiate_order`
|
||||
@ -89,8 +89,6 @@ XtQuant目前提供的库包括Python3.6、3.7、3.8版本,不同版本的pyth
|
||||
- 委托类型增加ETF申赎
|
||||
- 2024-02-29
|
||||
- 添加期货持仓统计查询接口`query_position_statistics`
|
||||
- 2024-04-25
|
||||
- 数据结构添加`stock_code1`字段以适配长代码
|
||||
- 2024-05-24
|
||||
- 添加通用数据导出接口export_data
|
||||
- 添加通用数据查询接口query_data
|
||||
@ -99,6 +97,39 @@ XtQuant目前提供的库包括Python3.6、3.7、3.8版本,不同版本的pyth
|
||||
- 2024-08-27
|
||||
- 成交结构`XtTrade`新增手续费字段
|
||||
- `commission` - 手续费
|
||||
- 2024-11-28
|
||||
- 资产结构`XtAsset`新增可取资金字段
|
||||
- `fetch_balance` - 可取资金
|
||||
- 委托结构`XtOrder`新增证券名称、股东代码字段
|
||||
- `instrument_name` - 证券名称
|
||||
- `secu_account` - 股东代码
|
||||
- 成交结构`XtTrade`新增证券名称、股东代码字段
|
||||
- `instrument_name` - 证券名称
|
||||
- `secu_account` - 股东代码
|
||||
- 持仓结构`XtPosition`新增证券名称、当前价、盈亏比例、股东代码字段
|
||||
- `instrument_name` - 证券名称
|
||||
- `last_price` - 当前价
|
||||
- `profit_rate` - 盈亏比例
|
||||
- `secu_account` - 股东代码
|
||||
- 添加银证转账(银行转证券)接口`bank_transfer_in`/`bank_transfer_in_async`
|
||||
- 添加银证转账(证券转银行)接口`bank_transfer_out`/`bank_transfer_out_async`
|
||||
- 添加银行信息查询接口`query_bank_info`
|
||||
- 添加银行转账流水查询接口`query_bank_transfer_stream`
|
||||
- 添加股东账户查询接口`query_secu_account`
|
||||
- 2025-02-13
|
||||
- 持仓结构`XtPosition`新增浮动盈亏字段
|
||||
- `float_profit` - 浮动盈亏
|
||||
- 2025-03-10
|
||||
- 添加银行余额查询接口`query_bank_amount`
|
||||
- 2025-03-19
|
||||
- 持仓结构`XtPosition`新增开仓日期字段
|
||||
- `open_date` - 开仓日期,股票不需要
|
||||
- 2025-03-27
|
||||
- 添加CTP资金内转(期权转期货)接口`ctp_transfer_option_to_future`/`ctp_transfer_option_to_future_async`
|
||||
- 添加CTP资金内转(期货转期权)接口`ctp_transfer_future_to_option`/`ctp_transfer_future_to_option_async`
|
||||
- 2025-04-09
|
||||
- 持仓结构`XtPosition`新增持仓盈亏字段
|
||||
- `position_profit` - 持仓盈亏,股票不需要
|
||||
|
||||
## 快速入门
|
||||
|
||||
@ -385,7 +416,7 @@ XtQuant封装了策略交易所需要的Python API接口,可以和MiniQMT客
|
||||
- 市价最优五档即成剩撤 - `xtconstant.MARKET_CANCEL_5`
|
||||
- 市价最优一档即成剩转 - `xtconstant.MARKET_CONVERT_1`
|
||||
- 市价最优五档即成剩转 - `xtconstant.MARKET_CONVERT_5`
|
||||
- 上交所 股票
|
||||
- 上交所 北交所 股票
|
||||
- 最优五档即时成交剩余撤销 - `xtconstant.MARKET_SH_CONVERT_5_CANCEL`
|
||||
- 最优五档即时成交剩转限价 - `xtconstant.MARKET_SH_CONVERT_5_LIMIT`
|
||||
- 对手方最优价格委托 - `xtconstant.MARKET_PEER_PRICE_FIRST`
|
||||
@ -466,6 +497,7 @@ cash | float | 可用金额
|
||||
frozen_cash |float | 冻结金额
|
||||
market_value | float | 持仓市值
|
||||
total_asset | float | 总资产
|
||||
fetch_balance | float | 可取资金
|
||||
|
||||
### 委托XtOrder
|
||||
属性|类型|注释
|
||||
@ -488,7 +520,8 @@ strategy_name | str | 策略名称
|
||||
order_remark | str | 委托备注
|
||||
direction | int | 多空方向,股票不需要;参见数据字典
|
||||
offset_flag | int | 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见数据字典
|
||||
stock_code1 | str | 证券代码,例如"600000.SH"
|
||||
instrument_name | str | 证券名称
|
||||
secu_account | str | 股东代码
|
||||
|
||||
### 成交XtTrade
|
||||
属性|类型|注释
|
||||
@ -507,9 +540,10 @@ order_sysid | str | 柜台合同编号
|
||||
strategy_name | str | 策略名称
|
||||
order_remark | str | 委托备注
|
||||
direction | int | 多空方向,股票不需要;参见数据字典
|
||||
offset_flag | int | 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见数据字典
|
||||
stock_code1 | str | 证券代码,例如"600000.SH"
|
||||
offset_flag | int | 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等;参见数据字
|
||||
commission | float | 手续费
|
||||
instrument_name | str | 证券名称
|
||||
secu_account | str | 股东代码
|
||||
|
||||
### 持仓XtPosition
|
||||
属性|类型|注释
|
||||
@ -526,7 +560,13 @@ on_road_volume | int | 在途股份
|
||||
yesterday_volume | int | 昨夜拥股
|
||||
avg_price | float | 成本价
|
||||
direction | int | 多空方向,股票不需要;参见数据字典
|
||||
stock_code1 | str | 证券代码,例如"600000.SH"
|
||||
instrument_name | str | 证券名称
|
||||
last_price | float | 当前价
|
||||
profit_rate | float | 盈亏比例
|
||||
secu_account | str | 股东代码
|
||||
float_profit | float | 浮动盈亏
|
||||
open_date | str | 开仓日期,股票不需要
|
||||
position_profit | float | 持仓盈亏,股票不需要
|
||||
|
||||
### 期货持仓统计XtPositionStatistics
|
||||
|
||||
@ -738,6 +778,14 @@ status | int | 账号状态,参见数据字典
|
||||
| msg | str | 反馈信息 |
|
||||
| apply_id | str | 若申请成功返回资券申请编号,否则返回-1 |
|
||||
|
||||
### 银证转账异步接口的反馈XtBankTransferResponse
|
||||
|
||||
| 属性 | 类型 | 注释 |
|
||||
| ------- | ---- | ------------ |
|
||||
| seq | int | 异步请求序号 |
|
||||
| success | bool | 是否成功 |
|
||||
| msg | str | 反馈信息 |
|
||||
|
||||
## XtQuant API说明
|
||||
|
||||
### 系统设置接口
|
||||
@ -1145,6 +1193,253 @@ sync_transaction_from_external(operation, data_type, account, deal_list)
|
||||
#失败输出示例:{'error': {'msg': '[0-0: invalid operation type: ADDD], '}}
|
||||
```
|
||||
|
||||
#### 银证转账(银行转证券)同步接口
|
||||
|
||||
```python
|
||||
bank_transfer_in(account, bank_no, bank_account, balance, bank_pwd, fund_pwd)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银证转账(银行转证券)
|
||||
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
- balance - float 转账金额
|
||||
- bank_pwd - str 银行账号密码
|
||||
- fund_pwd - str 资金账号密码
|
||||
|
||||
* 返回
|
||||
|
||||
- (success, msg)
|
||||
- success - bool 转账操作是否成功
|
||||
- msg - str 反馈信息
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
result = xt_trader.bank_transfer_in(account, 'A', '0200205001003215076', 10, bank_pwd = 'abc123')
|
||||
print(result)
|
||||
```
|
||||
|
||||
|
||||
#### 银证转账(银行转证券)异步接口
|
||||
|
||||
```python
|
||||
bank_transfer_in_async(account, bank_no, bank_account, balance, bank_pwd, fund_pwd)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银证转账(银行转证券)的异步接口,异步接口如果正常返回了请求序号seq,会收到on_bank_transfer_async_response的反馈
|
||||
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
- balance - float 转账金额
|
||||
- bank_pwd - str 银行账号密码
|
||||
- fund_pwd - str 资金账号密码
|
||||
|
||||
* 返回
|
||||
|
||||
- 返回请求序号seq,成功发起申请后的请求序号为大于0的正整数,如果为-1表示发起申请失败
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
seq = xt_trader.bank_transfer_in_async(account, 'A', '0200205001003215076', 10, bank_pwd = 'abc123')
|
||||
print(seq)
|
||||
```
|
||||
|
||||
#### 银证转账(证券转银行)同步接口
|
||||
|
||||
```python
|
||||
bank_transfer_out(account, bank_no, bank_account, balance, bank_pwd, fund_pwd)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银证转账(证券转银行)
|
||||
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
- balance - float 转账金额
|
||||
- bank_pwd - str 银行账号密码
|
||||
- fund_pwd - str 资金账号密码
|
||||
|
||||
* 返回
|
||||
|
||||
- (success, msg)
|
||||
- success - bool 转账操作是否成功
|
||||
- msg - str 反馈信息
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
result = xt_trader.bank_transfer_out(account, 'A', '0200205001003215076', 10, fund_pwd = 'abc123')
|
||||
print(result)
|
||||
```
|
||||
|
||||
#### 银证转账(证券转银行)异步接口
|
||||
|
||||
```python
|
||||
bank_transfer_out_async(account, bank_no, bank_account, balance, bank_pwd, fund_pwd)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银证转账(证券转银行)的异步接口,异步接口如果正常返回了请求序号seq,会收到on_bank_transfer_async_response的反馈
|
||||
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
- balance - float 转账金额
|
||||
- bank_pwd - str 银行账号密码
|
||||
- fund_pwd - str 资金账号密码
|
||||
|
||||
* 返回
|
||||
|
||||
- 返回请求序号seq,成功发起申请后的请求序号为大于0的正整数,如果为-1表示发起申请失败
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
seq = xt_trader.bank_transfer_out_async(account, 'A', '0200205001003215076', 10, fund_pwd = 'abc123')
|
||||
print(seq)
|
||||
```
|
||||
|
||||
#### CTP资金内转(期权转期货)同步接口
|
||||
|
||||
```python
|
||||
ctp_transfer_option_to_future(opt_account_id, ft_account_id, balance)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- CTP资金内转(期权转期货)
|
||||
|
||||
* 参数
|
||||
|
||||
- opt_account_id - str 期权资金账号
|
||||
- ft_account_id- str 期货资金账号
|
||||
- balance - float 转账金额
|
||||
|
||||
* 返回
|
||||
|
||||
- (success, msg)
|
||||
- success - bool 转账操作是否成功
|
||||
- msg - str 反馈信息
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
#xt_trader为XtQuant API实例对象
|
||||
result = xt_trader.ctp_transfer_option_to_future('60016061', '10001951', 10)
|
||||
print(result)
|
||||
```
|
||||
|
||||
|
||||
#### CTP资金内转(期权转期货)异步接口
|
||||
|
||||
```python
|
||||
ctp_transfer_option_to_future_async(opt_account_id, ft_account_id, balance)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- CTP资金内转(期权转期货)的异步接口,异步接口如果正常返回了请求序号seq,会收到on_ctp_internal_transfer_async_response的反馈
|
||||
|
||||
* 参数
|
||||
|
||||
- opt_account_id - str 期权资金账号
|
||||
- ft_account_id- str 期货资金账号
|
||||
- balance - float 转账金额
|
||||
|
||||
* 返回
|
||||
|
||||
- 返回请求序号seq,成功发起申请后的请求序号为大于0的正整数,如果为-1表示发起申请失败
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
#xt_trader为XtQuant API实例对象
|
||||
seq = xt_trader.ctp_transfer_option_to_future_async('60016061', '10001951', 10)
|
||||
print(seq)
|
||||
```
|
||||
|
||||
#### CTP资金内转(期货转期权)同步接口
|
||||
|
||||
```python
|
||||
ctp_transfer_future_to_option(opt_account_id, ft_account_id, balance)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- CTP资金内转(期权转期货)
|
||||
|
||||
* 参数
|
||||
|
||||
- opt_account_id - str 期权资金账号
|
||||
- ft_account_id- str 期货资金账号
|
||||
- balance - float 转账金额
|
||||
|
||||
* 返回
|
||||
|
||||
- (success, msg)
|
||||
- success - bool 转账操作是否成功
|
||||
- msg - str 反馈信息
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
#xt_trader为XtQuant API实例对象
|
||||
result = xt_trader.ctp_transfer_future_to_option('60016061', '10001951', 15)
|
||||
print(result)
|
||||
```
|
||||
|
||||
#### CTP资金内转(期货转期权)异步接口
|
||||
|
||||
```python
|
||||
ctp_transfer_future_to_option_async(opt_account_id, ft_account_id, balance)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- CTP资金内转(期货转期权)的异步接口,异步接口如果正常返回了请求序号seq,会收到on_ctp_internal_transfer_async_response的反馈
|
||||
* 参数
|
||||
|
||||
- opt_account_id - str 期权资金账号
|
||||
- ft_account_id- str 期货资金账号
|
||||
- balance - float 转账金额
|
||||
|
||||
* 返回
|
||||
|
||||
- 返回请求序号seq,成功发起申请后的请求序号为大于0的正整数,如果为-1表示发起申请失败
|
||||
* 示例
|
||||
|
||||
```python
|
||||
#xt_trader为XtQuant API实例对象
|
||||
seq = xt_trader.ctp_transfer_future_to_option_async('60016061', '10001951', 15)
|
||||
print(seq)
|
||||
```
|
||||
|
||||
### 股票查询接口
|
||||
|
||||
@ -1557,6 +1852,146 @@ query_data(account, result_path, data_type, start_time = None, end_time = None,
|
||||
#失败输出示例:{'error': {'errorMsg': 'can not find account info, accountID:2000449 accountType:2'}}
|
||||
```
|
||||
|
||||
#### 银行信息查询
|
||||
|
||||
```python
|
||||
query_bank_info(account)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银行信息查询
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
* 返回
|
||||
- result - dict 银行信息,包含以下字段
|
||||
- success - bool
|
||||
- error_msg - str
|
||||
- money_type - str 币种
|
||||
- bank_no - str 银行编号
|
||||
- bank_account - str 银行账号
|
||||
- bank_name - str 银行名称
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
datas = xt_trader.query_bank_info(account)
|
||||
for it in datas:
|
||||
print({x:it.__getattribute__(x) for x in dir(it) if x[0] != '_'})
|
||||
```
|
||||
|
||||
#### 银行余额查询
|
||||
|
||||
```python
|
||||
query_bank_amount(account, bank_no, bank_account, bank_pwd)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银行转账流水查询
|
||||
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
- bank_pwd - str 银行账号密码
|
||||
|
||||
* 返回
|
||||
|
||||
- result - dict 银行转账流水信息,包含以下字段
|
||||
- success - bool
|
||||
- error_msg - str
|
||||
- account_id - str 资金账号
|
||||
- bank_account - str 银行账号
|
||||
- money_type - str 币种
|
||||
- balance - float 余额
|
||||
- enable_balance - float 可转金额
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
datas = xt_trader.query_bank_amount(account, 'A', '0200205001003215076', 'abc123')
|
||||
for it in datas:
|
||||
print({x:it.__getattribute__(x) for x in dir(it) if x[0] != '_'})
|
||||
```
|
||||
|
||||
#### 银行转账流水查询
|
||||
|
||||
```python
|
||||
query_bank_transfer_stream(account, start_date, end_date, bank_no, bank_account)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 银行转账流水查询
|
||||
* 参数
|
||||
- account - StockAccount 资金账号
|
||||
- start_date - str 查询起始日期,如'20241125'
|
||||
- end_date - str 查询截至日期,如'20241129'
|
||||
- bank_no - str 银行编号,可通过query_bank_info查回
|
||||
- bank_account - str 银行账号
|
||||
* 返回
|
||||
- result - dict 银行转账流水信息,包含以下字段
|
||||
- success - bool
|
||||
- error_msg - str
|
||||
- date - str 日期
|
||||
- time - str 时间
|
||||
- transfer_no - str 转账流水号
|
||||
- transfer_direction - str 转账方向 '1':银行转证券,'2':证券转银行,'5':查询
|
||||
- bank_no - str 银行编号
|
||||
- bank_name - str 银行名称
|
||||
- bank_account - str 银行账号
|
||||
- money_type - str 币种
|
||||
- account_id - str 资金账号
|
||||
- balance - float 金额
|
||||
- remark - str 备注
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
datas = xt_trader.query_bank_transfer_stream(account, '20241125', '20241129')
|
||||
for it in datas:
|
||||
print({x:it.__getattribute__(x) for x in dir(it) if x[0] != '_'})
|
||||
```
|
||||
|
||||
#### 股东账户查询
|
||||
|
||||
```python
|
||||
query_secu_account(account)
|
||||
```
|
||||
|
||||
* 释义
|
||||
|
||||
- 股东账户查询
|
||||
* 参数
|
||||
|
||||
- account - StockAccount 资金账号
|
||||
* 返回
|
||||
- result - dict 银行信息,包含以下字段
|
||||
- success - bool
|
||||
- error_msg - str
|
||||
- main - bool 是否主股东
|
||||
- market - str 证券市场
|
||||
- secu_account - str 股东号
|
||||
|
||||
* 示例
|
||||
|
||||
```python
|
||||
account = StockAccount('1000008')
|
||||
#xt_trader为XtQuant API实例对象
|
||||
datas = xt_trader.query_secu_account(account)
|
||||
for it in datas:
|
||||
print({x:it.__getattribute__(x) for x in dir(it) if x[0] != '_'})
|
||||
```
|
||||
|
||||
### 约券相关接口
|
||||
|
||||
#### 券源行情查询
|
||||
@ -1773,6 +2208,13 @@ class MyXtQuantTraderCallback(XtQuantTraderCallback):
|
||||
"""
|
||||
print("on_smt_appointment_async_response")
|
||||
print(response.account_id, response.order_sysid, response.error_id, response.error_msg, response.seq)
|
||||
def on_bank_transfer_async_response(self, response):
|
||||
"""
|
||||
:param response: XtBankTransferResponse 对象
|
||||
:return:
|
||||
"""
|
||||
print("on_bank_transfer_async_response")
|
||||
print(response.seq, response.success, response.msg)
|
||||
```
|
||||
|
||||
#### 连接状态回调
|
||||
@ -1908,5 +2350,35 @@ on_smt_appointment_async_response(data)
|
||||
- data - XtSmtAppointmentResponse 约券相关异步接口的反馈
|
||||
* 返回
|
||||
- 无
|
||||
* 备注
|
||||
- 无
|
||||
|
||||
#### 银证转账异步接口的回报推送
|
||||
|
||||
```python
|
||||
on_bank_transfer_async_response(data)
|
||||
```
|
||||
|
||||
* 释义
|
||||
- 银证转账异步接口的回报推送
|
||||
* 参数
|
||||
- data - XtBankTransferResponse 银证转账异步接口的反馈
|
||||
* 返回
|
||||
- 无
|
||||
* 备注
|
||||
- 无
|
||||
|
||||
#### CTP资金内转异步接口的回报推送
|
||||
|
||||
```python
|
||||
on_ctp_internal_transfer_async_response(data)
|
||||
```
|
||||
|
||||
* 释义
|
||||
- CTP资金内转异步接口的回报推送
|
||||
* 参数
|
||||
- data - XtBankTransferResponse 银证转账异步接口的反馈
|
||||
* 返回
|
||||
- 无
|
||||
* 备注
|
||||
- 无
|
@ -5,6 +5,7 @@ from .meta_config import (
|
||||
get_metatable_list,
|
||||
get_metatable_info,
|
||||
get_metatable_fields,
|
||||
download_metatable_data,
|
||||
)
|
||||
|
||||
from . import get_arrow
|
||||
|
@ -27,7 +27,7 @@ def _get_tabular_feather_single_ori(
|
||||
|
||||
file_path = os.path.join(xtdata.get_data_dir(), "EP", f"{table}_Xdat2", "data.fe")
|
||||
if not os.path.exists(file_path):
|
||||
return
|
||||
return None, None
|
||||
|
||||
fe_table = fe.read_table(file_path)
|
||||
|
||||
@ -199,6 +199,36 @@ def _parse_keys(fields):
|
||||
|
||||
return [(tb, sd['show'], sd['fe']) for tb, sd in tmp.items()]
|
||||
|
||||
def _datetime_to_timetag(timelabel, format=''):
|
||||
'''
|
||||
timelabel: str '20221231' '20221231235959'
|
||||
format: str '%Y%m%d' '%Y%m%d%H%M%S'
|
||||
return: int 1672502399000
|
||||
'''
|
||||
import datetime as dt
|
||||
if not format:
|
||||
format = '%Y%m%d' if len(timelabel) == 8 else '%Y%m%d%H%M%S'
|
||||
try:
|
||||
return dt.datetime.strptime(timelabel, format).timestamp() * 1000
|
||||
except:
|
||||
return 0
|
||||
|
||||
def _datetime_to_timetag_end(timelabel, format=''):
|
||||
'''
|
||||
timelabel: str '20221231' '20221231235959'
|
||||
format: str '%Y%m%d' '%Y%m%d%H%M%S'
|
||||
return: int 1672502399000
|
||||
'''
|
||||
import datetime as dt
|
||||
if not format:
|
||||
format = '%Y%m%d' if len(timelabel) == 8 else '%Y%m%d%H%M%S'
|
||||
try:
|
||||
if len(timelabel) == 8:
|
||||
return dt.datetime.strptime(timelabel, format).timestamp() * 1000 + 24*60*60*1000 - 1
|
||||
elif len(timelabel) == 14:
|
||||
return dt.datetime.strptime(timelabel, format).timestamp() * 1000 + 1000 - 1
|
||||
except:
|
||||
return 0
|
||||
|
||||
def get_tabular_fe_data(
|
||||
codes: list,
|
||||
@ -229,22 +259,8 @@ def get_tabular_fe_data(
|
||||
|
||||
table_fields = _parse_fields(fields)
|
||||
|
||||
def datetime_to_timetag(timelabel, format=''):
|
||||
'''
|
||||
timelabel: str '20221231' '20221231235959'
|
||||
format: str '%Y%m%d' '%Y%m%d%H%M%S'
|
||||
return: int 1672502399000
|
||||
'''
|
||||
import datetime as dt
|
||||
if not format:
|
||||
format = '%Y%m%d' if len(timelabel) == 8 else '%Y%m%d%H%M%S'
|
||||
try:
|
||||
return dt.datetime.strptime(timelabel, format).timestamp() * 1000
|
||||
except:
|
||||
return 0
|
||||
|
||||
start_timetag = datetime_to_timetag(start_time)
|
||||
end_timetag = datetime_to_timetag(end_time)
|
||||
start_timetag = _datetime_to_timetag(start_time)
|
||||
end_timetag = _datetime_to_timetag_end(end_time)
|
||||
|
||||
dfs = []
|
||||
ordered_fields = []
|
||||
@ -309,22 +325,8 @@ def get_tabular_fe_bson(
|
||||
|
||||
table_fields = _parse_keys(fields)
|
||||
|
||||
def datetime_to_timetag(timelabel, format=''):
|
||||
'''
|
||||
timelabel: str '20221231' '20221231235959'
|
||||
format: str '%Y%m%d' '%Y%m%d%H%M%S'
|
||||
return: int 1672502399000
|
||||
'''
|
||||
import datetime as dt
|
||||
if not format:
|
||||
format = '%Y%m%d' if len(timelabel) == 8 else '%Y%m%d%H%M%S'
|
||||
try:
|
||||
return dt.datetime.strptime(timelabel, format).timestamp() * 1000
|
||||
except:
|
||||
return 0
|
||||
|
||||
start_timetag = datetime_to_timetag(start_time)
|
||||
end_timetag = datetime_to_timetag(end_time)
|
||||
start_timetag = _datetime_to_timetag(start_time)
|
||||
end_timetag = _datetime_to_timetag_end(end_time)
|
||||
|
||||
def _get_convert():
|
||||
import pyarrow as pa
|
||||
|
@ -13,6 +13,11 @@ def run_file(user_script, param = {}):
|
||||
lib_search = [os.path.abspath(p) for p in pypath.split(';')]
|
||||
sys.path = lib_search + [p for p in sys.path if p not in lib_search]
|
||||
|
||||
user_args = param.get('user_args')
|
||||
if user_args and type(user_args) == dict:
|
||||
for k, v in user_args.items():
|
||||
globals()[k] = v
|
||||
|
||||
user_module = compile(open(user_script, 'rb').read(), user_script, 'exec', optimize = 2)
|
||||
#print({'user_module': user_module})
|
||||
|
||||
|
@ -73,10 +73,16 @@ class StrategyLoader:
|
||||
|
||||
if C.start_time:
|
||||
C.start_time_str = C.start_time.replace('-', '').replace(' ', '').replace(':', '')
|
||||
C.start_time_num = int(datetime_to_timetag(C.start_time_str))
|
||||
try:
|
||||
C.start_time_num = int(datetime_to_timetag(C.start_time_str))
|
||||
except:
|
||||
C.start_time_num = 0
|
||||
if C.end_time:
|
||||
C.end_time_str = C.end_time.replace('-', '').replace(' ', '').replace(':', '')
|
||||
C.end_time_num = int(datetime_to_timetag(C.end_time_str))
|
||||
try:
|
||||
C.end_time_num = int(datetime_to_timetag(C.end_time_str))
|
||||
except:
|
||||
C.end_time_num = 0
|
||||
|
||||
if 1: #register
|
||||
this.create_formula()
|
||||
@ -126,11 +132,17 @@ class StrategyLoader:
|
||||
import datetime as dt
|
||||
if C.start_time:
|
||||
C.start_time_str = C.start_time.replace('-', '').replace(' ', '').replace(':', '')
|
||||
C.start_time_num = int(datetime_to_timetag(C.start_time_str))
|
||||
try:
|
||||
C.start_time_num = int(datetime_to_timetag(C.start_time_str))
|
||||
except:
|
||||
C.start_time_num = 0
|
||||
init_result['backtest']['start_time'] = dt.datetime.fromtimestamp(C.start_time_num / 1000).strftime('%Y-%m-%d %H:%M:%S')
|
||||
if C.end_time:
|
||||
C.end_time_str = C.end_time.replace('-', '').replace(' ', '').replace(':', '')
|
||||
C.end_time_num = int(datetime_to_timetag(C.end_time_str))
|
||||
try:
|
||||
C.end_time_num = int(datetime_to_timetag(C.end_time_str))
|
||||
except:
|
||||
C.end_time_num = 0
|
||||
init_result['backtest']['end_time'] = dt.datetime.fromtimestamp(C.end_time_num / 1000).strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
this.call_formula('initcomplete', init_result)
|
||||
|
@ -193,13 +193,13 @@ MARKET_CANCEL_5 = 22
|
||||
MARKET_CONVERT_1 = 23
|
||||
# 市价最优五档即成剩转[中金所][期货]
|
||||
MARKET_CONVERT_5 = 24
|
||||
# 最优五档即时成交剩余撤销[上交所][股票]
|
||||
# 最优五档即时成交剩余撤销[上交所][北交所][股票]
|
||||
MARKET_SH_CONVERT_5_CANCEL = 42
|
||||
# 最优五档即时成交剩转限价[上交所][股票]
|
||||
# 最优五档即时成交剩转限价[上交所][北交所][股票]
|
||||
MARKET_SH_CONVERT_5_LIMIT = 43
|
||||
# 对手方最优价格委托[上交所[股票]][深交所[股票][期权]]
|
||||
# 对手方最优价格委托[上交所[股票]][深交所[股票][期权]][北交所[股票]]
|
||||
MARKET_PEER_PRICE_FIRST = 44
|
||||
# 本方最优价格委托[上交所[股票]][深交所[股票][期权]]
|
||||
# 本方最优价格委托[上交所[股票]][深交所[股票][期权]][北交所[股票]]
|
||||
MARKET_MINE_PRICE_FIRST = 45
|
||||
# 即时成交剩余撤销委托[深交所][股票][期权]
|
||||
MARKET_SZ_INSTBUSI_RESTCANCEL = 46
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -110,7 +110,8 @@ def set_kline_mirror_markets(markets):
|
||||
|
||||
def set_allow_optmize_address(allow_list = []):
|
||||
'''
|
||||
设置连接池,行情仅从连接池内的地址中选择连接,此接口应该先于init调用
|
||||
设置连接池,此接口应该先于init调用
|
||||
设置后,行情仅从连接池内的地址中选择连接,并且使用第一个地址作为全推行情地址
|
||||
地址格式为'127.0.0.1:55300'
|
||||
设置为空时,行情从全部的可用地址中选择连接
|
||||
'''
|
||||
@ -158,7 +159,7 @@ def set_index_mirror_enabled(enable):
|
||||
设置指标全推功能是否开启,此接口应该先于init调用
|
||||
此功能默认关闭
|
||||
'''
|
||||
__dc.set_index_mirror_enabled(["SH", "SZ", "SHO", "SZO", "IF", "DF", "SF", "ZF", "GF", "INE"] if enable else [])
|
||||
__dc.set_index_mirror_enabled(['SH', 'SZ', 'SHO', 'SZO', 'IF', 'DF', 'SF', 'ZF', 'GF', 'INE'] if enable else [])
|
||||
return
|
||||
|
||||
|
||||
@ -174,6 +175,41 @@ def set_index_mirror_markets(markets):
|
||||
return
|
||||
|
||||
|
||||
def set_kline_cutting_mode(mode):
|
||||
'''
|
||||
设置多周期数据切割按累计交易时间还是固定交易间隔,此接口应该先于init调用
|
||||
mode: str, 切割方式
|
||||
'accumulate',累计交易时间
|
||||
'fixed',固定交易间隔
|
||||
例如 期货交易时间10:00-10:15, 10:30-11:30, 以30分钟k线切割划分为依据
|
||||
按累计交易时间方式结果为10:00-10:45, 10:45-11:15,累计够30分钟,做一次切割,默认使用当前方式
|
||||
按固定交易间隔方式结果为10:00-10:15, 10:30-11:00,是按固定30分钟切割划分一次
|
||||
默认按累计交易时间
|
||||
'''
|
||||
__dc.set_kline_cutting_mode(mode)
|
||||
|
||||
|
||||
def set_quote_time_mode_v2(enable):
|
||||
'''
|
||||
设置是否用新版交易时段,此接口应该先于init调用
|
||||
'''
|
||||
__dc.set_quote_time_version(enable)
|
||||
|
||||
def set_thousand_source_mode(mode):
|
||||
'''
|
||||
设置千档数据源模式:
|
||||
mode: str, 千档数据源模式
|
||||
'server',使用服务计算的千档数据
|
||||
'local' ,使用本地计算的千档数据
|
||||
示例:
|
||||
from xtquant import xtdatacenter as xtdc
|
||||
xtdc.set_thousand_source_mode('server') # 使用服务计算的千档数据
|
||||
xtdc.set_thousand_source_mode('local') # 使用本地计算的千档数据
|
||||
|
||||
默认使用服务计算的千档数据
|
||||
'''
|
||||
__dc.set_thousand_source_mode(mode)
|
||||
|
||||
def init(start_local_service = True):
|
||||
'''
|
||||
初始化行情模块
|
||||
@ -182,8 +218,8 @@ def init(start_local_service = True):
|
||||
'''
|
||||
import time
|
||||
|
||||
__dc.set_config_dir(__config_dir)
|
||||
__dc.set_data_home_dir(__data_home_dir)
|
||||
__dc.set_config_dir(str(__config_dir))
|
||||
__dc.set_data_home_dir(str(__data_home_dir))
|
||||
__dc.set_token(__quote_token)
|
||||
__dc.log_init()
|
||||
__dc.start_init_quote()
|
||||
@ -209,8 +245,10 @@ def init(start_local_service = True):
|
||||
status_show[srv_addr] = info['boerror']
|
||||
else:
|
||||
status_show[srv_addr] = info['resultdesc']
|
||||
if info['resultcode'] != 0:
|
||||
status_show[srv_addr] = status_show[srv_addr] + ', ' + info['reason']
|
||||
|
||||
raise ConnectionError(f'行情连接初始化异常, 当前状态:{status_show}')
|
||||
raise ConnectionError(f'行情连接初始化异常, 未获取到市场权限, 当前连接状态:{status_show}')
|
||||
|
||||
market_keys = result.get('markets', [])
|
||||
'''
|
||||
@ -230,14 +268,14 @@ def init(start_local_service = True):
|
||||
srv_addr = info['loginparam']['ip'] + ':' + str(info['loginparam']['port'])
|
||||
error = info['boerror']
|
||||
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt} {srv_addr} {error}')
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt}, {srv_addr} {error}')
|
||||
|
||||
if info['resultcode'] != 0:
|
||||
srv_addr = info['loginparam']['ip'] + ':' + str(info['loginparam']['port'])
|
||||
error = info['resultdesc']
|
||||
reason = info['reason']
|
||||
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt} {srv_addr} {error} {reason}')
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt}, {srv_addr} {error} {reason}')
|
||||
else:
|
||||
status = bson.decode(__dc.fetch_server_list_status())
|
||||
|
||||
@ -250,8 +288,10 @@ def init(start_local_service = True):
|
||||
status_show[srv_addr] = info['boerror']
|
||||
else:
|
||||
status_show[srv_addr] = info['resultdesc']
|
||||
if info['resultcode'] != 0:
|
||||
status_show[srv_addr] = status_show[srv_addr] + ', ' + info['reason']
|
||||
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt}, 当前状态:{status_show}')
|
||||
raise ConnectionError(f'行情连接初始化异常 {mkt}, 未找到支持该市场的连接, 当前连接状态:{status_show}')
|
||||
|
||||
global init_complete
|
||||
init_complete = True
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/xtquant/xtpythonclient.cp313-win_amd64.pyd
Normal file
BIN
src/xtquant/xtpythonclient.cp313-win_amd64.pyd
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -102,6 +102,20 @@ class XtQuantTraderCallback(object):
|
||||
:return:
|
||||
"""
|
||||
pass
|
||||
|
||||
def on_bank_transfer_async_response(self, response):
|
||||
"""
|
||||
:param response: XtBankTransferResponse 对象
|
||||
:return:
|
||||
"""
|
||||
pass
|
||||
|
||||
def on_ctp_internal_transfer_async_response(self, response):
|
||||
"""
|
||||
:param response: XtBankTransferResponse 对象
|
||||
:return:
|
||||
"""
|
||||
pass
|
||||
|
||||
class XtQuantTrader(object):
|
||||
def __init__(self, path, session, callback=None):
|
||||
@ -187,7 +201,13 @@ class XtQuantTrader(object):
|
||||
self.async_client.bindOnQueryPositionStatisticsRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnExportDataRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnSyncTransactionFromExternalRespCallback(on_common_resp_callback)
|
||||
|
||||
self.async_client.bindOnBankTransferRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnQueryBankInfoRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnQueryBankAmountRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnQueryBankTransferStreamRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnQuerySecuAccountRespCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnCtpInternalTransferRespCallback(on_common_resp_callback)
|
||||
|
||||
self.async_client.bindOnQueryAccountInfosCallback(on_common_resp_callback)
|
||||
self.async_client.bindOnQueryAccountStatusCallback(on_common_resp_callback)
|
||||
#########################
|
||||
@ -311,7 +331,27 @@ class XtQuantTrader(object):
|
||||
|
||||
if enable_push:
|
||||
self.async_client.bindOnSmtAppointmentRespCallback(on_common_push_callback_wrapper(2, on_push_SmtAppointmentAsyncResponse))
|
||||
|
||||
def on_push_bankTransferAsyncResponse(seq, resp):
|
||||
callback = self.cbs.pop(seq, None)
|
||||
if callback:
|
||||
resp = _XTTYPE_.XtBankTransferResponse(seq, resp.success, resp.error_msg)
|
||||
callback(resp)
|
||||
return
|
||||
|
||||
if enable_push:
|
||||
self.async_client.bindOnBankTransferRespCallback(on_common_push_callback_wrapper(2, on_push_bankTransferAsyncResponse))
|
||||
|
||||
def on_push_ctpInternalTransferAsyncResponse(seq, resp):
|
||||
callback = self.cbs.pop(seq, None)
|
||||
if callback:
|
||||
resp = _XTTYPE_.XtBankTransferResponse(seq, resp.success, resp.error_msg)
|
||||
callback(resp)
|
||||
return
|
||||
|
||||
if enable_push:
|
||||
self.async_client.bindOnCtpInternalTransferRespCallback(on_common_push_callback_wrapper(2, on_push_ctpInternalTransferAsyncResponse))
|
||||
|
||||
########################
|
||||
|
||||
def common_op_async_with_seq(self, seq, callable, callback):
|
||||
@ -433,6 +473,7 @@ class XtQuantTrader(object):
|
||||
req.m_strOrderRemarkNew = order_remark
|
||||
req.m_dOrderAmount = order_volume
|
||||
req.m_strStockCode1 = stock_code
|
||||
req.m_strAccountID1 = account.account_id
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.queuing_order_seq.add(seq)
|
||||
@ -466,6 +507,7 @@ class XtQuantTrader(object):
|
||||
req.m_strOrderRemarkNew = order_remark
|
||||
req.m_dOrderAmount = order_volume
|
||||
req.m_strStockCode1 = stock_code
|
||||
req.m_strAccountID1 = account.account_id
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.queuing_order_seq.add(seq)
|
||||
@ -1474,3 +1516,257 @@ class XtQuantTrader(object):
|
||||
result = json.loads(resp)
|
||||
return result
|
||||
|
||||
def bank_transfer_in(self, account, bank_no, bank_account, balance, bank_pwd = '', fund_pwd = ''):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:param balance - float: 转账金额
|
||||
:param bank_pwd - str: 银行账号密码
|
||||
:param fund_pwd - str: 资金账号密码
|
||||
:return: 返回转账结果
|
||||
"""
|
||||
req = _XTQC_.BankTransferReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.fund_pwd = str(fund_pwd)
|
||||
req.direction = 501
|
||||
req.bank_account = str(bank_account)
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_pwd = str(bank_pwd)
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
result = self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.bankTransferWithSeq, seq, req)
|
||||
)
|
||||
return result.success, result.msg
|
||||
|
||||
def bank_transfer_in_async(self, account, bank_no, bank_account, balance, bank_pwd = '', fund_pwd = ''):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:param balance - float: 转账金额
|
||||
:param bank_pwd - str: 银行账号密码
|
||||
:param fund_pwd - str: 资金账号密码
|
||||
:return: 返回请求序号, 成功请求后的序号为大于0的正整数, 如果为-1表示请求失败
|
||||
"""
|
||||
req = _XTQC_.BankTransferReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.fund_pwd = str(fund_pwd)
|
||||
req.direction = 501
|
||||
req.bank_account = str(bank_account)
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_pwd = str(bank_pwd)
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.cbs[seq] = self.callback.on_bank_transfer_async_response
|
||||
self.async_client.bankTransferWithSeq(seq, req)
|
||||
return seq
|
||||
|
||||
def bank_transfer_out(self, account, bank_no, bank_account, balance, bank_pwd = '', fund_pwd = ''):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:param balance - float: 转账金额
|
||||
:param bank_pwd - str: 银行账号密码
|
||||
:param fund_pwd - str: 资金账号密码
|
||||
:return: 返回转账结果
|
||||
"""
|
||||
req = _XTQC_.BankTransferReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.fund_pwd = str(fund_pwd)
|
||||
req.direction = 502
|
||||
req.bank_account = str(bank_account)
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_pwd = str(bank_pwd)
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
result = self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.bankTransferWithSeq, seq, req)
|
||||
)
|
||||
return result.success, result.msg
|
||||
|
||||
def bank_transfer_out_async(self, account, bank_no, bank_account, balance, bank_pwd = '', fund_pwd = ''):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:param balance - float: 转账金额
|
||||
:param bank_pwd - str: 银行账号密码
|
||||
:param fund_pwd - str: 资金账号密码
|
||||
:return: 返回请求序号, 成功请求后的序号为大于0的正整数, 如果为-1表示请求失败
|
||||
"""
|
||||
req = _XTQC_.BankTransferReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.fund_pwd = str(fund_pwd)
|
||||
req.direction = 502
|
||||
req.bank_account = str(bank_account)
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_pwd = str(bank_pwd)
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.cbs[seq] = self.callback.on_bank_transfer_async_response
|
||||
self.async_client.bankTransferWithSeq(seq, req)
|
||||
return seq
|
||||
|
||||
def query_bank_info(self, account):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:return: 返回BankInfo结构组成的list
|
||||
"""
|
||||
req = _XTQC_.QueryBankInfoReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
return self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.queryBankInfoWithSeq, seq, req)
|
||||
)
|
||||
|
||||
def query_bank_amount(self, account, bank_no, bank_account, bank_pwd):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:param bank_pwd - str: 银行账号密码
|
||||
:return: 返回BankAmount组成的list
|
||||
"""
|
||||
req = _XTQC_.QueryBankAmountReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_account = str(bank_account)
|
||||
req.bank_pwd = str(bank_pwd)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
return self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.queryBankAmountWithSeq, seq, req)
|
||||
)
|
||||
|
||||
def query_bank_transfer_stream(self, account, start_date, end_date, bank_no = '', bank_account = ''):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:param start_date - str: 查询起始日期,如'20241125'
|
||||
:param end_date - str: 查询截至日期,如'20241129'
|
||||
:param bank_no - str: 银行编号,可通过query_bank_info查回
|
||||
:param bank_account - str: 银行账号
|
||||
:return: 返回BankTransferStream组成的list
|
||||
"""
|
||||
req = _XTQC_.QueryBankTransferStreamReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
req.start_date = str(start_date)
|
||||
req.end_date = str(end_date)
|
||||
req.bank_no = str(bank_no)
|
||||
req.bank_account = str(bank_account)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
return self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.queryBankTransferStreamWithSeq, seq, req)
|
||||
)
|
||||
|
||||
def query_secu_account(self, account):
|
||||
"""
|
||||
:param account - StockAccount: 资金账号
|
||||
:return: 返回SecuAccount结构组成的list
|
||||
"""
|
||||
req = _XTQC_.QuerySecuAccountReq()
|
||||
req.account_type = account.account_type
|
||||
req.account_id = account.account_id
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
return self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.querySecuAccountWithSeq, seq, req)
|
||||
)
|
||||
|
||||
def ctp_transfer_option_to_future(self, opt_account_id, ft_account_id, balance):
|
||||
"""
|
||||
:param opt_account_id - string: 期权资金账号
|
||||
:param ft_account_id - string: 期货资金账号
|
||||
:param balance - float: 转账金额
|
||||
:return: 返回内转结果
|
||||
"""
|
||||
req = _XTQC_.CtpInternalTransferReq()
|
||||
req.opt_account_id = str(opt_account_id)
|
||||
req.ft_account_id = str(ft_account_id)
|
||||
req.direction = 515
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
result = self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.ctpInternalTransferWithSeq, seq, req)
|
||||
)
|
||||
return result.success, result.msg
|
||||
|
||||
def ctp_transfer_option_to_future_async(self, opt_account_id, ft_account_id, balance):
|
||||
"""
|
||||
:param opt_account_id - string: 期权资金账号
|
||||
:param ft_account_id - string: 期货资金账号
|
||||
:param balance - float: 转账金额
|
||||
:return: 返回请求序号, 成功请求后的序号为大于0的正整数, 如果为-1表示请求失败
|
||||
"""
|
||||
req = _XTQC_.CtpInternalTransferReq()
|
||||
req.opt_account_id = str(opt_account_id)
|
||||
req.ft_account_id = str(ft_account_id)
|
||||
req.direction = 515
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.cbs[seq] = self.callback.on_ctp_internal_transfer_async_response
|
||||
self.async_client.ctpInternalTransferWithSeq(seq, req)
|
||||
return seq
|
||||
|
||||
def ctp_transfer_future_to_option(self, opt_account_id, ft_account_id, balance):
|
||||
"""
|
||||
:param opt_account_id - string: 期权资金账号
|
||||
:param ft_account_id - string: 期货资金账号
|
||||
:param balance - float: 转账金额
|
||||
:return: 返回内转结果
|
||||
"""
|
||||
req = _XTQC_.CtpInternalTransferReq()
|
||||
req.opt_account_id = str(opt_account_id)
|
||||
req.ft_account_id = str(ft_account_id)
|
||||
req.direction = 516
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
result = self.common_op_sync_with_seq(
|
||||
seq,
|
||||
(self.async_client.ctpInternalTransferWithSeq, seq, req)
|
||||
)
|
||||
return result.success, result.msg
|
||||
|
||||
def ctp_transfer_future_to_option_async(self, opt_account_id, ft_account_id, balance):
|
||||
"""
|
||||
:param opt_account_id - string: 期权资金账号
|
||||
:param ft_account_id - string: 期货资金账号
|
||||
:param balance - float: 转账金额
|
||||
:return: 返回请求序号, 成功请求后的序号为大于0的正整数, 如果为-1表示请求失败
|
||||
"""
|
||||
req = _XTQC_.CtpInternalTransferReq()
|
||||
req.opt_account_id = str(opt_account_id)
|
||||
req.ft_account_id = str(ft_account_id)
|
||||
req.direction = 516
|
||||
req.balance = float(balance)
|
||||
|
||||
seq = self.async_client.nextSeq()
|
||||
self.cbs[seq] = self.callback.on_ctp_internal_transfer_async_response
|
||||
self.async_client.ctpInternalTransferWithSeq(seq, req)
|
||||
return seq
|
||||
|
||||
|
@ -36,13 +36,14 @@ class XtAsset(object):
|
||||
"""
|
||||
迅投股票账号资金结构
|
||||
"""
|
||||
def __init__(self, account_id, cash, frozen_cash, market_value, total_asset):
|
||||
def __init__(self, account_id, cash, frozen_cash, market_value, total_asset, fetch_balance):
|
||||
"""
|
||||
:param account_id: 资金账号
|
||||
:param cash: 可用
|
||||
:param frozen_cash: 冻结
|
||||
:param market_value: 持仓市值
|
||||
:param total_asset: 总资产
|
||||
:param fetch_balance: 可取资金
|
||||
"""
|
||||
self.account_type = _XTCONST_.SECURITY_ACCOUNT
|
||||
self.account_id = account_id
|
||||
@ -50,6 +51,7 @@ class XtAsset(object):
|
||||
self.frozen_cash = frozen_cash
|
||||
self.market_value = market_value
|
||||
self.total_asset = total_asset
|
||||
self.fetch_balance = fetch_balance
|
||||
|
||||
|
||||
class XtOrder(object):
|
||||
@ -60,7 +62,7 @@ class XtOrder(object):
|
||||
order_id, order_sysid, order_time, order_type, order_volume,
|
||||
price_type, price, traded_volume, traded_price,
|
||||
order_status, status_msg, strategy_name, order_remark, direction, offset_flag,
|
||||
stock_code1):
|
||||
secu_account, instrument_name):
|
||||
"""
|
||||
:param account_id: 资金账号
|
||||
:param stock_code: 证券代码, 例如"600000.SH"
|
||||
@ -79,6 +81,8 @@ class XtOrder(object):
|
||||
:param order_remark: 委托备注
|
||||
:param direction: 多空, 股票不需要
|
||||
:param offset_flag: 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等
|
||||
:param secu_account: 股东代码
|
||||
:param instrument_name: 证券名称
|
||||
"""
|
||||
self.account_type = _XTCONST_.SECURITY_ACCOUNT
|
||||
self.account_id = account_id
|
||||
@ -98,7 +102,8 @@ class XtOrder(object):
|
||||
self.order_remark = order_remark
|
||||
self.direction = direction
|
||||
self.offset_flag = offset_flag
|
||||
self.stock_code1 = stock_code1
|
||||
self.secu_account = secu_account
|
||||
self.instrument_name = instrument_name
|
||||
|
||||
|
||||
class XtTrade(object):
|
||||
@ -108,7 +113,7 @@ class XtTrade(object):
|
||||
def __init__(self, account_id, stock_code,
|
||||
order_type, traded_id, traded_time, traded_price, traded_volume, traded_amount,
|
||||
order_id, order_sysid, strategy_name, order_remark, direction, offset_flag,
|
||||
stock_code1, commission):
|
||||
commission, secu_account, instrument_name):
|
||||
"""
|
||||
:param account_id: 资金账号
|
||||
:param stock_code: 证券代码, 例如"600000.SH"
|
||||
@ -125,6 +130,8 @@ class XtTrade(object):
|
||||
:param direction: 多空, 股票不需要
|
||||
:param offset_flag: 交易操作,用此字段区分股票买卖,期货开、平仓,期权买卖等
|
||||
:param commission: 手续费
|
||||
:param secu_account: 股东代码
|
||||
:param instrument_name: 证券名称
|
||||
"""
|
||||
self.account_type = _XTCONST_.SECURITY_ACCOUNT
|
||||
self.account_id = account_id
|
||||
@ -141,8 +148,9 @@ class XtTrade(object):
|
||||
self.order_remark = order_remark
|
||||
self.direction = direction
|
||||
self.offset_flag = offset_flag
|
||||
self.stock_code1 = stock_code1
|
||||
self.commission = commission
|
||||
self.secu_account = secu_account
|
||||
self.instrument_name = instrument_name
|
||||
|
||||
|
||||
class XtPosition(object):
|
||||
@ -152,7 +160,7 @@ class XtPosition(object):
|
||||
def __init__(self, account_id, stock_code,
|
||||
volume, can_use_volume, open_price, market_value,
|
||||
frozen_volume, on_road_volume, yesterday_volume, avg_price, direction,
|
||||
stock_code1):
|
||||
last_price, profit_rate, secu_account, instrument_name):
|
||||
"""
|
||||
:param account_id: 资金账号
|
||||
:param stock_code: 证券代码, 例如"600000.SH"
|
||||
@ -165,6 +173,10 @@ class XtPosition(object):
|
||||
:param yesterday_volume: 昨夜拥股
|
||||
:param avg_price: 成本价
|
||||
:param direction: 多空, 股票不需要
|
||||
:param last_price: 当前价
|
||||
:param profit_rate: 盈亏比例
|
||||
:param secu_account: 股东代码
|
||||
:param instrument_name: 证券名称
|
||||
"""
|
||||
self.account_type = _XTCONST_.SECURITY_ACCOUNT
|
||||
self.account_id = account_id
|
||||
@ -178,7 +190,10 @@ class XtPosition(object):
|
||||
self.yesterday_volume = yesterday_volume
|
||||
self.avg_price = avg_price
|
||||
self.direction = direction
|
||||
self.stock_code1 = stock_code1
|
||||
self.last_price = last_price
|
||||
self.profit_rate = profit_rate
|
||||
self.secu_account = secu_account
|
||||
self.instrument_name = instrument_name
|
||||
|
||||
|
||||
class XtOrderError(object):
|
||||
@ -371,3 +386,18 @@ class XtSmtAppointmentResponse(object):
|
||||
self.success = success
|
||||
self.msg = msg
|
||||
self.apply_id = apply_id
|
||||
|
||||
class XtBankTransferResponse(object):
|
||||
"""
|
||||
迅投银证转账异步接口的反馈
|
||||
"""
|
||||
def __init__(self, seq, success, msg):
|
||||
"""
|
||||
:param seq: 异步请求序号
|
||||
:param success: 是否成功
|
||||
:param msg: 反馈信息
|
||||
"""
|
||||
self.seq = seq
|
||||
self.success = success
|
||||
self.msg = msg
|
||||
|
||||
|
@ -20,12 +20,22 @@ def connect(ip = '', port = None, remember_if_success = True):
|
||||
|
||||
from . import xtconn
|
||||
|
||||
start_port = 0
|
||||
end_port = 65535
|
||||
|
||||
if isinstance(port, tuple):
|
||||
start_port = port[0]
|
||||
end_port = port[1]
|
||||
|
||||
if start_port > end_port:
|
||||
start_port, end_port = end_port, start_port
|
||||
|
||||
if not ip:
|
||||
ip = 'localhost'
|
||||
|
||||
if port:
|
||||
server_list = [f'{ip}:{port}']
|
||||
__client = xtconn.connect_any(server_list)
|
||||
__client = xtconn.connect_any(server_list, start_port, end_port)
|
||||
else:
|
||||
server_list = xtconn.scan_available_server_addr()
|
||||
|
||||
@ -33,7 +43,7 @@ def connect(ip = '', port = None, remember_if_success = True):
|
||||
if not default_addr in server_list:
|
||||
server_list.append(default_addr)
|
||||
|
||||
__client = xtconn.connect_any(server_list)
|
||||
__client = xtconn.connect_any(server_list, start_port, end_port)
|
||||
|
||||
if not __client or not __client.is_connected():
|
||||
raise Exception("无法连接xtquant服务,请检查QMT-投研版或QMT-极简版是否开启")
|
||||
@ -324,3 +334,51 @@ def push_xtview_data(data_type, time, datas):
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
class UIPanel:
|
||||
code = ''
|
||||
period = '1d'
|
||||
figures = []
|
||||
startX = -1
|
||||
startY = -1
|
||||
width = -1
|
||||
height = -1
|
||||
|
||||
def __init__(self, code, period = '1d', figures = [], startX = -1, startY = -1, width = -1, height = -1):
|
||||
self.code = code
|
||||
self.period = period
|
||||
self.figures = figures
|
||||
self.startX = startX
|
||||
self.startY = startY
|
||||
self.width = width
|
||||
self.height = height
|
||||
|
||||
|
||||
def apply_ui_panel_control(info: list):
|
||||
'''
|
||||
控制主图界面展示
|
||||
用法:
|
||||
apply_ui_panel_control(info:list[UIPanel])
|
||||
|
||||
参数:
|
||||
info,list[UIPanel]类型,每个UIPanel为一个行情页面,code为必填项
|
||||
code:str,代码市场,为必填项
|
||||
period:str,周期,'tick','1m','5m','1d'等
|
||||
figures:list,内部存放附图指标名称
|
||||
startX: int, 距屏幕左上角横坐标的位置
|
||||
startY: int, 距屏幕左上角纵坐标的位置
|
||||
width: int, 宽度
|
||||
height: int, 高度
|
||||
|
||||
示例:
|
||||
from xtquant import xtview
|
||||
x=xtview.UIPanel('600000.SH','1d', figures=[{'ma': {'n1': 5}}])
|
||||
y=xtview.UIPanel(code='600030.SH',period='1m',startX=-1,startY=-1, width=-1, height=-1)
|
||||
xtview.apply_ui_panel_control([x,y])
|
||||
'''
|
||||
data = []
|
||||
for i in info:
|
||||
data.append(i.__dict__)
|
||||
|
||||
result = _BSON_call_common(get_client().commonControl, 'applyuipanelcontrol', {'data': data})
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user