diff --git a/vn.ib/vnib/Visual Studio 2013/settings/Windows Azure Subscriptions.xml b/vn.ib/vnib/Visual Studio 2013/settings/Windows Azure Subscriptions.xml
index 17955473..ee4dca4d 100644
--- a/vn.ib/vnib/Visual Studio 2013/settings/Windows Azure Subscriptions.xml
+++ b/vn.ib/vnib/Visual Studio 2013/settings/Windows Azure Subscriptions.xml
@@ -1,5 +1,5 @@
- AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAhuIZgFnYcU6wvp5DI4FozAAAAAACAAAAAAAQZgAAAAEAACAAAAAEnSq6DlHvPj2amWbgMtqa1m2ELpAnBlEJyoRyDjDxsgAAAAAOgAAAAAIAACAAAACrX89865S5WWunExh6aF71QHKHa87uVQVvsnn0+riPcRAAAABDBs23sQKZAf7wk26UVETjQAAAAEpIyMmA+AvwZxOZekWx/EcDwGZ23fzLHsoD0smvLK34lZolgZJP/DdmHnM7XHV5qUeUY/Ujmea+emXzxQ8R5Wo=
+ AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAhuIZgFnYcU6wvp5DI4FozAAAAAACAAAAAAAQZgAAAAEAACAAAADbHX9MGY1db5F4b+OyG6c/B78GOMBlEj6iQbaFcLZJCAAAAAAOgAAAAAIAACAAAADn7kKZgsW4pBHXuVEmex+oXTGG5hNRZGiXkpNGYXsFPBAAAACHqHiPVtiM03bftyY0V78iQAAAACpQVRyEMAhwGyl6Ekto5M6tZRU4Nu9lGQ6I+0d85GOVYFPsld6n8j1heCXRQ5facD4R4R9fqjq858G/Iyjl0vQ=
\ No newline at end of file
diff --git a/vn.ksgold/ksgoldapi/old/goldtradeapi.dll b/vn.ksgold/ksgoldapi/old/goldtradeapi.dll
deleted file mode 100644
index 82b3c48b..00000000
Binary files a/vn.ksgold/ksgoldapi/old/goldtradeapi.dll and /dev/null differ
diff --git a/vn.ksgold/ksgoldapi/old/goldtradeapi.lib b/vn.ksgold/ksgoldapi/old/goldtradeapi.lib
deleted file mode 100644
index 04975ea4..00000000
Binary files a/vn.ksgold/ksgoldapi/old/goldtradeapi.lib and /dev/null differ
diff --git a/vn.rpc/testClient.py b/vn.rpc/testClient.py
new file mode 100644
index 00000000..8e04c810
--- /dev/null
+++ b/vn.rpc/testClient.py
@@ -0,0 +1,33 @@
+# encoding: UTF-8
+
+from time import sleep
+
+from vnrpc import RpcClient
+
+
+########################################################################
+class TestClient(RpcClient):
+ """"""
+
+ #----------------------------------------------------------------------
+ def __init__(self, reqAddress, subAddress):
+ """Constructor"""
+ super(TestClient, self).__init__(reqAddress, subAddress)
+
+ #----------------------------------------------------------------------
+ def callback(self, data):
+ """回调函数实现"""
+ print 'client received:', data
+
+
+if __name__ == '__main__':
+ reqAddress = 'tcp://localhost:2014'
+ subAddress = 'tcp://localhost:0602'
+
+ tc = TestClient(reqAddress, subAddress)
+
+ tc.start()
+
+ while 1:
+ print tc.add(1, 3)
+ sleep(2)
\ No newline at end of file
diff --git a/vn.rpc/testServer.py b/vn.rpc/testServer.py
new file mode 100644
index 00000000..09146189
--- /dev/null
+++ b/vn.rpc/testServer.py
@@ -0,0 +1,37 @@
+# encoding: UTF-8
+
+from time import sleep, time
+
+from vnrpc import RpcServer
+
+
+########################################################################
+class TestServer(RpcServer):
+ """测试服务器"""
+
+ #----------------------------------------------------------------------
+ def __init__(self, repAddress, pubAddress):
+ """Constructor"""
+ super(TestServer, self).__init__(repAddress, pubAddress)
+
+ self.register(self.add)
+
+ #----------------------------------------------------------------------
+ def add(self, a, b):
+ """测试函数"""
+ print 'receiving: %s, %s' % (a,b)
+ return a + b
+
+
+if __name__ == '__main__':
+ repAddress = 'tcp://*:2014'
+ pubAddress = 'tcp://*:0602'
+
+ ts = TestServer(repAddress, pubAddress)
+ ts.start()
+
+ while 1:
+ content = 'current server time is %s' % time()
+ print content
+ ts.publish(content)
+ sleep(2)
\ No newline at end of file
diff --git a/vn.rpc/vnrpc.py b/vn.rpc/vnrpc.py
new file mode 100644
index 00000000..ed89d53b
--- /dev/null
+++ b/vn.rpc/vnrpc.py
@@ -0,0 +1,190 @@
+# encoding: UTF-8
+
+import threading
+import traceback
+
+import zmq
+from msgpack import packb, unpackb
+
+
+########################################################################
+class RpcServer(object):
+ """RPC服务器"""
+
+ #----------------------------------------------------------------------
+ def __init__(self, repAddress, pubAddress):
+ """Constructor"""
+ # 保存功能函数的字典,key是函数名,value是函数对象
+ self.__functions = {}
+
+ # zmq端口相关
+ self.__context = zmq.Context()
+
+ self.__socketREP = self.__context.socket(zmq.REP) # 请求回应socket
+ self.__socketREP.bind(repAddress)
+
+ self.__socketPUB = self.__context.socket(zmq.PUB) # 数据广播socket
+ self.__socketPUB.bind(pubAddress)
+
+ # 工作线程相关
+ self.__active = False # 服务器的工作状态
+ self.__thread = threading.Thread(target=self.__run) # 服务器的工作线程
+
+ #----------------------------------------------------------------------
+ def start(self):
+ """启动服务器"""
+ # 将服务器设为启动
+ self.__active = True
+
+ # 启动工作线程
+ self.__thread.start()
+
+ #----------------------------------------------------------------------
+ def stop(self):
+ """停止服务器"""
+ # 将服务器设为停止
+ self.__active = False
+
+ # 等待工作线程退出
+ self.__thread.join()
+
+ #----------------------------------------------------------------------
+ def __run(self):
+ """连续运行函数"""
+ while self.__active:
+ # 从请求响应socket收取请求数据
+ reqb = self.__socketREP.recv()
+
+ # 用msgpack解包
+ req = unpackb(reqb)
+
+ # 获取函数名和参数
+ name, args, kwargs = req
+
+ # 获取引擎中对应的函数对象,并执行调用,如果有异常则捕捉后返回
+ try:
+ func = self.__functions[name]
+ r = func(*args, **kwargs)
+ rep = [True, r]
+ except Exception as e:
+ rep = [False, traceback.format_exc()]
+
+ # 用msgpack打包
+ repb = packb(rep)
+
+ # 通过请求响应socket返回调用结果
+ self.__socketREP.send(repb)
+
+ #----------------------------------------------------------------------
+ def publish(self, data):
+ """广播推送数据"""
+ # 使用msgpack序列化数据
+ datab = packb(data)
+
+ # 通过广播socket发送数据
+ self.__socketPUB.send(datab)
+
+ #----------------------------------------------------------------------
+ def register(self, func):
+ """注册函数"""
+ self.__functions[func.__name__] = func
+
+
+########################################################################
+class RpcClient(object):
+ """RPC客户端"""
+
+ #----------------------------------------------------------------------
+ def __init__(self, reqAddress, subAddress):
+ """Constructor"""
+ # zmq端口相关
+ self.__reqAddress = reqAddress
+ self.__subAddress = subAddress
+
+ self.__context = zmq.Context()
+ self.__socketREQ = self.__context.socket(zmq.REQ) # 请求发出socket
+ self.__socketSUB = self.__context.socket(zmq.SUB) # 广播订阅socket
+
+ # 工作线程相关,用于处理服务器推送的数据
+ self.__active = False # 客户端的工作状态
+ self.__thread = threading.Thread(target=self.__run) # 客户端的工作线程
+
+ #----------------------------------------------------------------------
+ def __getattr__(self, name):
+ """实现远程调用功能"""
+ # 执行远程调用任务
+ def dorpc(*args, **kwargs):
+ # 生成请求
+ req = [name, args, kwargs]
+
+ # 用msgpack打包请求
+ reqb = packb(req)
+
+ # 发送请求并等待回应
+ self.__socketREQ.send(reqb)
+ repb = self.__socketREQ.recv()
+
+ # 用msgpack解包回应
+ rep = unpackb(repb)
+
+ # 若正常则返回结果,调用失败则触发异常
+ if rep[0]:
+ return rep[1]
+ else:
+ raise RemoteException, rep[1]
+
+ return dorpc
+
+ #----------------------------------------------------------------------
+ def start(self):
+ """启动客户端"""
+ # 连接端口
+ self.__socketREQ.connect(self.__reqAddress)
+
+ self.__socketSUB.connect(self.__subAddress)
+ self.__socketSUB.setsockopt(zmq.SUBSCRIBE, '') # 订阅全部数据,不做过滤
+
+ # 将服务器设为启动
+ self.__active = True
+
+ # 启动工作线程
+ self.__thread.start()
+
+ #----------------------------------------------------------------------
+ def stop(self):
+ """停止客户端"""
+ # 将客户端设为停止
+ self.__active = False
+
+ # 等待工作线程退出
+ self.__thread.join()
+
+ #----------------------------------------------------------------------
+ def __run(self):
+ """连续运行函数"""
+ while self.__active:
+ # 从订阅socket收取广播数据
+ datab = self.__socketSUB.recv()
+
+ # 用msgpack解包
+ data = unpackb(datab)
+
+ # 调用回调函数处理
+ self.callback(data)
+
+ #----------------------------------------------------------------------
+ def callback(self, data):
+ """回调函数,必须由用户实现"""
+ raise NotImplementedError
+
+
+########################################################################
+class RemoteException(Exception):
+ """RPC远程异常"""
+
+ #----------------------------------------------------------------------
+ def __init__(self):
+ """Constructor"""
+ pass
+
+
\ No newline at end of file
diff --git a/vn.trader/uiMainWindow.py b/vn.trader/uiMainWindow.py
index 6e77699c..d48dd06b 100644
--- a/vn.trader/uiMainWindow.py
+++ b/vn.trader/uiMainWindow.py
@@ -65,6 +65,9 @@ class MainWindow(QtGui.QMainWindow):
connectLtsAction = QtGui.QAction(u'连接LTS', self)
connectLtsAction.triggered.connect(self.connectLts)
+ connectXtpAction = QtGui.QAction(u'连接XTP', self)
+ connectXtpAction.triggered.connect(self.connectXtp)
+
connectKsotpAction = QtGui.QAction(u'连接金仕达期权', self)
connectKsotpAction.triggered.connect(self.connectKsotp)
@@ -125,6 +128,8 @@ class MainWindow(QtGui.QMainWindow):
sysMenu.addAction(connectCtpAction)
if 'LTS' in self.mainEngine.gatewayDict:
sysMenu.addAction(connectLtsAction)
+ if 'XTP' in self.mainEngine.gatewayDict:
+ sysMenu.addAction(connectXtpAction)
if 'FEMAS' in self.mainEngine.gatewayDict:
sysMenu.addAction(connectFemasAction)
if 'XSPEED' in self.mainEngine.gatewayDict:
@@ -204,6 +209,11 @@ class MainWindow(QtGui.QMainWindow):
"""连接LTS接口"""
self.mainEngine.connect('LTS')
+ #----------------------------------------------------------------------
+ def connectXtp(self):
+ """连接XTP接口"""
+ self.mainEngine.connect('XTP')
+
#----------------------------------------------------------------------
def connectKsotp(self):
"""连接金仕达期权接口"""
diff --git a/vn.trader/vtEngine.py b/vn.trader/vtEngine.py
index 583d4fc9..662d0315 100644
--- a/vn.trader/vtEngine.py
+++ b/vn.trader/vtEngine.py
@@ -61,6 +61,13 @@ class MainEngine(object):
except Exception, e:
print e
+ try:
+ from xtpGateway.xtpGateway import XtpGateway
+ self.addGateway(XtpGateway, 'XTP')
+ self.gatewayDict['XTP'].setQryEnabled(True)
+ except Exception, e:
+ print e
+
try:
from ksotpGateway.ksotpGateway import KsotpGateway
self.addGateway(KsotpGateway, 'KSOTP')
diff --git a/vn.xtp/pyscript/generate_data_type.py b/vn.xtp/pyscript/generate_data_type.py
deleted file mode 100644
index 7287aefc..00000000
--- a/vn.xtp/pyscript/generate_data_type.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# encoding: UTF-8
-
-__author__ = u'用Python的交易员'
-
-# C++和python类型的映射字典
-type_dict = {
- 'int': 'int',
- 'char': 'string',
- 'double': 'float',
- 'short': 'int',
- 'XTP_EXCHANGE_TYPE': 'int'
-}
-
-
-#----------------------------------------------------------------------
-def process_line(line):
- """处理每行"""
- # 注释
- if line[:3] == '///': # 注释
- py_line = process_comment(line)
- # 枚举
- elif 'enum' in line:
- py_line = process_enum(line)
- # 常量
- elif '#define' in line:
- py_line = process_define(line)
- # 类型定义
- elif 'typedef' in line:
- py_line = process_typedef(line)
- # 空行
- elif line == '\n':
- py_line = line
- # 其他忽略
- else:
- py_line = ''
-
- return py_line
-
-#----------------------------------------------------------------------
-def process_enum(line):
- """处理枚举"""
- content = line.replace('\n', '').split(' ')
- type_ = 'int'
- keyword = content[1]
- py_line = 'typedefDict["%s"] = "%s"\n' % (keyword, type_)
-
- return py_line
-
-#----------------------------------------------------------------------
-def process_comment(line):
- """处理注释"""
- py_line = line.replace('/', '#')
-
- return py_line
-
-#----------------------------------------------------------------------
-def process_typedef(line):
- """处理类型定义"""
- content = line.split(' ')
- type_ = type_dict[content[1]]
-
- keyword = content[2]
- if '[' in keyword:
- i = keyword.index('[')
- keyword = keyword[:i]
- else:
- keyword = keyword.replace(';\n', '') # 删除行末分号
-
- if 'char' in line:
- if '[' in line:
- type_ = 'string'
- else:
- type_ = 'char'
-
- py_line = 'typedefDict["%s"] = "%s"\n' % (keyword, type_)
-
- return py_line
-
-#----------------------------------------------------------------------
-def process_define(line):
- """处理常量"""
- content = line.split(' ')
- constant = content[1]
-
- if len(content)>2:
- value = content[-1]
- #py_line = 'defineDict["%s"] = %s' % (constant, value)
- py_line = '%s = %s' %(constant, value)
- else:
- py_line = ''
-
- return py_line
-
-#----------------------------------------------------------------------
-def replaceTabs(f):
- """把Tab用4个空格替代"""
- l = []
- for line in f:
- line.replace('\t', ' ')
- l.append(line)
- return l
-
-#----------------------------------------------------------------------
-def main():
- """主函数"""
- fcpp = open('xtp_api_data_type.h','r')
- fpy = open('xtp_data_type.py', 'w')
-
- fpy.write('# encoding: UTF-8\n')
- fpy.write('\n')
- fpy.write('typedefDict = {}\n')
- fpy.write('\n')
-
- lcpp = replaceTabs(fcpp)
- for n, line in enumerate(lcpp):
- py_line = process_line(line)
- if py_line:
- fpy.write(py_line.decode('gbk').encode('utf-8'))
-
- fcpp.close()
- fpy.close()
-
- print u'data_type.py生成过程完成'
-
-
-if __name__ == '__main__':
- main()
-
diff --git a/vn.xtp/pyscript/generate_md_functions.py b/vn.xtp/pyscript/generate_md_functions.py
deleted file mode 100644
index 5dd3bebb..00000000
--- a/vn.xtp/pyscript/generate_md_functions.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# encoding: UTF-8
-
-__author__ = 'CHENXY'
-
-from string import join
-from lts_struct import structDict
-
-
-
-def processCallBack(line):
- orignalLine = line
- line = line.replace('\tvirtual void ', '') # 删除行首的无效内容
- line = line.replace('{};\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- cbName = content[0] # 回调函数名称
-
- cbArgs = content[1] # 回调函数参数
- if cbArgs[-1] == ' ':
- cbArgs = cbArgs.replace(') ', '')
- else:
- cbArgs = cbArgs.replace(')', '')
-
- cbArgsList = cbArgs.split(', ') # 将每个参数转化为列表
-
- cbArgsTypeList = []
- cbArgsValueList = []
-
- for arg in cbArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- cbArgsTypeList.append(content[0]) # 参数类型列表
- cbArgsValueList.append(content[1]) # 参数数据列表
-
- createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine)
- createProcess(cbName, cbArgsTypeList, cbArgsValueList)
-
- # 生成.h文件中的process部分
- process_line = 'void process' + cbName[2:] + '(Task *task);\n'
- fheaderprocess.write(process_line)
- fheaderprocess.write('\n')
-
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last) {};\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last) {};\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data) {};\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error) {};\n'
- else:
- on_line = ''
- fheaderon.write(on_line)
- fheaderon.write('\n')
-
- # 生成封装部分
- createWrap(cbName)
-
-
-#----------------------------------------------------------------------
-def createWrap(cbName):
- """在Python封装段代码中进行处理"""
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(error, id, last);\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(data, error, id, last);\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data)\n'
- override_line = '("on' + cbName[2:] + '")(data);\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error)\n'
- override_line = '("on' + cbName[2:] + '")(data, error);\n'
- else:
- on_line = ''
-
- if on_line is not '':
- fwrap.write(on_line)
- fwrap.write('{\n')
- fwrap.write('\ttry\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tthis->get_override'+override_line)
- fwrap.write('\t}\n')
- fwrap.write('\tcatch (error_already_set const &)\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tPyErr_Print();\n')
- fwrap.write('\t}\n')
- fwrap.write('};\n')
- fwrap.write('\n')
-
-
-
-def createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine):
- # 从回调函数生成任务对象,并放入队列
- funcline = orignalLine.replace('\tvirtual void ', 'void ' + apiName + '::')
- funcline = funcline.replace('{};', '')
-
- ftask.write(funcline)
- ftask.write('{\n')
- ftask.write("\tTask* task = new Task();\n")
-
- ftask.write("\ttask->task_name = " + cbName.upper() + ";\n")
-
- # define常量
- global define_count
- fdefine.write("#define " + cbName.upper() + ' ' + str(define_count) + '\n')
- define_count = define_count + 1
-
- # switch段代码
- fswitch.write("case " + cbName.upper() + ':\n')
- fswitch.write("{\n")
- fswitch.write("\tthis->" + cbName.replace('On', 'process') + '(task);\n')
- fswitch.write("\tbreak;\n")
- fswitch.write("}\n")
- fswitch.write("\n")
-
- for i, type_ in enumerate(cbArgsTypeList):
- if type_ == 'int':
- ftask.write("\ttask->task_id = " + cbArgsValueList[i] + ";\n")
- elif type_ == 'bool':
- ftask.write("\ttask->task_last = " + cbArgsValueList[i] + ";\n")
- elif 'RspInfoField' in type_:
- ftask.write("\n")
- ftask.write("\tif (pRspInfo)\n")
- ftask.write("\t{\n")
- ftask.write("\t\t" + type_ + ' *task_error = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_error = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_error = task_error;\n")
- ftask.write("\t}\n")
- ftask.write("\n")
- else:
- ftask.write("\n")
- ftask.write("\tif (" + cbArgsValueList[i][1:] + ")\n")
- ftask.write("\t{\n")
-
- ftask.write("\t\t" + type_ + ' *task_data = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_data = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_data = task_data;\n")
- ftask.write("\t}\n")
-
- ftask.write("\tthis->task_queue.push(task);\n")
- ftask.write("};\n")
- ftask.write("\n")
-
-
-def createProcess(cbName, cbArgsTypeList, cbArgsValueList):
- # 从队列中提取任务,并转化为python字典
- fprocess.write("void " + apiName + '::' + cbName.replace('On', 'process') + '(Task *task)' + "\n")
- fprocess.write("{\n")
- fprocess.write("\tPyLock lock;\n")
-
- onArgsList = []
-
- for i, type_ in enumerate(cbArgsTypeList):
- if 'RspInfoField' in type_:
- fprocess.write("\t"+ "dict error;\n")
- fprocess.write("\tif (task->task_error)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_error = (' + type_ + '*) task->task_error;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'error["' + key + '"] = task_error->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_error;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('error')
-
- elif type_ in structDict:
- fprocess.write("\t"+ "dict data;\n")
- fprocess.write("\tif (task->task_data)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_data = (' + type_ + '*) task->task_data;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'data["' + key + '"] = task_data->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_data;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('data')
-
- elif type_ == 'bool':
- onArgsList.append('task->task_last')
-
- elif type_ == 'int':
- onArgsList.append('task->task_id')
-
- onArgs = join(onArgsList, ', ')
- fprocess.write('\tthis->' + cbName.replace('On', 'on') + '(' + onArgs +');\n')
- fprocess.write('\tdelete task;\n')
-
- fprocess.write("};\n")
- fprocess.write("\n")
-
-
-def processFunction(line):
- line = line.replace('\tvirtual int ', '') # 删除行首的无效内容
- line = line.replace(') = 0;\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- fcName = content[0] # 回调函数名称
-
- fcArgs = content[1] # 回调函数参数
- fcArgs = fcArgs.replace(')', '')
-
- fcArgsList = fcArgs.split(', ') # 将每个参数转化为列表
-
- fcArgsTypeList = []
- fcArgsValueList = []
-
- for arg in fcArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- fcArgsTypeList.append(content[0]) # 参数类型列表
- fcArgsValueList.append(content[1]) # 参数数据列表
-
- if len(fcArgsTypeList)>0 and fcArgsTypeList[0] in structDict:
- createFunction(fcName, fcArgsTypeList, fcArgsValueList)
-
- # 生成.h文件中的主动函数部分
- if 'Req' in fcName:
- req_line = 'int req' + fcName[3:] + '(dict req, int nRequestID);\n'
- fheaderfunction.write(req_line)
- fheaderfunction.write('\n')
-
-
-def createFunction(fcName, fcArgsTypeList, fcArgsValueList):
- type_ = fcArgsTypeList[0]
- struct = structDict[type_]
-
- ffunction.write('int MdApi::req' + fcName[3:] + '(dict req, int nRequestID)\n')
- ffunction.write('{\n')
- ffunction.write('\t' + type_ +' myreq = ' + type_ + '();\n')
- ffunction.write('\tmemset(&myreq, 0, sizeof(myreq));\n')
-
- for key, value in struct.items():
- if value == 'string':
- line = '\tgetString(req, "' + key + '", myreq.' + key + ');\n'
- elif value == 'char':
- line = '\tgetChar(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'int':
- line = '\tgetInt(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'double':
- line = '\tgetDouble(req, "' + key + '", &myreq.' + key + ');\n'
- ffunction.write(line)
-
- ffunction.write('\tint i = this->api->' + fcName + '(&myreq, nRequestID);\n')
- ffunction.write('\treturn i;\n')
-
- ffunction.write('};\n')
- ffunction.write('\n')
-
-
-
-
-#########################################################
-apiName = 'MdApi'
-
-fcpp = open('SecurityFtdcMdApi.h', 'r')
-ftask = open('lts_md_task.cpp', 'w')
-fprocess = open('lts_md_process.cpp', 'w')
-ffunction = open('lts_md_function.cpp', 'w')
-fdefine = open('lts_md_define.cpp', 'w')
-fswitch = open('lts_md_switch.cpp', 'w')
-fheaderprocess = open('lts_md_header_process.h', 'w')
-fheaderon = open('lts_md_header_on.h', 'w')
-fheaderfunction = open('lts_md_header_function.h', 'w')
-fwrap = open('lts_md_wrap.cpp', 'w')
-
-define_count = 1
-
-for line in fcpp:
- if "\tvirtual void On" in line:
- processCallBack(line)
- elif "\tvirtual int" in line:
- processFunction(line)
-
-fcpp.close()
-ftask.close()
-fprocess.close()
-ffunction.close()
-fswitch.close()
-fdefine.close()
-fheaderprocess.close()
-fheaderon.close()
-fheaderfunction.close()
-fwrap.close()
\ No newline at end of file
diff --git a/vn.xtp/pyscript/generate_qry_functions.py b/vn.xtp/pyscript/generate_qry_functions.py
deleted file mode 100644
index f9b220fa..00000000
--- a/vn.xtp/pyscript/generate_qry_functions.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# encoding: UTF-8
-
-__author__ = 'CHENXY'
-
-from string import join
-from lts_struct import structDict
-
-
-
-def processCallBack(line):
- orignalLine = line
- line = line.replace('\tvirtual void ', '') # 删除行首的无效内容
- line = line.replace('{};\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- cbName = content[0] # 回调函数名称
-
- cbArgs = content[1] # 回调函数参数
- if cbArgs[-1] == ' ':
- cbArgs = cbArgs.replace(') ', '')
- else:
- cbArgs = cbArgs.replace(')', '')
-
- cbArgsList = cbArgs.split(', ') # 将每个参数转化为列表
-
- cbArgsTypeList = []
- cbArgsValueList = []
-
- for arg in cbArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- cbArgsTypeList.append(content[0]) # 参数类型列表
- cbArgsValueList.append(content[1]) # 参数数据列表
-
- createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine)
- createProcess(cbName, cbArgsTypeList, cbArgsValueList)
-
- # 生成.h文件中的process部分
- process_line = 'void process' + cbName[2:] + '(Task *task);\n'
- fheaderprocess.write(process_line)
- fheaderprocess.write('\n')
-
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last) {};\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last) {};\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data) {};\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error) {};\n'
- else:
- on_line = ''
- fheaderon.write(on_line)
- fheaderon.write('\n')
-
- # 生成封装部分
- createWrap(cbName)
-
-
-#----------------------------------------------------------------------
-def createWrap(cbName):
- """在Python封装段代码中进行处理"""
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(error, id, last);\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(data, error, id, last);\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data)\n'
- override_line = '("on' + cbName[2:] + '")(data);\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error)\n'
- override_line = '("on' + cbName[2:] + '")(data, error);\n'
- else:
- on_line = ''
-
- if on_line is not '':
- fwrap.write(on_line)
- fwrap.write('{\n')
- fwrap.write('\ttry\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tthis->get_override'+override_line)
- fwrap.write('\t}\n')
- fwrap.write('\tcatch (error_already_set const &)\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tPyErr_Print();\n')
- fwrap.write('\t}\n')
- fwrap.write('};\n')
- fwrap.write('\n')
-
-
-
-def createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine):
- # 从回调函数生成任务对象,并放入队列
- funcline = orignalLine.replace('\tvirtual void ', 'void ' + apiName + '::')
- funcline = funcline.replace('{};', '')
-
- ftask.write(funcline)
- ftask.write('{\n')
- ftask.write("\tTask* task = new Task();\n")
-
- ftask.write("\ttask->task_name = " + cbName.upper() + ";\n")
-
- # define常量
- global define_count
- fdefine.write("#define " + cbName.upper() + ' ' + str(define_count) + '\n')
- define_count = define_count + 1
-
- # switch段代码
- fswitch.write("case " + cbName.upper() + ':\n')
- fswitch.write("{\n")
- fswitch.write("\tthis->" + cbName.replace('On', 'process') + '(task);\n')
- fswitch.write("\tbreak;\n")
- fswitch.write("}\n")
- fswitch.write("\n")
-
- for i, type_ in enumerate(cbArgsTypeList):
- if type_ == 'int':
- ftask.write("\ttask->task_id = " + cbArgsValueList[i] + ";\n")
- elif type_ == 'bool':
- ftask.write("\ttask->task_last = " + cbArgsValueList[i] + ";\n")
- elif 'RspInfoField' in type_:
- ftask.write("\n")
- ftask.write("\tif (pRspInfo)\n")
- ftask.write("\t{\n")
- ftask.write("\t\t" + type_ + ' *task_error = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_error = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_error = task_error;\n")
- ftask.write("\t}\n")
- ftask.write("\n")
- else:
- ftask.write("\n")
- ftask.write("\tif (" + cbArgsValueList[i][1:] + ")\n")
- ftask.write("\t{\n")
-
- ftask.write("\t\t" + type_ + ' *task_data = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_data = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_data = task_data;\n")
- ftask.write("\t}\n")
-
- ftask.write("\tthis->task_queue.push(task);\n")
- ftask.write("};\n")
- ftask.write("\n")
-
-
-def createProcess(cbName, cbArgsTypeList, cbArgsValueList):
- # 从队列中提取任务,并转化为python字典
- fprocess.write("void " + apiName + '::' + cbName.replace('On', 'process') + '(Task *task)' + "\n")
- fprocess.write("{\n")
- fprocess.write("\tPyLock lock;\n")
-
- onArgsList = []
-
- for i, type_ in enumerate(cbArgsTypeList):
- if 'RspInfoField' in type_:
- fprocess.write("\t"+ "dict error;\n")
- fprocess.write("\tif (task->task_error)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_error = (' + type_ + '*) task->task_error;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'error["' + key + '"] = task_error->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_error;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('error')
-
- elif type_ in structDict:
- fprocess.write("\t"+ "dict data;\n")
- fprocess.write("\tif (task->task_data)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_data = (' + type_ + '*) task->task_data;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'data["' + key + '"] = task_data->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_data;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('data')
-
- elif type_ == 'bool':
- onArgsList.append('task->task_last')
-
- elif type_ == 'int':
- onArgsList.append('task->task_id')
-
- onArgs = join(onArgsList, ', ')
- fprocess.write('\tthis->' + cbName.replace('On', 'on') + '(' + onArgs +');\n')
- fprocess.write('\tdelete task;\n')
-
- fprocess.write("};\n")
- fprocess.write("\n")
-
-
-def processFunction(line):
- line = line.replace('\tvirtual int ', '') # 删除行首的无效内容
- line = line.replace(') = 0;\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- fcName = content[0] # 回调函数名称
-
- fcArgs = content[1] # 回调函数参数
- fcArgs = fcArgs.replace(')', '')
-
- fcArgsList = fcArgs.split(', ') # 将每个参数转化为列表
-
- fcArgsTypeList = []
- fcArgsValueList = []
-
- for arg in fcArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- fcArgsTypeList.append(content[0]) # 参数类型列表
- fcArgsValueList.append(content[1]) # 参数数据列表
-
- if len(fcArgsTypeList)>0 and fcArgsTypeList[0] in structDict:
- createFunction(fcName, fcArgsTypeList, fcArgsValueList)
-
- # 生成.h文件中的主动函数部分
- if 'Req' in fcName:
- req_line = 'int req' + fcName[3:] + '(dict req, int nRequestID);\n'
- fheaderfunction.write(req_line)
- fheaderfunction.write('\n')
-
-
-def createFunction(fcName, fcArgsTypeList, fcArgsValueList):
- type_ = fcArgsTypeList[0]
- struct = structDict[type_]
-
- ffunction.write('int QryApi::req' + fcName[3:] + '(dict req, int nRequestID)\n')
- ffunction.write('{\n')
- ffunction.write('\t' + type_ +' myreq = ' + type_ + '();\n')
- ffunction.write('\tmemset(&myreq, 0, sizeof(myreq));\n')
-
- for key, value in struct.items():
- if value == 'string':
- line = '\tgetString(req, "' + key + '", myreq.' + key + ');\n'
- elif value == 'char':
- line = '\tgetChar(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'int':
- line = '\tgetInt(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'double':
- line = '\tgetDouble(req, "' + key + '", &myreq.' + key + ');\n'
- ffunction.write(line)
-
- ffunction.write('\tint i = this->api->' + fcName + '(&myreq, nRequestID);\n')
- ffunction.write('\treturn i;\n')
-
- ffunction.write('};\n')
- ffunction.write('\n')
-
-
-
-
-#########################################################
-apiName = 'QryApi'
-
-fcpp = open('SecurityFtdcQueryApi.h', 'r')
-ftask = open('lts_qry_task.cpp', 'w')
-fprocess = open('lts_qry_process.cpp', 'w')
-ffunction = open('lts_qry_function.cpp', 'w')
-fdefine = open('lts_qry_define.cpp', 'w')
-fswitch = open('lts_qry_switch.cpp', 'w')
-fheaderprocess = open('lts_qry_header_process.h', 'w')
-fheaderon = open('lts_qry_header_on.h', 'w')
-fheaderfunction = open('lts_qry_header_function.h', 'w')
-fwrap = open('lts_qry_wrap.cpp', 'w')
-
-define_count = 1
-
-for line in fcpp:
- if "\tvirtual void On" in line:
- processCallBack(line)
- elif "\tvirtual int" in line:
- processFunction(line)
-
-fcpp.close()
-ftask.close()
-fprocess.close()
-ffunction.close()
-fswitch.close()
-fdefine.close()
-fheaderprocess.close()
-fheaderon.close()
-fheaderfunction.close()
-fwrap.close()
\ No newline at end of file
diff --git a/vn.xtp/pyscript/generate_struct_oms.py b/vn.xtp/pyscript/generate_struct_oms.py
deleted file mode 100644
index d72a2ecd..00000000
--- a/vn.xtp/pyscript/generate_struct_oms.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# encoding: UTF-8
-
-__author__ = 'CHENXY'
-
-from xtp_data_type import *
-
-type_dict = {
- 'uint64_t': 'int',
- 'uint32_t': 'int',
- 'int64_t': 'int',
- 'char': 'string',
- 'double': 'float'
-}
-
-typedefDict.update(type_dict)
-
-
-def main():
- """主函数"""
- fcpp = open('xoms_api_struct.h', 'r')
- fpy = open('xtp_struct_oms.py', 'w')
-
- fpy.write('# encoding: UTF-8\n')
- fpy.write('\n')
- fpy.write('structDict = {}\n')
- fpy.write('\n')
-
- for line in fcpp:
- # 结构体申明注释
- if '///' in line and '\t' not in line:
- py_line = '#' + line[3:]
-
- # 结构体变量注释
- elif '\t///' in line:
- py_line = '#' + line[4:]
-
- # 结构体申明
- elif 'struct ' in line:
- content = line.split(' ')
- name = content[1].replace('\n','')
- py_line = '%s = {}\n' % name
-
- # 结构体变量
- elif ' ' == line[0:4] or '\t' == line[0]:
- content = line.split(' ')
- content = [k for k in content if k]
- print content
- typedef = content[0].replace('\t', '')
- type_ = typedefDict[typedef]
-
- variable = content[1]
- variable = variable.replace(';', "")
- variable = variable.replace('\n', "")
- if '[' in variable:
- k = variable.index('[')
- variable = variable[0:k]
-
- py_line = '%s["%s"] = "%s"\n' % (name, variable, type_)
-
- # 结构体结束
- elif '}' in line:
- py_line = "structDict['%s'] = %s\n\n" % (name, name)
-
- # 结构体开始
- elif '{' in line:
- py_line = ''
-
- # 其他
- else:
- py_line = '\n'
-
- fpy.write(py_line.decode('gbk').encode('utf-8'))
-
-
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/vn.xtp/pyscript/generate_struct_quote.py b/vn.xtp/pyscript/generate_struct_quote.py
deleted file mode 100644
index 179eef75..00000000
--- a/vn.xtp/pyscript/generate_struct_quote.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# encoding: UTF-8
-
-__author__ = 'CHENXY'
-
-from xtp_data_type import *
-
-type_dict = {
- 'uint64_t': 'int',
- 'uint32_t': 'int',
- 'int64_t': 'int',
- 'char': 'string',
- 'double': 'float'
-}
-
-typedefDict.update(type_dict)
-
-
-def main():
- """主函数"""
- fcpp = open('xquote_api_struct.h', 'r')
- fpy = open('xtp_struct_quote.py', 'w')
-
- fpy.write('# encoding: UTF-8\n')
- fpy.write('\n')
- fpy.write('structDict = {}\n')
- fpy.write('\n')
-
- for line in fcpp:
- # 结构体申明注释
- if '///' in line and '\t' not in line:
- py_line = '#' + line[3:]
-
- # 结构体变量注释
- elif '\t///' in line:
- py_line = '#' + line[4:]
-
- # 结构体申明
- elif 'struct ' in line:
- content = line.split(' ')
- name = content[1].replace('\n','')
- py_line = '%s = {}\n' % name
-
- # 结构体变量
- elif ' ' == line[0:4] or '\t' == line[0]:
- content = line.split(' ')
- content = [k for k in content if k]
- print content
- typedef = content[0].replace('\t', '')
- type_ = typedefDict[typedef]
-
- variable = content[1]
- variable = variable.replace(';', "")
- variable = variable.replace('\n', "")
- if '[' in variable:
- k = variable.index('[')
- variable = variable[0:k]
-
- py_line = '%s["%s"] = "%s"\n' % (name, variable, type_)
-
- # 结构体结束
- elif '}' in line:
- py_line = "structDict['%s'] = %s\n\n" % (name, name)
-
- # 结构体开始
- elif '{' in line:
- py_line = ''
-
- # 其他
- else:
- py_line = '\n'
-
- fpy.write(py_line.decode('gbk').encode('utf-8'))
-
-
-if __name__ == '__main__':
- main()
\ No newline at end of file
diff --git a/vn.xtp/pyscript/generate_td_functions.py b/vn.xtp/pyscript/generate_td_functions.py
deleted file mode 100644
index 8a64aa5b..00000000
--- a/vn.xtp/pyscript/generate_td_functions.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# encoding: UTF-8
-
-__author__ = 'CHENXY'
-
-from string import join
-from lts_struct import structDict
-
-
-
-def processCallBack(line):
- orignalLine = line
- line = line.replace('\tvirtual void ', '') # 删除行首的无效内容
- line = line.replace('{};\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- cbName = content[0] # 回调函数名称
-
- cbArgs = content[1] # 回调函数参数
- if cbArgs[-1] == ' ':
- cbArgs = cbArgs.replace(') ', '')
- else:
- cbArgs = cbArgs.replace(')', '')
-
- cbArgsList = cbArgs.split(', ') # 将每个参数转化为列表
-
- cbArgsTypeList = []
- cbArgsValueList = []
-
- for arg in cbArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- cbArgsTypeList.append(content[0]) # 参数类型列表
- cbArgsValueList.append(content[1]) # 参数数据列表
-
- createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine)
- createProcess(cbName, cbArgsTypeList, cbArgsValueList)
-
- # 生成.h文件中的process部分
- process_line = 'void process' + cbName[2:] + '(Task *task);\n'
- fheaderprocess.write(process_line)
- fheaderprocess.write('\n')
-
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last) {};\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last) {};\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data) {};\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error) {};\n'
- else:
- on_line = ''
- fheaderon.write(on_line)
- fheaderon.write('\n')
-
- # 生成封装部分
- createWrap(cbName)
-
-
-#----------------------------------------------------------------------
-def createWrap(cbName):
- """在Python封装段代码中进行处理"""
- # 生成.h文件中的on部分
- if 'OnRspError' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(error, id, last);\n'
- elif 'OnRsp' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error, int id, bool last)\n'
- override_line = '("on' + cbName[2:] + '")(data, error, id, last);\n'
- elif 'OnRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data)\n'
- override_line = '("on' + cbName[2:] + '")(data);\n'
- elif 'OnErrRtn' in cbName:
- on_line = 'virtual void on' + cbName[2:] + '(dict data, dict error)\n'
- override_line = '("on' + cbName[2:] + '")(data, error);\n'
- else:
- on_line = ''
-
- if on_line is not '':
- fwrap.write(on_line)
- fwrap.write('{\n')
- fwrap.write('\ttry\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tthis->get_override'+override_line)
- fwrap.write('\t}\n')
- fwrap.write('\tcatch (error_already_set const &)\n')
- fwrap.write('\t{\n')
- fwrap.write('\t\tPyErr_Print();\n')
- fwrap.write('\t}\n')
- fwrap.write('};\n')
- fwrap.write('\n')
-
-
-
-def createTask(cbName, cbArgsTypeList, cbArgsValueList, orignalLine):
- # 从回调函数生成任务对象,并放入队列
- funcline = orignalLine.replace('\tvirtual void ', 'void ' + apiName + '::')
- funcline = funcline.replace('{};', '')
-
- ftask.write(funcline)
- ftask.write('{\n')
- ftask.write("\tTask* task = new Task();\n")
-
- ftask.write("\ttask->task_name = " + cbName.upper() + ";\n")
-
- # define常量
- global define_count
- fdefine.write("#define " + cbName.upper() + ' ' + str(define_count) + '\n')
- define_count = define_count + 1
-
- # switch段代码
- fswitch.write("case " + cbName.upper() + ':\n')
- fswitch.write("{\n")
- fswitch.write("\tthis->" + cbName.replace('On', 'process') + '(task);\n')
- fswitch.write("\tbreak;\n")
- fswitch.write("}\n")
- fswitch.write("\n")
-
- for i, type_ in enumerate(cbArgsTypeList):
- if type_ == 'int':
- ftask.write("\ttask->task_id = " + cbArgsValueList[i] + ";\n")
- elif type_ == 'bool':
- ftask.write("\ttask->task_last = " + cbArgsValueList[i] + ";\n")
- elif 'RspInfoField' in type_:
- ftask.write("\n")
- ftask.write("\tif (pRspInfo)\n")
- ftask.write("\t{\n")
- ftask.write("\t\t" + type_ + ' *task_error = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_error = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_error = task_error;\n")
- ftask.write("\t}\n")
- ftask.write("\n")
- else:
- ftask.write("\n")
- ftask.write("\tif (" + cbArgsValueList[i][1:] + ")\n")
- ftask.write("\t{\n")
-
- ftask.write("\t\t" + type_ + ' *task_data = new ' + type_ + '();\n')
- ftask.write("\t\t" + '*task_data = ' + cbArgsValueList[i] + ';\n')
- ftask.write("\t\ttask->task_data = task_data;\n")
- ftask.write("\t}\n")
-
- ftask.write("\tthis->task_queue.push(task);\n")
- ftask.write("};\n")
- ftask.write("\n")
-
-
-def createProcess(cbName, cbArgsTypeList, cbArgsValueList):
- # 从队列中提取任务,并转化为python字典
- fprocess.write("void " + apiName + '::' + cbName.replace('On', 'process') + '(Task *task)' + "\n")
- fprocess.write("{\n")
- fprocess.write("\tPyLock lock;\n")
-
- onArgsList = []
-
- for i, type_ in enumerate(cbArgsTypeList):
- if 'RspInfoField' in type_:
- fprocess.write("\t"+ "dict error;\n")
- fprocess.write("\tif (task->task_error)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_error = (' + type_ + '*) task->task_error;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'error["' + key + '"] = task_error->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_error;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('error')
-
- elif type_ in structDict:
- fprocess.write("\t"+ "dict data;\n")
- fprocess.write("\tif (task->task_data)\n")
- fprocess.write("\t{\n")
- fprocess.write("\t\t"+ type_ + ' *task_data = (' + type_ + '*) task->task_data;\n')
-
- struct = structDict[type_]
- for key in struct.keys():
- fprocess.write("\t\t"+ 'data["' + key + '"] = task_data->' + key + ';\n')
-
- fprocess.write("\t\tdelete task->task_data;\n")
- fprocess.write("\t}\n")
- fprocess.write("\n")
-
- onArgsList.append('data')
-
- elif type_ == 'bool':
- onArgsList.append('task->task_last')
-
- elif type_ == 'int':
- onArgsList.append('task->task_id')
-
- onArgs = join(onArgsList, ', ')
- fprocess.write('\tthis->' + cbName.replace('On', 'on') + '(' + onArgs +');\n')
- fprocess.write('\tdelete task;\n')
-
- fprocess.write("};\n")
- fprocess.write("\n")
-
-
-def processFunction(line):
- line = line.replace('\tvirtual int ', '') # 删除行首的无效内容
- line = line.replace(') = 0;\n', '') # 删除行尾的无效内容
-
- content = line.split('(')
- fcName = content[0] # 回调函数名称
-
- fcArgs = content[1] # 回调函数参数
- fcArgs = fcArgs.replace(')', '')
-
- fcArgsList = fcArgs.split(', ') # 将每个参数转化为列表
-
- fcArgsTypeList = []
- fcArgsValueList = []
-
- for arg in fcArgsList: # 开始处理参数
- content = arg.split(' ')
- if len(content) > 1:
- fcArgsTypeList.append(content[0]) # 参数类型列表
- fcArgsValueList.append(content[1]) # 参数数据列表
-
- if len(fcArgsTypeList)>0 and fcArgsTypeList[0] in structDict:
- createFunction(fcName, fcArgsTypeList, fcArgsValueList)
-
- # 生成.h文件中的主动函数部分
- if 'Req' in fcName:
- req_line = 'int req' + fcName[3:] + '(dict req, int nRequestID);\n'
- fheaderfunction.write(req_line)
- fheaderfunction.write('\n')
-
-
-def createFunction(fcName, fcArgsTypeList, fcArgsValueList):
- type_ = fcArgsTypeList[0]
- struct = structDict[type_]
-
- ffunction.write('int TdApi::req' + fcName[3:] + '(dict req, int nRequestID)\n')
- ffunction.write('{\n')
- ffunction.write('\t' + type_ +' myreq = ' + type_ + '();\n')
- ffunction.write('\tmemset(&myreq, 0, sizeof(myreq));\n')
-
- for key, value in struct.items():
- if value == 'string':
- line = '\tgetString(req, "' + key + '", myreq.' + key + ');\n'
- elif value == 'char':
- line = '\tgetChar(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'int':
- line = '\tgetInt(req, "' + key + '", &myreq.' + key + ');\n'
- elif value == 'double':
- line = '\tgetDouble(req, "' + key + '", &myreq.' + key + ');\n'
- ffunction.write(line)
-
- ffunction.write('\tint i = this->api->' + fcName + '(&myreq, nRequestID);\n')
- ffunction.write('\treturn i;\n')
-
- ffunction.write('};\n')
- ffunction.write('\n')
-
-
-
-
-#########################################################
-apiName = 'TdApi'
-
-fcpp = open('SecurityFtdcTraderApi.h', 'r')
-ftask = open('lts_td_task.cpp', 'w')
-fprocess = open('lts_td_process.cpp', 'w')
-ffunction = open('lts_td_function.cpp', 'w')
-fdefine = open('lts_td_define.cpp', 'w')
-fswitch = open('lts_td_switch.cpp', 'w')
-fheaderprocess = open('lts_td_header_process.h', 'w')
-fheaderon = open('lts_td_header_on.h', 'w')
-fheaderfunction = open('lts_td_header_function.h', 'w')
-fwrap = open('lts_td_wrap.cpp', 'w')
-
-define_count = 1
-
-for line in fcpp:
- if "\tvirtual void On" in line:
- processCallBack(line)
- elif "\tvirtual int" in line:
- processFunction(line)
-
-fcpp.close()
-ftask.close()
-fprocess.close()
-ffunction.close()
-fswitch.close()
-fdefine.close()
-fheaderprocess.close()
-fheaderon.close()
-fheaderfunction.close()
-fwrap.close()
\ No newline at end of file
diff --git a/vn.xtp/pyscript/notused/xtp_api_struct_compatible.h b/vn.xtp/pyscript/notused/xtp_api_struct_compatible.h
deleted file mode 100644
index e1f3d633..00000000
--- a/vn.xtp/pyscript/notused/xtp_api_struct_compatible.h
+++ /dev/null
@@ -1,2738 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-///@author ̩֤ȯɷ˾
-///@file xtp_api_struct_compatible.h
-///@brief ҵļݽṹ
-/////////////////////////////////////////////////////////////////////////
-
-#if !defined(XTP_FTDCSTRUCT_H)
-#define XTP_FTDCSTRUCT_H
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "xtp_api_data_type.h"
-
-///ָĺԼ
-struct CXTPSpecificInstrumentField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-
-///
-struct CXTPDepthMarketDataField
-{
- ///
- TXTPDateType TradingDay;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ԼڽĴ
- TXTPExchangeInstIDType ExchangeInstID;
- ///¼
- TXTPPriceType LastPrice;
- ///ϴν
- TXTPPriceType PreSettlementPrice;
- ///
- TXTPPriceType PreClosePrice;
- ///ֲ
- TXTPLargeVolumeType PreOpenInterest;
- ///
- TXTPPriceType OpenPrice;
- ///
- TXTPPriceType HighestPrice;
- ///ͼ
- TXTPPriceType LowestPrice;
- ///
- TXTPVolumeType Volume;
- ///ɽ
- TXTPMoneyType Turnover;
- ///ֲ
- TXTPLargeVolumeType OpenInterest;
- ///
- TXTPPriceType ClosePrice;
- ///ν
- TXTPPriceType SettlementPrice;
- ///ͣ
- TXTPPriceType UpperLimitPrice;
- ///ͣ
- TXTPPriceType LowerLimitPrice;
- ///ʵ
- TXTPRatioType PreDelta;
- ///ʵ
- TXTPRatioType CurrDelta;
- ///ʱ
- TXTPTimeType UpdateTime;
- ///ĺ
- TXTPMillisecType UpdateMillisec;
- ///վ
- TXTPPriceType AveragePrice;
- ///ҵ
- TXTPDateType ActionDay;
- ///()
- TXTPLargeVolumeType Volume_New;
-
- union {
- struct {
- ///һ
- TXTPPriceType BidPrice1;
- ///۶
- TXTPPriceType BidPrice2;
- ///
- TXTPPriceType BidPrice3;
- ///
- TXTPPriceType BidPrice4;
- ///
- TXTPPriceType BidPrice5;
- ///
- TXTPPriceType BidPrice6;
- ///
- TXTPPriceType BidPrice7;
- ///۰
- TXTPPriceType BidPrice8;
- ///۾
- TXTPPriceType BidPrice9;
- ///ʮ
- TXTPPriceType BidPrice10;
- };
- struct {
- ///ʮ̼
- TXTPPriceType BidPrices[10];
- };
- };
- union {
- struct {
- ///һ
- TXTPPriceType AskPrice1;
- ///۶
- TXTPPriceType AskPrice2;
- ///
- TXTPPriceType AskPrice3;
- ///
- TXTPPriceType AskPrice4;
- ///
- TXTPPriceType AskPrice5;
- ///
- TXTPPriceType AskPrice6;
- ///
- TXTPPriceType AskPrice7;
- ///۰
- TXTPPriceType AskPrice8;
- ///۾
- TXTPPriceType AskPrice9;
- ///ʮ
- TXTPPriceType AskPrice10;
- };
- struct {
- ///ʮ
- TXTPPriceType AskPrices[10];
- };
- };
- union {
- struct {
- ///һ
- TXTPVolumeType BidVolume1;
- ///
- TXTPVolumeType BidVolume2;
- ///
- TXTPVolumeType BidVolume3;
- ///
- TXTPVolumeType BidVolume4;
- ///
- TXTPVolumeType BidVolume5;
- ///
- TXTPVolumeType BidVolume6;
- ///
- TXTPVolumeType BidVolume7;
- ///
- TXTPVolumeType BidVolume8;
- ///
- TXTPVolumeType BidVolume9;
- ///ʮ
- TXTPVolumeType BidVolume10;
- };
- struct {
- ///ʮ
- TXTPVolumeType BidVolumes[10];
- };
- };
- union {
- struct {
- ///һ
- TXTPVolumeType AskVolume1;
- ///
- TXTPVolumeType AskVolume2;
- ///
- TXTPVolumeType AskVolume3;
- ///
- TXTPVolumeType AskVolume4;
- ///
- TXTPVolumeType AskVolume5;
- ///
- TXTPVolumeType AskVolume6;
- ///
- TXTPVolumeType AskVolume7;
- ///
- TXTPVolumeType AskVolume8;
- ///
- TXTPVolumeType AskVolume9;
- ///ʮ
- TXTPVolumeType AskVolume10;
- };
- struct {
- ///ʮ
- TXTPVolumeType AskVolumes[10];
- };
- };
-
- ///ɽ
- TXTPVolumeType NumTrades;
- ///ǰ״̬˵
- char InstrumentStatus[8];
- ///ί
- TXTPVolumeType TotalBidQty;
- ///ί
- TXTPVolumeType TotalOfferQty;
- ///Ȩƽί۸
- TXTPPriceType WeightedAvgBidPx;
- ///Ȩƽί۸
- TXTPPriceType WeightedAvgOfferPx;
- ///ծȯȨƽί۸
- TXTPPriceType AltWeightedAvgBidPx;
- ///ծȯȨƽί۸
- TXTPPriceType AltWeightedAvgOfferPx;
- ///ծȯ
- TXTPPriceType YieldToMaturity;
- ///ETFֵֵ
- TXTPPriceType IOPV;
- ///ETF깺
- TXTPVolumeType ETFBuyNumber;
- ///ETFر
- TXTPVolumeType ETFSellNumber;
- ///ETF깺
- TXTPLargeVolumeType ETFBuyAmount;
- ///ETF
- TXTPMoneyType ETFBuyMoney;
- ///ETF깺
- TXTPLargeVolumeType ETFSellAmount;
- ///ETFؽ
- TXTPMoneyType ETFSellMoney;
- ///Ȩִ֤е
- TXTPLargeVolumeType TotalWarrantExecQty;
- ///Ȩ֤ͣ۸Ԫ
- TXTPPriceType WarLowerPx;
- ///Ȩ֤ͣ۸Ԫ
- TXTPPriceType WarUpperPx;
- ///볷
- TXTPVolumeType WithdrawBuyNumber;
- ///
- TXTPVolumeType WithdrawSellNumber;
- ///볷
- TXTPLargeVolumeType WithdrawBuyAmount;
- ///
- TXTPLargeVolumeType WithdrawSellAmount;
- ///볷
- TXTPMoneyType WithdrawBuyMoney;
- ///
- TXTPMoneyType WithdrawSellMoney;
- ///ܱ
- TXTPVolumeType TotalBidNumber;
- ///ܱ
- TXTPVolumeType TotalOfferNumber;
- ///ίгɽȴʱ
- TXTPVolumeType BidTradeMaxDuration;
- ///ίгɽȴʱ
- TXTPVolumeType OfferTradeMaxDuration;
- ///ίмλ
- TXTPVolumeType NumBidOrders;
- ///ίмλ
- TXTPVolumeType NumOfferOrders;
- ///ɽʱ䣨UA3113
- int TradeTime;
- ///б־UA103/UA104
- char EndOfDayMaker[4];
- ///ԼֲUA103
- TXTPLargeVolumeType TotalLongPosition;
- ///ӯ12λСUA103
- double PERatio1;
- ///ӯ22λСUA103
- double PERatio2;
-
-};
-
-
-///ӦϢ
-struct CXTPRspInfoField
-{
- ///
- TXTPErrorIDType ErrorID;
- ///Ϣ
- TXTPErrorMsgType ErrorMsg;
-};
-
-///
-struct CXTPExchangeField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///
- TXTPExchangeNameType ExchangeName;
- ///
- TXTPExchangePropertyType ExchangeProperty;
-};
-
-///Ʒ
-struct CXTPProductField
-{
- ///Ʒ
- TXTPInstrumentIDType ProductID;
- ///Ʒ
- TXTPProductNameType ProductName;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ʒ
- TXTPProductClassType ProductClass;
- ///Լ
- TXTPVolumeMultipleType VolumeMultiple;
- ///С䶯λ
- TXTPPriceType PriceTick;
- ///м۵µ
- TXTPVolumeType MaxMarketOrderVolume;
- ///м۵Сµ
- TXTPVolumeType MinMarketOrderVolume;
- ///۵µ
- TXTPVolumeType MaxLimitOrderVolume;
- ///۵Сµ
- TXTPVolumeType MinLimitOrderVolume;
- ///ֲ
- TXTPPositionTypeType PositionType;
- ///ֲ
- TXTPPositionDateTypeType PositionDateType;
- ///ETFСλ
- TXTPVolumeType EFTMinTradeVolume;
-};
-
-///Լ
-struct CXTPInstrumentField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentNameType InstrumentName;
- ///ԼڽĴ
- TXTPExchangeInstIDType ExchangeInstID;
- ///Ʒ
- TXTPInstrumentIDType ProductID;
- ///Ʒ
- TXTPProductClassType ProductClass;
- ///
- TXTPYearType DeliveryYear;
- ///
- TXTPMonthType DeliveryMonth;
- ///м۵µ
- TXTPVolumeType MaxMarketOrderVolume;
- ///м۵Сµ
- TXTPVolumeType MinMarketOrderVolume;
- ///۵µ
- TXTPVolumeType MaxLimitOrderVolume;
- ///۵Сµ
- TXTPVolumeType MinLimitOrderVolume;
- ///Լ
- TXTPVolumeMultipleType VolumeMultiple;
- ///С䶯λ
- TXTPPriceType PriceTick;
- ///
- TXTPDateType CreateDate;
- ///
- TXTPDateType OpenDate;
- ///
- TXTPDateType ExpireDate;
- ///ʼ
- TXTPDateType StartDelivDate;
- ///
- TXTPDateType EndDelivDate;
- ///Լ״̬
- TXTPInstLifePhaseType InstLifePhase;
- ///ǰǷ
- TXTPBoolType IsTrading;
- ///ֲ
- TXTPPositionTypeType PositionType;
- ///ܷ
- TXTPBoolType OrderCanBeWithdraw;
- ///Сµλ
- TXTPVolumeType MinBuyVolume;
- ///Сµλ
- TXTPVolumeType MinSellVolume;
- ///ƱȨģ
- TXTPRightModelIDType RightModelID;
- ///ֲֽ
- TXTPPosTradeTypeType PosTradeType;
- ///г
- TXTPInstrumentIDType MarketID;
- ///Ȩִм۸
- TXTPPriceType ExecPrice;
- ///Ȩֱ֤
- TXTPMoneyType UnitMargin;
- ///Լ
- TXTPInstrumentTypeType InstrumentType;
- ///Ȩ֤1
- TXTPRatioType OptionsMarginParam1;
- ///Ȩ֤2
- TXTPRatioType OptionsMarginParam2;
-};
-
-///˾
-struct CXTPBrokerField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///˾
- TXTPBrokerAbbrType BrokerAbbr;
- ///˾
- TXTPBrokerNameType BrokerName;
- ///ǷԾ
- TXTPBoolType IsActive;
-};
-
-///Ա;˾ձ
-struct CXTPPartBrokerField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///ǷԾ
- TXTPBoolType IsActive;
-};
-
-///Ͷ
-struct CXTPInvestorField
-{
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷ߷
- TXTPInvestorIDType InvestorGroupID;
- ///Ͷ
- TXTPPartyNameType InvestorName;
- ///֤
- TXTPIdCardTypeType IdentifiedCardType;
- ///֤
- TXTPIdentifiedCardNoType IdentifiedCardNo;
- ///ǷԾ
- TXTPBoolType IsActive;
- ///ϺӪҵ
- TXTPTraderIDType SHBranchID;
- ///Ӫҵ
- TXTPTraderIDType SZBranchID;
- ///ϵͳ
- TXTPSettleSystemTypeType SettleSystemType;
- ///ͶȨȼ
- TXTPInvestorLevelType InvestorLevel;
-};
-
-///ױ
-struct CXTPTradingCodeField
-{
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ͻ
- TXTPClientIDType ClientID;
- ///ǷԾ
- TXTPBoolType IsActive;
- ///AccountID
- TXTPAccountIDType AccountID;
- ///Ԫ
- TXTPTraderIDType PBU;
- ///ClientType
- TXTPClientTypeType ClientType;
-};
-
-///û
-struct CXTPSuperUserField
-{
- ///û
- TXTPUserIDType UserID;
- ///û
- TXTPUserNameType UserName;
- ///
- TXTPPasswordType Password;
- ///ǷԾ
- TXTPBoolType IsActive;
-};
-
-///ûȨ
-struct CXTPSuperUserFunctionField
-{
- ///û
- TXTPUserIDType UserID;
- ///ܴ
- TXTPFunctionCodeType FunctionCode;
-};
-
-///˾û
-struct CXTPBrokerUserField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///û
- TXTPUserNameType UserName;
- ///û
- TXTPUserTypeType UserType;
- ///ǷԾ
- TXTPBoolType IsActive;
- ///Ƿʹ
- TXTPBoolType IsUsingOTP;
-};
-
-///˾ûȨ
-struct CXTPBrokerUserFunctionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///˾ܴ
- TXTPBrokerFunctionCodeType BrokerFunctionCode;
-};
-
-///ʽ˻
-struct CXTPTradingAccountField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷʺ
- TXTPAccountIDType AccountID;
- ///ϴѺ
- TXTPMoneyType PreMortgage;
- ///ϴö
- TXTPMoneyType PreCredit;
- ///ϴδ
- TXTPMoneyType PreDeposit;
- ///ϴν
- TXTPMoneyType PreBalance;
- ///ϴռõı֤
- TXTPMoneyType PreMargin;
- ///Ϣ
- TXTPMoneyType InterestBase;
- ///Ϣ
- TXTPMoneyType Interest;
- ///
- TXTPMoneyType Deposit;
- ///
- TXTPMoneyType Withdraw;
- ///ı֤
- TXTPMoneyType FrozenMargin;
- ///ʽ
- TXTPMoneyType FrozenCash;
- ///
- TXTPMoneyType FrozenCommission;
- ///ǰ֤ܶ
- TXTPMoneyType CurrMargin;
- ///ʽ
- TXTPMoneyType CashIn;
- ///
- TXTPMoneyType Commission;
- ///
- TXTPMoneyType Balance;
- ///ֽ
- TXTPMoneyType Available;
- ///ȡʽ
- TXTPMoneyType WithdrawQuota;
- ///
- TXTPMoneyType Reserve;
- ///
- TXTPDateType TradingDay;
- ///֤
- TXTPMoneyType Credit;
- ///Ѻ
- TXTPMoneyType Mortgage;
- ///֤
- TXTPMoneyType ExchangeMargin;
- ///Ͷ߽֤
- TXTPMoneyType DeliveryMargin;
- ///֤
- TXTPMoneyType ExchangeDeliveryMargin;
- ///Ĺ
- TXTPMoneyType FrozenTransferFee;
- ///ӡ˰
- TXTPMoneyType FrozenStampTax;
- ///
- TXTPMoneyType TransferFee;
- ///ӡ˰
- TXTPMoneyType StampTax;
- ///
- TXTPMoneyType ConversionAmount;
- ///Ŷ
- TXTPMoneyType CreditAmount;
- ///֤ȯֵܼ
- TXTPMoneyType StockValue;
- ///ծعռʽ
- TXTPMoneyType BondRepurchaseAmount;
- ///ծعռʽ
- TXTPMoneyType ReverseRepurchaseAmount;
- ///
- TXTPCurrencyCodeType CurrencyCode;
- ///˻
- TXTPAccountTypeType AccountType;
- ///
- TXTPMoneyType MarginTradeAmount;
- ///ȯ
- TXTPMoneyType ShortSellAmount;
- ///ʳֲӯ
- TXTPMoneyType MarginTradeProfit;
- ///ȯֲӯ
- TXTPMoneyType ShortSellProfit;
- ///ȯֵ
- TXTPMoneyType SSStockValue;
- ///άֵ
- TXTPRatioType CreditRatio;
- ///Ȩʽ
- TXTPMoneyType FrozenExecCash;
- ///Ȩʽ(SSE)
- TXTPMoneyType SSEOptionsBuyAmount;
- ///Ȩ붳ʽ(SSE)
- TXTPMoneyType SSEOptionsBuyFrozenAmount;
- ///㱣֤ܶ
- TXTPMoneyType SettleMargin;
-};
-
-///ֹ¼û
-struct CXTPLoginForbiddenUserField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ͶߺԼȨ
-struct CXTPInstrumentTradingRightField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Ͷ߷Χ
- TXTPInvestorRangeType InvestorRange;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPDirectionType Direction;
- ///Ȩ
- TXTPTradingRightType TradingRight;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ƱȨ
- TXTPInstrumentRangeType InstrumentRange;
-};
-
-///Ͷֲ߳ϸ
-struct CXTPInvestorPositionDetailField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Ͷױ־
- TXTPHedgeFlagType HedgeFlag;
- ///
- TXTPDirectionType Direction;
- ///
- TXTPDateType OpenDate;
- ///ɽ
- TXTPTradeIDType TradeID;
- ///
- TXTPVolumeType Volume;
- ///ּ
- TXTPPriceType OpenPrice;
- ///
- TXTPDateType TradingDay;
- ///ɽ
- TXTPTradeTypeType TradeType;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ͷ֤߱
- TXTPMoneyType Margin;
- ///֤
- TXTPMoneyType ExchMargin;
- ///
- TXTPPriceType LastSettlementPrice;
- ///
- TXTPPriceType SettlementPrice;
- ///ƽ
- TXTPVolumeType CloseVolume;
- ///ƽֽ
- TXTPMoneyType CloseAmount;
- ///
- TXTPMoneyType TransferFee;
- ///ӡ˰
- TXTPMoneyType StampTax;
- ///
- TXTPMoneyType Commission;
- ///AccountID
- TXTPAccountIDType AccountID;
- ///Ѻ
- TXTPVolumeType PledgeInPosition;
- ///Ѻⶳ
- TXTPVolumeType PledgeInFrozenPosition;
- ///عʹõıȯ
- TXTPVolumeType RepurchasePosition;
- ///ȯ
- TXTPMoneyType Amount;
- ///ĺԼ
- TXTPInstrumentIDType UnderlyingInstrumentID;
-};
-
-///ծȯϢ
-struct CXTPBondInterestField
-{
- ///
- TXTPDateType TradingDay;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Ϣ
- TXTPInterestType Interest;
-};
-
-///ֵϢ
-struct CXTPMarketRationInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///
- TXTPVolumeType RationVolume;
-};
-
-///Լ
-struct CXTPInstrumentCommissionRateField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Ͷ߷Χ
- TXTPInvestorRangeType InvestorRange;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPDirectionType Direction;
- ///ӡ˰
- TXTPRatioType StampTaxRateByMoney;
- ///ӡ˰()
- TXTPRatioType StampTaxRateByVolume;
- ///
- TXTPRatioType TransferFeeRateByMoney;
- ///()
- TXTPRatioType TransferFeeRateByVolume;
- ///
- TXTPRatioType TradeFeeByMoney;
- ///()
- TXTPRatioType TradeFeeByVolume;
- ///ӷ
- TXTPRatioType MarginByMoney;
- ///С
- TXTPPriceType MinTradeFee;
-};
-
-///ȯϢ
-struct CXTPExcessStockInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///ȯ
- TXTPVolumeType ExcessVolume;
- ///ȯ
- TXTPVolumeType ExcessFrozenVolume;
-};
-
-///ETFԼ
-struct CXTPETFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType ETFInstrumentID;
- ///ETFӦ
- TXTPInstrumentIDType ETFPurRedInstrumentID;
- ///С깺صλӦETF
- TXTPVolumeType CreationRedemptionUnit;
- ///ֽ
- TXTPRatioType Maxcashratio;
- ///깺״̬
- TXTPCreationredemptionStatusType Creationredemption;
- ///Ԥ
- TXTPMoneyType EstimateCashComponent;
-};
-
-///ETFƱ
-struct CXTPETFBasketField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType ETFInstrumentID;
- ///Ʊ֤ȯ
- TXTPInstrumentIDType StockInstrumentID;
- ///Ʊ֤ȯ
- TXTPInstrumentNameType StockInstrumentName;
- ///Ʊ
- TXTPVolumeType Volume;
- ///־
- TXTPETFCurrenceReplaceStatusType CurrenceReplaceStatus;
- ///۱
- TXTPRatioType Premium;
- ///ܽ
- TXTPMoneyType Amount;
-};
-
-///OFԼ
-struct CXTPOFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///OF
- TXTPInstrumentIDType InstrumentID;
- ///깺״̬
- TXTPCreationredemptionStatusType Creationredemption;
- ///ֵ
- TXTPPriceType NetPrice;
-};
-
-///SFԼ
-struct CXTPSFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///
- TXTPInstrumentIDType InstrumentID;
- ///SF
- TXTPInstrumentIDType SFInstrumentID;
- ///ֺϲ״̬
- TXTPSplitMergeStatusType SplitMergeStatus;
- ///С
- TXTPVolumeType MinSplitVolume;
- ///Сϲ
- TXTPVolumeType MinMergeVolume;
- ////ϲ
- TXTPVolumeType VolumeRatio;
- ///ֵ
- TXTPPriceType NetPrice;
-};
-
-///Լֱ֤
-struct CXTPInstrumentUnitMarginField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Լֱ֤
- TXTPMoneyType UnitMargin;
-};
-
-///ȨʽƲ
-struct CXTPOptionsFundLimitParamField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///
- TXTPMoneyType MaxBuyAmount;
-};
-
-///ͶȨֲ
-struct CXTPInvestorOptionsPositionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷ߷Χ
- TXTPInvestorRangeType InvestorRange;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///InstrumentID
- TXTPInstrumentIDType InstrumentID;
- ///ͷλ
- TXTPVolumeType MaxLongPositionLimit;
- ///
- TXTPVolumeType MaxBuyVolLimit;
- ///ܲλ
- TXTPVolumeType MaxPositionLimit;
- ///ͷֲ
- TXTPVolumeType LongPosition;
- ///ͷֲ
- TXTPVolumeType ShortPosition;
- ///
- TXTPVolumeType BuyVolume;
- ///
- TXTPVolumeType BuyFrozenVolume;
- ///ͷֲ
- TXTPVolumeType LongFrozenPosition;
- ///ͷֲ
- TXTPVolumeType ShortFrozenPosition;
-};
-
-///ԤϢ
-struct CXTPPreDelivInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPDelivTypeType DelivType;
- ///ĺԼ
- TXTPInstrumentIDType UnderlyingInstrumentID;
- ///
- TXTPVolumeType DelivVolume;
- ///
- TXTPMoneyType DelivAmount;
- ///Ȩִ
- TXTPVolumeType ExecVolume;
- ///
- TXTPDirectionType Direction;
-};
-
-///ȯϢ
-struct CXTPCreditStockAssignInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///ȯ
- TXTPVolumeType LimitVolume;
- ///ȯ
- TXTPVolumeType YDVolume;
- ///ʣȯ
- TXTPVolumeType LeftVolume;
- ///ȯ
- TXTPVolumeType FrozenVolume;
-};
-
-///ʷϢ
-struct CXTPCreditCashAssignInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPMoneyType LimitAmount;
- ///ʽ
- TXTPMoneyType YDAmount;
-};
-
-///֤ȯ
-struct CXTPConversionRateField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPRatioType ConversionRate;
- ///ǰǷ֧ʽ
- TXTPBoolType IsTradingForMargin;
- ///ǰǷ֧ȯ
- TXTPBoolType IsTradingForShort;
-};
-
-///ʷøծϢ
-struct CXTPHisCreditDebtInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPDateType OpenDate;
- ///ծ
- TXTPDirectionType Direction;
- ///ּ
- TXTPPriceType OpenPrice;
- ///
- TXTPVolumeType Volume;
- ///ȯ
- TXTPMoneyType Amount;
-};
-
-///Ա̻
-struct CXTPTraderOfferField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///
- TXTPPasswordType Password;
- ///װ
- TXTPInstallIDType InstallID;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///Ա״̬
- TXTPTraderConnectStatusType TraderConnectStatus;
- ///
- TXTPDateType ConnectRequestDate;
- ///ʱ
- TXTPTimeType ConnectRequestTime;
- ///ϴα
- TXTPDateType LastReportDate;
- ///ϴαʱ
- TXTPTimeType LastReportTime;
- ///
- TXTPDateType ConnectDate;
- ///ʱ
- TXTPTimeType ConnectTime;
- ///
- TXTPDateType StartDate;
- ///ʱ
- TXTPTimeType StartTime;
- ///
- TXTPDateType TradingDay;
- ///˾
- TXTPBrokerIDType BrokerID;
-};
-
-///鱨̻
-struct CXTPMDTraderOfferField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///
- TXTPPasswordType Password;
- ///װ
- TXTPInstallIDType InstallID;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///Ա״̬
- TXTPTraderConnectStatusType TraderConnectStatus;
- ///
- TXTPDateType ConnectRequestDate;
- ///ʱ
- TXTPTimeType ConnectRequestTime;
- ///ϴα
- TXTPDateType LastReportDate;
- ///ϴαʱ
- TXTPTimeType LastReportTime;
- ///
- TXTPDateType ConnectDate;
- ///ʱ
- TXTPTimeType ConnectTime;
- ///
- TXTPDateType StartDate;
- ///ʱ
- TXTPTimeType StartTime;
- ///
- TXTPDateType TradingDay;
- ///˾
- TXTPBrokerIDType BrokerID;
-};
-
-///ǰ״̬
-struct CXTPFrontStatusField
-{
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///ϴα
- TXTPDateType LastReportDate;
- ///ϴαʱ
- TXTPTimeType LastReportTime;
- ///ǷԾ
- TXTPBoolType IsActive;
-};
-
-///ûỰ
-struct CXTPUserSessionField
-{
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///¼
- TXTPDateType LoginDate;
- ///¼ʱ
- TXTPTimeType LoginTime;
- ///IPַ
- TXTPIPAddressType IPAddress;
- ///û˲ƷϢ
- TXTPProductInfoType UserProductInfo;
- ///ӿڶ˲ƷϢ
- TXTPProductInfoType InterfaceProductInfo;
- ///ЭϢ
- TXTPProtocolInfoType ProtocolInfo;
- ///Macַ
- TXTPMacAddressType MacAddress;
-};
-
-///
-struct CXTPOrderField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPOrderRefType OrderRef;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///۸
- TXTPOrderPriceTypeType OrderPriceType;
- ///
- TXTPDirectionType Direction;
- ///Ͽƽ־
- TXTPCombOffsetFlagType CombOffsetFlag;
- ///Ͷױ־
- TXTPCombHedgeFlagType CombHedgeFlag;
- ///۸
- TXTPStockPriceType LimitPrice;
- ///
- TXTPVolumeType VolumeTotalOriginal;
- ///Ч
- TXTPTimeConditionType TimeCondition;
- ///GTD
- TXTPDateType GTDDate;
- ///ɽ
- TXTPVolumeConditionType VolumeCondition;
- ///Сɽ
- TXTPVolumeType MinVolume;
- ///
- TXTPContingentConditionType ContingentCondition;
- ///ֹ
- TXTPPriceType StopPrice;
- ///ǿƽԭ
- TXTPForceCloseReasonType ForceCloseReason;
- ///Զ־
- TXTPBoolType IsAutoSuspend;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///
- TXTPRequestIDType RequestID;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///ͻ
- TXTPClientIDType ClientID;
- ///ԼڽĴ
- TXTPExchangeInstIDType ExchangeInstID;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///װ
- TXTPInstallIDType InstallID;
- ///ύ״̬
- TXTPOrderSubmitStatusType OrderSubmitStatus;
- ///˻
- TXTPAccountIDType AccountID;
- ///ʾ
- TXTPSequenceNoType NotifySequence;
- ///
- TXTPDateType TradingDay;
- ///
- TXTPOrderSysIDType OrderSysID;
- ///Դ
- TXTPOrderSourceType OrderSource;
- ///״̬
- TXTPOrderStatusType OrderStatus;
- ///
- TXTPOrderTypeType OrderType;
- ///ɽ
- TXTPVolumeType VolumeTraded;
- ///ʣ
- TXTPVolumeType VolumeTotal;
- ///
- TXTPDateType InsertDate;
- ///ίʱ
- TXTPTimeType InsertTime;
- ///ʱ
- TXTPTimeType ActiveTime;
- ///ʱ
- TXTPTimeType SuspendTime;
- ///ʱ
- TXTPTimeType UpdateTime;
- ///ʱ
- TXTPTimeType CancelTime;
- ///ĽԱ
- TXTPTraderIDType ActiveTraderID;
- ///Ա
- TXTPParticipantIDType ClearingPartID;
- ///
- TXTPSequenceNoType SequenceNo;
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///û˲ƷϢ
- TXTPProductInfoType UserProductInfo;
- ///״̬Ϣ
- TXTPErrorMsgType StatusMsg;
- ///ûǿƽ־
- TXTPBoolType UserForceClose;
- ///û
- TXTPUserIDType ActiveUserID;
- ///˾
- TXTPSequenceNoType BrokerOrderSeq;
- ///ر
- TXTPOrderSysIDType RelativeOrderSysID;
- ///Ӫҵ
- TXTPBranchIDType BranchID;
- ///ɽ
- TXTPMoneyType TradeAmount;
- ///ǷETF
- TXTPBoolType IsETF;
- ///Լ
- TXTPInstrumentTypeType InstrumentType;
-};
-
-///
-struct CXTPOrderActionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPOrderActionRefType OrderActionRef;
- ///
- TXTPOrderRefType OrderRef;
- ///
- TXTPRequestIDType RequestID;
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///־
- TXTPActionFlagType ActionFlag;
- ///۸
- TXTPPriceType LimitPrice;
- ///仯
- TXTPVolumeType VolumeChange;
- ///
- TXTPDateType ActionDate;
- ///ʱ
- TXTPTimeType ActionTime;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///װ
- TXTPInstallIDType InstallID;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///ر
- TXTPOrderLocalIDType ActionLocalID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///ͻ
- TXTPClientIDType ClientID;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///״̬
- TXTPOrderActionStatusType OrderActionStatus;
- ///û
- TXTPUserIDType UserID;
- ///Ӫҵ
- TXTPBranchIDType BranchID;
- ///״̬Ϣ
- TXTPErrorMsgType StatusMsg;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Լ
- TXTPInstrumentTypeType InstrumentType;
-};
-
-///
-struct CXTPErrOrderField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPOrderRefType OrderRef;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///۸
- TXTPOrderPriceTypeType OrderPriceType;
- ///
- TXTPDirectionType Direction;
- ///Ͽƽ־
- TXTPCombOffsetFlagType CombOffsetFlag;
- ///Ͷױ־
- TXTPCombHedgeFlagType CombHedgeFlag;
- ///۸
- TXTPStockPriceType LimitPrice;
- ///
- TXTPVolumeType VolumeTotalOriginal;
- ///Ч
- TXTPTimeConditionType TimeCondition;
- ///GTD
- TXTPDateType GTDDate;
- ///ɽ
- TXTPVolumeConditionType VolumeCondition;
- ///Сɽ
- TXTPVolumeType MinVolume;
- ///
- TXTPContingentConditionType ContingentCondition;
- ///ֹ
- TXTPPriceType StopPrice;
- ///ǿƽԭ
- TXTPForceCloseReasonType ForceCloseReason;
- ///Զ־
- TXTPBoolType IsAutoSuspend;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///
- TXTPRequestIDType RequestID;
- ///ûǿƽ־
- TXTPBoolType UserForceClose;
- ///
- TXTPErrorIDType ErrorID;
- ///Ϣ
- TXTPErrorMsgType ErrorMsg;
-};
-
-///
-struct CXTPErrOrderActionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPOrderActionRefType OrderActionRef;
- ///
- TXTPOrderRefType OrderRef;
- ///
- TXTPRequestIDType RequestID;
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///־
- TXTPActionFlagType ActionFlag;
- ///۸
- TXTPPriceType LimitPrice;
- ///仯
- TXTPVolumeType VolumeChange;
- ///
- TXTPDateType ActionDate;
- ///ʱ
- TXTPTimeType ActionTime;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///װ
- TXTPInstallIDType InstallID;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///ر
- TXTPOrderLocalIDType ActionLocalID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///ͻ
- TXTPClientIDType ClientID;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///״̬
- TXTPOrderActionStatusType OrderActionStatus;
- ///û
- TXTPUserIDType UserID;
- ///Ӫҵ
- TXTPBranchIDType BranchID;
- ///״̬Ϣ
- TXTPErrorMsgType StatusMsg;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPErrorIDType ErrorID;
- ///Ϣ
- TXTPErrorMsgType ErrorMsg;
- ///Լ
- TXTPInstrumentTypeType InstrumentType;
-};
-
-///ɽ
-struct CXTPTradeField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPOrderRefType OrderRef;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ɽ
- TXTPTradeIDType TradeID;
- ///
- TXTPDirectionType Direction;
- ///
- TXTPOrderSysIDType OrderSysID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///ͻ
- TXTPClientIDType ClientID;
- ///ɫ
- TXTPTradingRoleType TradingRole;
- ///ԼڽĴ
- TXTPExchangeInstIDType ExchangeInstID;
- ///ƽ־
- TXTPOffsetFlagType OffsetFlag;
- ///Ͷױ־
- TXTPHedgeFlagType HedgeFlag;
- ///۸
- TXTPStockPriceType Price;
- ///
- TXTPVolumeType Volume;
- ///ɽʱ
- TXTPDateType TradeDate;
- ///ɽʱ
- TXTPTimeType TradeTime;
- ///ɽ
- TXTPTradeTypeType TradeType;
- ///ɽԴ
- TXTPPriceSourceType PriceSource;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
- ///Ա
- TXTPParticipantIDType ClearingPartID;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///
- TXTPSequenceNoType SequenceNo;
- ///ɽԴ
- TXTPTradeSourceType TradeSource;
- ///
- TXTPDateType TradingDay;
- ///˾
- TXTPSequenceNoType BrokerOrderSeq;
- ///ɽ
- TXTPMoneyType TradeAmount;
- ///ɽ
- TXTPTradeIndexType TradeIndex;
-};
-
-///Ͷֲ߳
-struct CXTPInvestorPositionField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///ֲֶշ
- TXTPPosiDirectionType PosiDirection;
- ///Ͷױ־
- TXTPHedgeFlagType HedgeFlag;
- ///ֲ
- TXTPPositionDateType PositionDate;
- ///ճֲ
- TXTPVolumeType YdPosition;
- ///ֲܳ
- TXTPVolumeType Position;
- ///ͷ
- TXTPVolumeType LongFrozen;
- ///ͷ
- TXTPVolumeType ShortFrozen;
- ///ֶ
- TXTPMoneyType LongFrozenAmount;
- ///ֶ
- TXTPMoneyType ShortFrozenAmount;
- ///
- TXTPVolumeType OpenVolume;
- ///ƽ
- TXTPVolumeType CloseVolume;
- ///ֽ
- TXTPMoneyType OpenAmount;
- ///ƽֽ
- TXTPMoneyType CloseAmount;
- ///ֲֳɱ
- TXTPMoneyType PositionCost;
- ///ʽ
- TXTPMoneyType FrozenCash;
- ///ʽ
- TXTPMoneyType CashIn;
- ///
- TXTPMoneyType Commission;
- ///ϴν
- TXTPPriceType PreSettlementPrice;
- ///ν
- TXTPPriceType SettlementPrice;
- ///
- TXTPDateType TradingDay;
- ///ֳɱ
- TXTPMoneyType OpenCost;
- ///֤
- TXTPMoneyType ExchangeMargin;
- ///ճֲ
- TXTPVolumeType TodayPosition;
- ///
- TXTPMoneyType TransferFee;
- ///ӡ˰
- TXTPMoneyType StampTax;
- ///깺
- TXTPVolumeType TodayPurRedVolume;
- ///
- TXTPRatioType ConversionRate;
- ///
- TXTPMoneyType ConversionAmount;
- ///֤ȯֵ
- TXTPMoneyType StockValue;
- ///
- TXTPExchangeIDType ExchangeID;
- ///AccountID
- TXTPAccountIDType AccountID;
- ///Ѻ
- TXTPVolumeType PledgeInPosition;
- ///عʹõıȯ
- TXTPVolumeType RepurchasePosition;
- ///ETFͷ
- TXTPVolumeType PurRedShortFrozen;
- ///
- TXTPVolumeType MarginTradeVolume;
- ///
- TXTPMoneyType MarginTradeAmount;
- ///붳
- TXTPVolumeType MarginTradeFrozenVolume;
- ///붳
- TXTPMoneyType MarginTradeFrozenAmount;
- ///ӯ
- TXTPMoneyType MarginTradeConversionProfit;
- ///ȯ
- TXTPVolumeType ShortSellVolume;
- ///ȯ
- TXTPMoneyType ShortSellAmount;
- ///ȯ
- TXTPVolumeType ShortSellFrozenVolume;
- ///ȯ
- TXTPMoneyType ShortSellFrozenAmount;
- ///ȯӯ
- TXTPMoneyType ShortSellConversionProfit;
- ///ȯֵ
- TXTPMoneyType SSStockValue;
- ///ʳֲ
- TXTPVolumeType TodayMTPosition;
- ///ȯֲ
- TXTPVolumeType TodaySSPosition;
- ///ʷֲֳֿɱ
- TXTPMoneyType YdOpenCost;
- ///λ
- TXTPVolumeType LockPosition;
- ///Ҳλ
- TXTPVolumeType CoverPosition;
- ///λ
- TXTPVolumeType LockFrozenPosition;
- ///λ
- TXTPVolumeType UnlockFrozenPosition;
- ///Ҷλ
- TXTPVolumeType CoverFrozenPosition;
- ///Ȩλ
- TXTPVolumeType ExecFrozenPosition;
- ///ձҲλ
- TXTPVolumeType YDCoverPosition;
-};
-
-///ͬ
-struct CXTPSyncDepositField
-{
- ///ˮ
- TXTPDepositSeqNoType DepositSeqNo;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPMoneyType Deposit;
- ///Ƿǿƽ
- TXTPBoolType IsForce;
- ///˻
- TXTPAccountIDType AccountID;
-};
-
-///ѯ
-struct CXTPQryExchangeField
-{
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///ѯƷ
-struct CXTPQryProductField
-{
- ///Ʒ
- TXTPInstrumentIDType ProductID;
-};
-
-///ѯԼ
-struct CXTPQryInstrumentField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ԼڽĴ
- TXTPExchangeInstIDType ExchangeInstID;
- ///Ʒ
- TXTPInstrumentIDType ProductID;
-};
-
-///ѯ˾
-struct CXTPQryBrokerField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
-};
-
-///ѯ˾Ա
-struct CXTPQryPartBrokerField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
-};
-
-///ѯͶ
-struct CXTPQryInvestorField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯױ
-struct CXTPQryTradingCodeField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ͻ
- TXTPClientIDType ClientID;
-};
-
-///ѯû
-struct CXTPQrySuperUserField
-{
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯûȨ
-struct CXTPQrySuperUserFunctionField
-{
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯ˾û
-struct CXTPQryBrokerUserField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯ˾ûȨ
-struct CXTPQryBrokerUserFunctionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯʽ˻
-struct CXTPQryTradingAccountField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯֹ¼û
-struct CXTPQryLoginForbiddenUserField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯ
-struct CXTPQryDepthMarketDataField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯԼȨ
-struct CXTPQryInstrumentTradingRightField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯͶֲ߳ϸ
-struct CXTPQryInvestorPositionDetailField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯծȯϢ
-struct CXTPQryBondInterestField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯֵϢ
-struct CXTPQryMarketRationInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷʺ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///ѯԼ
-struct CXTPQryInstrumentCommissionRateField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPDirectionType Direction;
- ///ƽ־
- TXTPOffsetFlagType OffsetFlag;
-};
-
-///ѯȯϢ
-struct CXTPQryExcessStockInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯͶʻϵ
-struct CXTPQryInvestorAccountField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯETFԼ
-struct CXTPQryETFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType ETFInstrumentID;
-};
-
-///ѯETFƱ
-struct CXTPQryETFBasketField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType ETFInstrumentID;
-};
-
-///ѯOFԼ
-struct CXTPQryOFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType OFInstrumentID;
-};
-
-///ѯSFԼ
-struct CXTPQrySFInstrumentField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///ETF֤ȯ
- TXTPInstrumentIDType SFInstrumentID;
-};
-
-///ѯԼֱ֤
-struct CXTPQryInstrumentUnitMarginField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯȨʽƲ
-struct CXTPQryOptionsFundLimitParamField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///ѯͶȨֲ
-struct CXTPQryInvestorOptionsPositionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ĺԼ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯԤϢ
-struct CXTPQryPreDelivInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯȯϢ
-struct CXTPQryCreditStockAssignInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯʷϢ
-struct CXTPQryCreditCashAssignInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯ֤ȯ
-struct CXTPQryConversionRateField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯʷøծϢ
-struct CXTPQryHisCreditDebtInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯԱ̻
-struct CXTPQryTraderOfferField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///Ա
- TXTPTraderIDType BranchPBU;
-};
-
-///ѯ鱨̻
-struct CXTPQryMDTraderOfferField
-{
- ///
- TXTPExchangeIDType ExchangeID;
- ///Ա
- TXTPParticipantIDType ParticipantID;
- ///Ա
- TXTPTraderIDType BranchPBU;
-};
-
-///ѯǰ״̬
-struct CXTPQryFrontStatusField
-{
- ///ǰñ
- TXTPFrontIDType FrontID;
-};
-
-///ѯûỰ
-struct CXTPQryUserSessionField
-{
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ѯ
-struct CXTPQryOrderField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///
- TXTPOrderSysIDType OrderSysID;
- ///ʼʱ
- TXTPTimeType InsertTimeStart;
- ///ʱ
- TXTPTimeType InsertTimeEnd;
-};
-
-///ѯ
-struct CXTPQryOrderActionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///ѯ
-struct CXTPQryErrOrderField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯ
-struct CXTPQryErrOrderActionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ѯɽ
-struct CXTPQryTradeField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///ɽ
- TXTPTradeIDType TradeID;
- ///ʼʱ
- TXTPTimeType TradeTimeStart;
- ///ʱ
- TXTPTimeType TradeTimeEnd;
-};
-
-///ѯͶֲ߳
-struct CXTPQryInvestorPositionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
-};
-
-///ѯˮ
-struct CXTPQrySyncDepositField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///ˮ
- TXTPDepositSeqNoType DepositSeqNo;
-};
-
-///û
-struct CXTPUserPasswordUpdateField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///ԭĿ
- TXTPPasswordType OldPassword;
- ///µĿ
- TXTPPasswordType NewPassword;
-};
-
-///ʽ˻
-struct CXTPTradingAccountPasswordUpdateField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷʺ
- TXTPAccountIDType AccountID;
- ///ԭĿ
- TXTPPasswordType OldPassword;
- ///µĿ
- TXTPPasswordType NewPassword;
-};
-
-///ֹͬû̬
-struct CXTPManualSyncBrokerUserOTPField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///̬
- TXTPOTPTypeType OTPType;
- ///һ̬
- TXTPPasswordType FirstOTP;
- ///ڶ̬
- TXTPPasswordType SecondOTP;
-};
-
-///˾û
-struct CXTPBrokerUserPasswordField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPPasswordType Password;
-};
-
-///ʽ˻
-struct CXTPTradingAccountPasswordField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷʺ
- TXTPAccountIDType AccountID;
- ///
- TXTPPasswordType Password;
-};
-
-///ûȨ
-struct CXTPUserRightField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///ͻȨ
- TXTPUserRightTypeType UserRightType;
- ///Ƿֹ
- TXTPBoolType IsForbidden;
-};
-
-///Ͷ˻
-struct CXTPInvestorAccountField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Ͷʺ
- TXTPAccountIDType AccountID;
- ///Ƿ˻
- TXTPBoolType IsDefault;
- ///˻
- TXTPAccountTypeType AccountType;
- ///ǷԾ
- TXTPBoolType IsActive;
- ///ϽԪ
- TXTPTraderIDType SHBranchPBU;
- ///Ԫ
- TXTPTraderIDType SZBranchPBU;
-};
-
-///ûIP
-struct CXTPUserIPField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///IPַ
- TXTPIPAddressType IPAddress;
- ///IPַ
- TXTPIPAddressType IPMask;
- ///Macַ
- TXTPMacAddressType MacAddress;
-};
-
-///û̬Ʋ
-struct CXTPBrokerUserOTPParamField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///̬ṩ
- TXTPOTPVendorsIDType OTPVendorsID;
- ///̬к
- TXTPSerialNumberType SerialNumber;
- ///Կ
- TXTPAuthKeyType AuthKey;
- ///Ưֵ
- TXTPLastDriftType LastDrift;
- ///ɹֵ
- TXTPLastSuccessType LastSuccess;
- ///̬
- TXTPOTPTypeType OTPType;
-};
-
-///û¼
-struct CXTPReqUserLoginField
-{
- ///
- TXTPDateType TradingDay;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPPasswordType Password;
- ///û˲ƷϢ
- TXTPProductInfoType UserProductInfo;
- ///ӿڶ˲ƷϢ
- TXTPProductInfoType InterfaceProductInfo;
- ///ЭϢ
- TXTPProtocolInfoType ProtocolInfo;
- ///Macַ
- TXTPMacAddressType MacAddress;
- ///̬
- TXTPPasswordType OneTimePassword;
- ///նIPַ
- TXTPIPAddressType ClientIPAddress;
- ///ͻ֤
- TXTPAuthCodeType AuthCode;
-};
-
-///û¼Ӧ
-struct CXTPRspUserLoginField
-{
- ///
- TXTPDateType TradingDay;
- ///¼ɹʱ
- TXTPTimeType LoginTime;
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///ϵͳ
- TXTPSystemNameType SystemName;
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///
- TXTPOrderRefType MaxOrderRef;
-};
-
-///ûdz
-struct CXTPUserLogoutField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///ȫdzϢ
-struct CXTPLogoutAllField
-{
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///ϵͳ
- TXTPSystemNameType SystemName;
-};
-
-///ǿƽԱ˳
-struct CXTPForceUserLogoutField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///˾û
-struct CXTPActivateBrokerUserField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
-};
-
-///뱨
-struct CXTPInputOrderField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///
- TXTPOrderRefType OrderRef;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///۸
- TXTPOrderPriceTypeType OrderPriceType;
- ///
- TXTPDirectionType Direction;
- ///Ͽƽ־
- TXTPCombOffsetFlagType CombOffsetFlag;
- ///Ͷױ־
- TXTPCombHedgeFlagType CombHedgeFlag;
- ///۸
- TXTPStockPriceType LimitPrice;
- ///
- TXTPVolumeType VolumeTotalOriginal;
- ///Ч
- TXTPTimeConditionType TimeCondition;
- ///GTD
- TXTPDateType GTDDate;
- ///ɽ
- TXTPVolumeConditionType VolumeCondition;
- ///Сɽ
- TXTPVolumeType MinVolume;
- ///
- TXTPContingentConditionType ContingentCondition;
- ///ֹ
- TXTPPriceType StopPrice;
- ///ǿƽԭ
- TXTPForceCloseReasonType ForceCloseReason;
- ///Զ־
- TXTPBoolType IsAutoSuspend;
- ///ҵԪ
- TXTPBusinessUnitType BusinessUnit;
- ///
- TXTPRequestIDType RequestID;
- ///ûǿƽ־
- TXTPBoolType UserForceClose;
-};
-
-///뱨
-struct CXTPInputOrderActionField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///
- TXTPOrderActionRefType OrderActionRef;
- ///
- TXTPOrderRefType OrderRef;
- ///
- TXTPRequestIDType RequestID;
- ///ǰñ
- TXTPFrontIDType FrontID;
- ///Ự
- TXTPSessionIDType SessionID;
- ///
- TXTPExchangeIDType ExchangeID;
- ///־
- TXTPActionFlagType ActionFlag;
- ///۸
- TXTPPriceType LimitPrice;
- ///仯
- TXTPVolumeType VolumeChange;
- ///û
- TXTPUserIDType UserID;
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///Ա
- TXTPTraderIDType BranchPBU;
- ///ر
- TXTPOrderLocalIDType OrderLocalID;
-};
-
-///ָĺԼ
-// struct CXTPSpecificInstrumentField
-// {
-// ///Լ
-// TXTPInstrumentIDType InstrumentID;
-// ///
-// TXTPExchangeIDType ExchangeID;
-// };
-
-///ָĽ
-struct CXTPSpecificExchangeField
-{
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///
-struct CXTPMarketDataBaseField
-{
- ///
- TXTPDateType TradingDay;
- ///ϴν
- TXTPPriceType PreSettlementPrice;
- ///
- TXTPPriceType PreClosePrice;
- ///ֲ
- TXTPLargeVolumeType PreOpenInterest;
- ///ʵ
- TXTPRatioType PreDelta;
-};
-
-///龲̬
-struct CXTPMarketDataStaticField
-{
- ///
- TXTPPriceType OpenPrice;
- ///
- TXTPPriceType HighestPrice;
- ///ͼ
- TXTPPriceType LowestPrice;
- ///
- TXTPPriceType ClosePrice;
- ///ͣ
- TXTPPriceType UpperLimitPrice;
- ///ͣ
- TXTPPriceType LowerLimitPrice;
- ///ν
- TXTPPriceType SettlementPrice;
- ///ʵ
- TXTPRatioType CurrDelta;
-};
-
-///³ɽ
-struct CXTPMarketDataLastMatchField
-{
- ///¼
- TXTPPriceType LastPrice;
- ///
- TXTPVolumeType Volume;
- ///ɽ
- TXTPMoneyType Turnover;
- ///ֲ
- TXTPLargeVolumeType OpenInterest;
- ///()
- TXTPLargeVolumeType Volume_New;
-};
-
-///ż
-struct CXTPMarketDataBestPriceField
-{
- ///һ
- TXTPPriceType BidPrice1;
- ///һ
- TXTPVolumeType BidVolume1;
- ///һ
- TXTPPriceType AskPrice1;
- ///һ
- TXTPVolumeType AskVolume1;
-};
-
-///
-struct CXTPMarketDataBid23Field
-{
- ///۶
- TXTPPriceType BidPrice2;
- ///
- TXTPVolumeType BidVolume2;
- ///
- TXTPPriceType BidPrice3;
- ///
- TXTPVolumeType BidVolume3;
-};
-
-///
-struct CXTPMarketDataAsk23Field
-{
- ///۶
- TXTPPriceType AskPrice2;
- ///
- TXTPVolumeType AskVolume2;
- ///
- TXTPPriceType AskPrice3;
- ///
- TXTPVolumeType AskVolume3;
-};
-
-///ġ
-struct CXTPMarketDataBid45Field
-{
- ///
- TXTPPriceType BidPrice4;
- ///
- TXTPVolumeType BidVolume4;
- ///
- TXTPPriceType BidPrice5;
- ///
- TXTPVolumeType BidVolume5;
-};
-
-///ġ
-struct CXTPMarketDataAsk45Field
-{
- ///
- TXTPPriceType AskPrice4;
- ///
- TXTPVolumeType AskVolume4;
- ///
- TXTPPriceType AskPrice5;
- ///
- TXTPVolumeType AskVolume5;
-};
-
-///ʱ
-struct CXTPMarketDataUpdateTimeField
-{
- ///Լ
- TXTPInstrumentIDType InstrumentID;
- ///ʱ
- TXTPTimeType UpdateTime;
- ///ĺ
- TXTPMillisecType UpdateMillisec;
- ///ҵ
- TXTPDateType ActionDay;
-};
-
-///ɽ
-struct CXTPMarketDataAveragePriceField
-{
- ///վ
- TXTPPriceType AveragePrice;
-};
-
-///齻
-struct CXTPMarketDataExchangeField
-{
- ///
- TXTPExchangeIDType ExchangeID;
-};
-
-///Ϣַ
-struct CXTPDisseminationField
-{
- ///ϵк
- TXTPSequenceSeriesType SequenceSeries;
- ///к
- TXTPSequenceNoType SequenceNo;
-};
-
-///ʽת
-struct CXTPInputFundTransferField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Ͷʽʺ
- TXTPAccountIDType AccountID;
- ///ʽʻ
- TXTPPasswordType Password;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPTradeAmountType TradeAmount;
- ///ժҪ
- TXTPDigestType Digest;
- ///˻
- TXTPAccountTypeType AccountType;
-};
-
-///ʽת
-struct CXTPFundTransferField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///Ͷʽʺ
- TXTPAccountIDType AccountID;
- ///ʽʻ
- TXTPPasswordType Password;
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPTradeAmountType TradeAmount;
- ///ժҪ
- TXTPDigestType Digest;
- ///Ự
- TXTPSessionIDType SessionID;
- ///Liberˮ
- TXTPLiberSerialType LiberSerial;
- ///תƽ̨ˮ
- TXTPPlateSerialType PlateSerial;
- ///ˮ
- TXTPBankSerialType TransferSerial;
- ///
- TXTPDateType TradingDay;
- ///תʱ
- TXTPTimeType TradeTime;
- ///
- TXTPFundDirectionType FundDirection;
- ///
- TXTPErrorIDType ErrorID;
- ///Ϣ
- TXTPErrorMsgType ErrorMsg;
-};
-
-///ʽת˲ѯ
-struct CXTPQryFundTransferSerialField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷʽʺ
- TXTPAccountIDType AccountID;
- ///˻
- TXTPAccountTypeType AccountType;
-};
-
-///ʽת
-struct CXTPFundInterTransferField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///û
- TXTPUserIDType UserID;
- ///ʽ˻
- TXTPAccountIDType AccountID;
- ///ʽ˻
- TXTPPasswordType Password;
- ///
- TXTPTradeAmountType TradeAmount;
- ///ת
- TXTPFundInterTransferTypeType TransferType;
- ///ʽת
- TXTPLiberSerialType SerialID;
-};
-
-///ʽתˮ
-struct CXTPFundInterTransferSerialField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
- ///û
- TXTPUserIDType UserID;
- ///ʽ˻
- TXTPAccountIDType AccountID;
- ///ʽ˻
- TXTPPasswordType Password;
- ///
- TXTPTradeAmountType TradeAmount;
- ///ת
- TXTPFundInterTransferTypeType TransferType;
- ///ʽת
- TXTPLiberSerialType SerialID;
- ///תʱ
- TXTPTimeType TransferTime;
- ///
- TXTPErrorIDType ErrorID;
- ///Ϣ
- TXTPErrorMsgType ErrorMsg;
-};
-
-///ʽתˮѯ
-struct CXTPQryFundInterTransferSerialField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///Ͷߴ
- TXTPInvestorIDType InvestorID;
-};
-
-///ȡݿϢ
-struct CXTPFetchDBInfoField
-{
- ///û
- TXTPUserIDType UserID;
- ///
- TXTPPasswordType Password;
- ///ݿ
- TXTPUserNameType DBIndex;
- ///ݿIPַ
- TXTPIPAddressType IPAddress;
- ///ݿIP˿
- TXTPIPPortType IPPort;
- ///ݿ
- TXTPUserNameType DBName;
- ///ݿû
- TXTPUserIDType DBUserID;
- ///ݿ
- TXTPPasswordType DBPassword;
-};
-
-///MDûϢ
-struct CXTPMDUserInfoField
-{
- ///˾
- TXTPBrokerIDType BrokerID;
- ///û
- TXTPUserIDType UserID;
- ///û
- TXTPUserNameType UserName;
- ///
- TXTPPasswordType Password;
- ///ϵͳ
- TXTPSequenceNoType MDSysID;
- ///Ʊ
- TXTPVolumeType MaxStockCount;
- ///Ȩ
- TXTPVolumeType MaxOptionsCount;
-};
-
-
-#endif
diff --git a/vn.xtp/pyscript/notused/xtp_quote_api_compatible.h b/vn.xtp/pyscript/notused/xtp_quote_api_compatible.h
deleted file mode 100644
index 9b10f20a..00000000
--- a/vn.xtp/pyscript/notused/xtp_quote_api_compatible.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-///@author ̩֤ȯɷ˾
-///@file xtp_quote_api_compatible.h
-///@brief 鶩Ŀͻ˼ݽӿ
-/////////////////////////////////////////////////////////////////////////
-
-#ifndef _XTP_QUOTE_API_COMPATIBLE_H_
-#define _XTP_QUOTE_API_COMPATIBLE_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "xtp_api_struct.h"
-#include "xtp_api_struct_compatible.h"
-
-#if defined(ISLIB) && defined(WIN32)
-#ifdef LIB_MD_API_EXPORT
-#define MD_API_EXPORT __declspec(dllexport)
-#else
-#define MD_API_EXPORT __declspec(dllimport)
-#endif
-#else
-#define MD_API_EXPORT
-#endif
-
-/*!
- * \class XTP::API::QuoteCompatibleSpi
- *
- * \brief ص
- *
- * \author ̩֤ȯɷ˾
- * \date ʮ 2015
- */
-namespace XTP {
- namespace API {
- class QuoteCompatibleSpi
- {
- public:
- ///ͻ뽻̨ͨӶϿʱ÷áAPIԶӣͻ˿ɲ
- ///@param nReason ԭ
- /// 0x1001 ʧ
- /// 0x1002 дʧ
- /// 0x2001 ʱ
- /// 0x2002 ʧ
- /// 0x2003 յ
- virtual void OnFrontDisconnected(int nReason) {};
-
-
- ///Ӧ
- ///@param pRspInfo Ϣ
- ///@param nRequestID ID
- ///@param bIsLast Ƿһ
- virtual void OnRspError(CXTPRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
-
- ///dzӦ
- ///@param pUserLogout ûdzIJ
- ///@param pRspInfo Ϣ
- ///@param nRequestID ID
- ///@param bIsLast Ƿһ
- virtual void OnRspUserLogout(CXTPUserLogoutField *pUserLogout, CXTPRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
-
- ///Ӧ
- ///@param pSpecificInstrument ϸĺԼ
- ///@param pRspInfo Ϣ
- ///@param nRequestID ID
- ///@param bIsLast Ƿһ
- virtual void OnRspSubMarketData(CXTPSpecificInstrumentField *pSpecificInstrument, CXTPRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
-
- ///ȡӦ
- ///@param pSpecificInstrument ϸĺԼȡ
- ///@param pRspInfo Ϣ
- ///@param nRequestID ID
- ///@param bIsLast Ƿһ
- virtual void OnRspUnSubMarketData(CXTPSpecificInstrumentField *pSpecificInstrument, CXTPRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
-
- ///֪ͨ
- ///@param pDepthMarketData
- virtual void OnRtnDepthMarketData(CXTPDepthMarketDataField *pDepthMarketData) {};
- };
- }
-}
-
-
-/*!
-* \class XTP::API::QuoteCompatibleApi
-*
-* \brief 鶩ļݽӿ
-*
-* \author ̩֤ȯɷ˾
-* \date ʮ 2015
-*/
-namespace XTP {
- namespace API {
- class MD_API_EXPORT QuoteCompatibleApi
- {
- public:
- ///QuoteApi
- ///@param pszFlowPath ϢļĿ¼ĬΪǰĿ¼
- ///@return UserApi
- ///modify for udp marketdata
- static QuoteCompatibleApi *CreateQuoteApi(const char *pszFlowPath = "");
-
- ///ɾӿڶ
- ///@remark ʹñӿڶʱ,øúɾӿڶ
- virtual void Release() = 0;
-
-
- ///ȴӿ߳̽
- ///@return ߳˳
- virtual int Join() = 0;
-
- ///ȡǰ
- ///@return ȡĽ
- ///@remark ֻе¼ɹ,ܵõȷĽ
- virtual const char *GetTradingDay() = 0;
-
- ///עǰûַ
- ///@param pszFrontAddress ǰûַ
- ///@remark ַĸʽΪprotocol://ipaddress:port磺tcp://127.0.0.1:17001
- ///@remark tcpЭ飬127.0.0.1ַ17001˿ںš
- virtual void RegisterFront(char *pszFrontAddress) = 0;
-
- ///עصӿ
- ///@param pSpi Իصӿʵ
- virtual void RegisterSpi(QuoteCompatibleSpi *pSpi) = 0;
-
- ///顣
- ///@param ppInstrumentID ԼID
- ///@param nCount Ҫ/˶ĺԼ
- ///@param pExchageID
- ///@remark һԶͬһ֤ȯĶԼ
- virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount, XTP_EXCHANGE_TYPE pExchageID) = 0;
-
- ///˶顣
- ///@param ppInstrumentID ԼID
- ///@param nCount Ҫ/˶ĺԼ
- ///@param pExchageID
- ///@remark һȡͬһ֤ȯĶԼ
- virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount, XTP_EXCHANGE_TYPE pExchageID) = 0;
-
- ///û¼
- ///@return ¼Ƿɹ0ʾ¼ɹǡ0ʾ¼
- ///@remark ˺ΪͬʽҪ첽ȴ¼ɹؼɽк
- virtual int ReqUserLogin(CXTPReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;
-
-
- ///dz
- ///@return dzǷɹ0ʾdzɹǡ0ʾdz
- virtual int ReqUserLogout(CXTPUserLogoutField *pUserLogout, int nRequestID) = 0;
-
- protected:
- ~QuoteCompatibleApi() {};
- };
- }
-}
-
-
-
-
-#endif
diff --git a/vn.xtp/pyscript/xoms_api_struct.h b/vn.xtp/pyscript/xoms_api_struct.h
deleted file mode 100644
index 0ca901d7..00000000
--- a/vn.xtp/pyscript/xoms_api_struct.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/*!
- * \file xoms_api_struct.h
- * \date 2015/10/23 16:45
- *
- * \author howellxu
- * Contact: user@company.com
- *
- * \brief 嶩ϵͳⲿӿݽṹ
- *
- * TODO: long description
- *
- * \note
-*/
-#ifndef _XOMS_API_STRUCT_H_
-#define _XOMS_API_STRUCT_H_
-
-#include "xtp_api_data_type.h"
-
-#define XTP_API_TICKER_LEN 13
-#define XTP_API_TICKER_NAME_LEN 48
-#define XTP_LOCAL_ORDER_LEN 11
-#define XTP_ORDER_EXCH_LEN 17
-#define XTP_ORDER_RES_LEN 4
-#define XTP_SUBPBUID_LEN 7
-#define XTP_BRANCH_PBU_LEN 7
-#define XTP_SYS_INSTRUMENT_LEN 24
-
-
-//=====================ͻ˽ӿڶ=================================
-///¶
-struct XTPOrderInsertInfo
-{
- ///XTPϵͳID
- uint64_t order_xtp_id;
- ///,ɿͻԶ
- uint32_t order_client_id;
- ///Լ ͻո
- char ticker[XTP_API_TICKER_LEN];
- ///г
- XTP_MARKET_TYPE market;
- ///۸
- double price;
- ///ֶֹۣΣ
- double stop_price;
- ///
- int64_t quantity;
- ///۸
- XTP_PRICE_TYPE price_type;
- ///
- XTP_SIDE_TYPE side;
- };
-
-///
-struct XTPOrderCancel
-{
- ///XTPϵͳID
- uint64_t order_cancel_xtp_id;
- ///
- uint32_t order_cancel_client_id;
- ///Լ
- char ticker[XTP_API_TICKER_LEN];
- ///г
- XTP_MARKET_TYPE market;
- ///ʱ
- int64_t action_time;
- ///
- uint32_t order_client_id;
- ///
- uint64_t order_xtp_id;
-};
-
-
-///ʧӦϢ
-struct XTPOrderCancelInfo
-{
- ///XTPID
- uint64_t order_cancel_xtp_id;
- ///ԭʼXTPID
- uint64_t order_xtp_id;
-};
-
-
-///Ӧṹ
-struct XTPOrderInfo
-{
- ///XTPϵͳID
- uint64_t order_xtp_id;
- ///ãûԶ
- uint32_t order_client_id;
- ///ãûԶ
- uint32_t order_cancel_client_id;
- ///XTPϵͳеid
- uint64_t order_cancel_xtp_id;
- ///Լ
- char ticker[XTP_API_TICKER_LEN];
- ///г
- XTP_MARKET_TYPE market;
- ///۸
- double price;
- ///
- int64_t quantity;
- ///۸
- XTP_PRICE_TYPE price_type;
- ///
- XTP_SIDE_TYPE side;
- ///ɽ
- int64_t qty_traded;
- ///ʣ
- int64_t qty_left;
- ///ίʱ
- int64_t insert_time;
- ///ʱ
- int64_t update_time;
- ///ʱ
- int64_t cancel_time;
- ///ɽ
- double trade_amount;
- ///ر OMSɵĵ
- char order_local_id[XTP_LOCAL_ORDER_LEN];
- ///״̬
- XTP_ORDER_STATUS_TYPE order_status;
- ///ύ״̬
- XTP_ORDER_SUBMIT_STATUS_TYPE order_submit_status;
- ///
- TXTPOrderTypeType order_type;
-};
-
-
-
-///ɽṹ
-struct XTPTradeReport
-{
- ///XTPϵͳID
- uint64_t order_xtp_id;
- ///
- uint32_t order_client_id;
- ///Լ
- char ticker[XTP_API_TICKER_LEN];
- ///г
- XTP_MARKET_TYPE market;
- ///
- uint64_t local_order_id;
- ///ɽ
- uint64_t exec_id;
- ///۸
- double price;
- ///
- int64_t quantity;
- ///ɽʱ
- int64_t trade_time;
- ///ɽ
- double trade_amount;
- ///ɽ --ر¼
- uint64_t report_index;
- /// --
- char order_exch_id[XTP_ORDER_EXCH_LEN];
- ///ɽ --ɽرеִ
- TXTPTradeTypeType trade_type;
- ///
- XTP_SIDE_TYPE side;
- ///Ա
- char branch_pbu[XTP_BRANCH_PBU_LEN];
-};
-
-
-//////////////////////////////////////////////////////////////////////////
-///ѯ
-//////////////////////////////////////////////////////////////////////////
-///ѯ-ѯ
-struct XTPQueryOrderReq
-{
- ///֤ȯ룬ΪգΪգĬϲѯʱڵгɽر
- char ticker[XTP_API_TICKER_LEN];
- ///ʽΪYYYYMMDDHHMMSSsssΪ0Ĭϵǰ0
- int64_t begin_time;
- ///ʽΪYYYYMMDDHHMMSSsssΪ0Ĭϵǰʱ
- int64_t end_time;
-};
-
-///ѯӦṹ
-typedef XTPOrderInfo XTPQueryOrderRsp;
-
-
-//////////////////////////////////////////////////////////////////////////
-///ɽرѯ
-//////////////////////////////////////////////////////////////////////////
-///ѯɽ-ִбŲѯֶΣ
-struct XTPQueryReportByExecIdReq
-{
- ///XTPϵͳID
- uint64_t order_xtp_id;
- ///ɽִб
- uint64_t exec_id;
-};
-
-///ѯɽر-ѯ
-struct XTPQueryTraderReq
-{
- ///֤ȯ룬ΪգΪգĬϲѯʱڵгɽر
- char ticker[XTP_API_TICKER_LEN];
- ///ʼʱ䣬ʽΪYYYYMMDDHHMMSSsssΪ0Ĭϵǰ0
- int64_t begin_time;
- ///ʱ䣬ʽΪYYYYMMDDHHMMSSsssΪ0Ĭϵǰʱ
- int64_t end_time;
-};
-
-///ɽرѯӦṹ
-typedef XTPTradeReport XTPQueryTradeRsp;
-
-
-
-//////////////////////////////////////////////////////////////////////////
-///˻ʽѯӦṹ
-//////////////////////////////////////////////////////////////////////////
-struct XTPQueryAssetRsp
-{
- ///ʲ
- double total_asset;
- ///ʽ
- double buying_power;
- ///֤ȯʲ
- double security_asset;
- ///ۼɽ֤ȯռʽ𣨱ֶΣ
- double fund_buy_amount;
- ///ۼɽãֶΣ
- double fund_buy_fee;
- ///ۼɽ֤ȯʽ𣨱ֶΣ
- double fund_sell_amount;
- ///ۼɽãֶΣ
- double fund_sell_fee;
-};
-
-
-
-//////////////////////////////////////////////////////////////////////////
-///ѯƱֲ
-//////////////////////////////////////////////////////////////////////////
-struct XTPQueryStkPositionRsp
-{
- ///֤ȯ
- char ticker[XTP_API_TICKER_LEN];
- ///֤ȯ
- char ticker_name[XTP_API_TICKER_NAME_LEN];
- ///ǰֲ
- int64_t total_qty;
- ///ùɷ
- int64_t sellable_qty;
- ///ֲֳɱ
- double avg_price;
- ///ӯ
- double unrealized_pnl;
-};
-
-
-
-
-#endif //_XOMS_API_STRUCT_H_
-
diff --git a/vn.xtp/pyscript/xquote_api_struct.h b/vn.xtp/pyscript/xquote_api_struct.h
deleted file mode 100644
index a0c12df5..00000000
--- a/vn.xtp/pyscript/xquote_api_struct.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-///@author ̩֤ȯɷ˾
-///@file xquote_api_struct.h
-///@brief ݽṹ
-/////////////////////////////////////////////////////////////////////////
-#ifndef _XQUOTE_API_STRUCT_H_
-#define _XQUOTE_API_STRUCT_H_
-
-#include
-#include "xtp_api_data_type.h"
-
-///ָĺԼ
-typedef struct XTPSpecificTickerStruct
-{
- ///
- XTP_EXCHANGE_TYPE exchange_id;
- ///Լ루Ϣ"600000 "
- char ticker[XTP_TICKER_LEN];
-} XTPST;
-
-
-///
-typedef struct XTPMarketDataStruct
-{
- //
- ///
- XTP_EXCHANGE_TYPE exchange_id;
- ///Լ루Ϣ
- char ticker[XTP_TICKER_LEN];
-
- // Ʊȼ۸
- ///¼
- double last_price;
- ///
- double pre_close_price;
- ///
- double open_price;
- ///
- double high_price;
- ///ͼ
- double low_price;
- ///
- double close_price;
-
- // ڻ
- ///ֲĿǰδд
- double pre_open_interest;
- ///ֲĿǰδд
- double open_interest;
- ///ϴνۣĿǰδд
- double pre_settlement_price;
- ///νۣĿǰδд
- double settlement_price;
-
- ///ۣͣĿǰδд
- double upper_limit_price;
- ///ۣͣĿǰδд
- double lower_limit_price;
- ///ʵȣĿǰδд
- double pre_delta;
- ///ʵȣĿǰδд
- double curr_delta;
-
- /// ʱ
- int64_t data_time;
-
- //
- ///
- int32_t qty;
- ///ɽ
- double turnover;
- ///վ
- double avg_price;
-
- //
- ///ʮ
- double bid[10];
- ///ʮ
- double ask[10];
- ///ʮ
- int32_t bid_qty[10];
- ///ʮ
- int32_t ask_qty[10];
-
- // ltsûаݣĿǰδд
- ///ɽ
- int32_t trades_count;
- ///ǰ״̬˵
- char ticker_status[8];
- ///ί
- int32_t total_bid_qty;
- ///ί
- int32_t total_ask_qty;
- ///Ȩƽί۸
- double ma_bid_price;
- ///Ȩƽί۸
- double ma_ask_price;
- ///ծȯȨƽί۸
- double ma_bond_bid_price;
- ///ծȯȨƽί۸
- double ma_bond_ask_price;
- ///ծȯ
- double yield_to_maturity;
- ///ETFֵֵ
- double iopv;
- ///ETF깺
- int32_t etf_buy_count;
- ///ETFر
- int32_t etf_sell_count;
- ///ETF깺
- double etf_buy_qty;
- ///ETF깺
- double etf_buy_money;
- ///ETF
- double etf_sell_qty;
- ///ETFؽ
- double etf_sell_money;
- ///Ȩִ֤е
- double total_warrant_exec_qty;
- ///Ȩ֤ͣ۸Ԫ
- double warrant_lower_price;
- ///Ȩ֤ͣ۸Ԫ
- double warrant_upper_price;
- ///볷
- int32_t cancel_buy_count;
- ///
- int32_t cancel_sell_count;
- ///볷
- double cancel_buy_qty;
- ///
- double cancel_sell_qty;
- ///볷
- double cancel_buy_money;
- ///
- double cancel_sell_money;
- ///ܱ
- int32_t total_buy_count;
- ///ܱ
- int32_t total_sell_count;
- ///ίгɽȴʱ
- int32_t duration_after_buy;
- ///ίгɽȴʱ
- int32_t duration_after_sell;
- ///ίмλ
- int32_t num_bid_orders;
- ///ίмλ
- int32_t num_ask_orders;
- ///ɽʱ䣨UA3113
- int32_t exec_time;
- ///б־UA103/UA104
- char is_market_closed[4];
- ///ԼֲUA103
- double total_position;
- ///ӯ1UA103
- double pe_ratio1;
- ///ӯ2UA103
- double pe_ratio2;
-} XTPMD;
-
-#endif
diff --git a/vn.xtp/pyscript/xtp_api_data_type.h b/vn.xtp/pyscript/xtp_api_data_type.h
deleted file mode 100644
index db16dbfa..00000000
--- a/vn.xtp/pyscript/xtp_api_data_type.h
+++ /dev/null
@@ -1,4736 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-
-///@author ̩֤ȯɷ˾
-
-///@file xtp_api_data_type.h
-
-///@brief ݻ
-
-/////////////////////////////////////////////////////////////////////////
-
-#ifndef _XTP_API_DATA_TYPE_H_
-
-#define _XTP_API_DATA_TYPE_H_
-
-
-
-/////////////////////////////////////////////////////////////////////////
-
-///@enum XTP_PROTOCOL_TYPE һͨѶЭ鷽ʽ
-
-/////////////////////////////////////////////////////////////////////////
-
-enum XTP_PROTOCOL_TYPE
-
-{
-
- XTP_PROTOCOL_TCP = 1, ///
-#include "xtp_api_data_type.h"
-
-///ӦϢ
-#define XTP_ERR_MSG_LEN 76
-typedef struct XTPRspInfoStruct
-{
- ///
- int32_t error_id;
- ///Ϣ
- char error_msg[XTP_ERR_MSG_LEN];
-} XTPRI;
-
-#endif // !_XTP_API_STRUCT_COMMON_H_
diff --git a/vn.xtp/pyscript/xtp_data_type.py b/vn.xtp/pyscript/xtp_data_type.py
deleted file mode 100644
index a2b7841b..00000000
--- a/vn.xtp/pyscript/xtp_data_type.py
+++ /dev/null
@@ -1,2301 +0,0 @@
-# encoding: UTF-8
-
-typedefDict = {}
-
-#########################################################################
-###@author 中泰证券股份有限公司
-###@file xtp_api_data_type.h
-###@brief 定义兼容数据基本类型
-#########################################################################
-
-#########################################################################
-###@enum XTP_PROTOCOL_TYPE 是一个通讯传输协议方式
-#########################################################################
-typedefDict["XTP_PROTOCOL_TYPE"] = "int"
-
-### 存放证券代码的字符串长度
-XTP_TICKER_LEN = 16
-
-#########################################################################
-###@enum XTP_EXCHANGE_TYPE 是交易所类型
-#########################################################################
-typedefDict["XTP_EXCHANGE_TYPE"] = "int"
-
-##########################################################################
-###市场类型
-##########################################################################
-typedefDict["XTP_MARKET_TYPE"] = "int"
-
-
-#########################################################################
-###@enum XTP_PRICE_TYPE 是一个价格类型
-#########################################################################
-typedefDict["XTP_PRICE_TYPE"] = "int"
-
-
-
-#########################################################################
-###@enum XTP_SIDE_TYPE 是一个买卖方向类型
-#########################################################################
-typedefDict["XTP_SIDE_TYPE"] = "int"
-
-#########################################################################
-###@enum XTP_ORDER_ACTION_STATUS_TYPE 是一个报单操作状态类型
-#########################################################################
-typedefDict["XTP_ORDER_ACTION_STATUS_TYPE"] = "int"
-
-#########################################################################
-###XTP_ORDER_STATUS_TYPE是一个报单状态类型
-#########################################################################
-typedefDict["XTP_ORDER_STATUS_TYPE"] = "int"
-
-#########################################################################
-###XTP_ORDER_SUBMIT_STATUS_TYPE是一个报单提交状态类型
-#########################################################################
-typedefDict["XTP_ORDER_SUBMIT_STATUS_TYPE"] = "int"
-
-
-#########################################################################
-###@enum XTP_TE_RESUME_TYPE 是一个私有流重传方式
-#########################################################################
-typedefDict["XTP_TE_RESUME_TYPE"] = "int"
-
-
-
-#########################################################################
-###TXTPErrorIDType是一个错误代码类型
-#########################################################################
-typedefDict["TXTPErrorIDType"] = "int"
-
-#########################################################################
-###TXTPErrorMsgType是一个错误信息类型
-#########################################################################
-typedefDict["TXTPErrorMsgType"] = "string"
-
-#########################################################################
-###TXTPExchangeIDType是一个交易所代码类型
-#########################################################################
-typedefDict["TXTPExchangeIDType"] = "int"
-
-#########################################################################
-###TXTPExchangeNameType是一个交易所名称类型
-#########################################################################
-typedefDict["TXTPExchangeNameType"] = "string"
-
-#########################################################################
-###TXTPExchangePropertyType是一个交易所属性类型
-#########################################################################
-typedefDict["TXTPExchangePropertyType"] = "char"
-
-###正常
-XTP_EXP_Normal = '0'
-###根据成交生成报单
-XTP_EXP_GenOrderByTrade = '1'
-
-#########################################################################
-###TXTPExchangeConnectStatusType是一个交易所连接状态类型
-#########################################################################
-typedefDict["TXTPExchangeConnectStatusType"] = "char"
-
-###没有任何连接
-XTP_ECS_NoConnection = '1'
-###已经发出合约查询请求
-XTP_ECS_QryInstrumentSent = '2'
-###已经获取信息
-XTP_ECS_GotInformation = '9'
-
-
-
-#########################################################################
-###TXTPDateType是一个日期类型
-#########################################################################
-typedefDict["TXTPDateType"] = "string"
-
-#########################################################################
-###TXTPTimeType是一个时间类型
-#########################################################################
-typedefDict["TXTPTimeType"] = "string"
-
-#########################################################################
-###TXTPInstrumentIDType是一个合约代码类型
-#########################################################################
-typedefDict["TXTPInstrumentIDType"] = "string"
-
-#########################################################################
-###TXTPProductNameType是一个产品名称类型
-#########################################################################
-typedefDict["TXTPProductNameType"] = "string"
-
-#########################################################################
-###TXTPProductClassType是一个产品类型类型
-#########################################################################
-typedefDict["TXTPProductClassType"] = "char"
-
-###期货
-XTP_PC_Futures = '1'
-###期权
-XTP_PC_Options = '2'
-###组合
-XTP_PC_Combination = '3'
-###即期
-XTP_PC_Spot = '4'
-###期转现
-XTP_PC_EFP = '5'
-###证券A股
-XTP_PC_StockA = '6'
-###证券B股
-XTP_PC_StockB = '7'
-###ETF
-XTP_PC_ETF = '8'
-###ETF申赎
-XTP_PC_ETFPurRed = '9'
-
-
-
-#########################################################################
-###TXTPVolumeMultipleType是一个合约数量乘数类型
-#########################################################################
-typedefDict["TXTPVolumeMultipleType"] = "int"
-
-#########################################################################
-###TXTPPriceType是一个价格类型
-#########################################################################
-typedefDict["TXTPPriceType"] = "float"
-
-#########################################################################
-###TXTPVolumeType是一个数量类型
-#########################################################################
-typedefDict["TXTPVolumeType"] = "int"
-
-#########################################################################
-###TXTPPositionTypeType是一个持仓类型类型
-#########################################################################
-typedefDict["TXTPPositionTypeType"] = "char"
-
-###净持仓
-XTP_PT_Net = '1'
-###综合持仓
-XTP_PT_Gross = '2'
-
-
-
-#########################################################################
-###TXTPPositionDateTypeType是一个持仓日期类型类型
-#########################################################################
-typedefDict["TXTPPositionDateTypeType"] = "char"
-
-###使用历史持仓
-XTP_PDT_UseHistory = '1'
-###不使用历史持仓
-XTP_PDT_NoUseHistory = '2'
-
-
-
-#########################################################################
-###TXTPExchangeInstIDType是一个合约在交易所的代码类型
-#########################################################################
-typedefDict["TXTPExchangeInstIDType"] = "string"
-
-#########################################################################
-###TXTPYearType是一个年份类型
-#########################################################################
-typedefDict["TXTPYearType"] = "int"
-
-#########################################################################
-###TXTPMonthType是一个月份类型
-#########################################################################
-typedefDict["TXTPMonthType"] = "int"
-
-#########################################################################
-###TXTPInstLifePhaseType是一个合约生命周期状态类型
-#########################################################################
-typedefDict["TXTPInstLifePhaseType"] = "char"
-
-###未上市
-XTP_IP_NotStart = '0'
-###上市
-XTP_IP_Started = '1'
-###停牌
-XTP_IP_Pause = '2'
-###到期
-XTP_IP_Expired = '3'
-
-
-
-#########################################################################
-###TXTPBoolType是一个布尔型类型
-#########################################################################
-typedefDict["TXTPBoolType"] = "int"
-
-#########################################################################
-###TXTPRightModelIDType是一个股票权限模版代码类型
-#########################################################################
-typedefDict["TXTPRightModelIDType"] = "string"
-
-#########################################################################
-###TXTPRightModelNameType是一个股票权限模版名称类型
-#########################################################################
-typedefDict["TXTPRightModelNameType"] = "string"
-
-#########################################################################
-###TXTPPosTradeTypeType是一个持仓交易类型类型
-#########################################################################
-typedefDict["TXTPPosTradeTypeType"] = "char"
-
-###今日新增持仓能卖出
-XTP_PTT_CanSelTodayPos = '1'
-###今日新增持仓不能卖出
-XTP_PTT_CannotSellTodayPos = '2'
-
-
-
-#########################################################################
-###TXTPTraderIDType是一个交易所交易员代码类型
-#########################################################################
-typedefDict["TXTPTraderIDType"] = "string"
-
-#########################################################################
-###TXTPParticipantIDType是一个会员代码类型
-#########################################################################
-typedefDict["TXTPParticipantIDType"] = "string"
-
-#########################################################################
-###TXTPPasswordType是一个密码类型
-#########################################################################
-typedefDict["TXTPPasswordType"] = "string"
-
-#########################################################################
-###TXTPBrokerIDType是一个经纪公司代码类型
-#########################################################################
-typedefDict["TXTPBrokerIDType"] = "string"
-
-#########################################################################
-###TXTPOrderLocalIDType是一个本地报单编号类型
-#########################################################################
-typedefDict["TXTPOrderLocalIDType"] = "string"
-
-#########################################################################
-###TXTPBrokerAbbrType是一个经纪公司简称类型
-#########################################################################
-typedefDict["TXTPBrokerAbbrType"] = "string"
-
-#########################################################################
-###TXTPBrokerNameType是一个经纪公司名称类型
-#########################################################################
-typedefDict["TXTPBrokerNameType"] = "string"
-
-#########################################################################
-###TXTPInvestorIDType是一个投资者代码类型
-#########################################################################
-typedefDict["TXTPInvestorIDType"] = "string"
-
-#########################################################################
-###TXTPPartyNameType是一个参与人名称类型
-#########################################################################
-typedefDict["TXTPPartyNameType"] = "string"
-
-#########################################################################
-###TXTPIdCardTypeType是一个证件类型类型
-#########################################################################
-typedefDict["TXTPIdCardTypeType"] = "char"
-
-###组织机构代码
-XTP_ICT_EID = '0'
-###身份证
-XTP_ICT_IDCard = '1'
-###军官证
-XTP_ICT_OfficerIDCard = '2'
-###警官证
-XTP_ICT_PoliceIDCard = '3'
-###士兵证
-XTP_ICT_SoldierIDCard = '4'
-###户口簿
-XTP_ICT_HouseholdRegister = '5'
-###护照
-XTP_ICT_Passport = '6'
-###台胞证
-XTP_ICT_TaiwanCompatriotIDCard = '7'
-###回乡证
-XTP_ICT_HomeComingCard = '8'
-###营业执照号
-XTP_ICT_LicenseNo = '9'
-###税务登记号
-XTP_ICT_TaxNo = 'A'
-###其他证件
-XTP_ICT_OtherCard = 'x'
-
-
-
-#########################################################################
-###TXTPIdentifiedCardNoType是一个证件号码类型
-#########################################################################
-typedefDict["TXTPIdentifiedCardNoType"] = "string"
-
-#########################################################################
-###TXTPClientIDType是一个交易编码类型
-#########################################################################
-typedefDict["TXTPClientIDType"] = "string"
-
-#########################################################################
-###TXTPAccountIDType是一个投资者帐号类型
-#########################################################################
-typedefDict["TXTPAccountIDType"] = "string"
-
-#########################################################################
-###TXTPClientTypeType是一个交易编码类型类型
-#########################################################################
-typedefDict["TXTPClientTypeType"] = "char"
-
-###普通
-XTP_CLT_Normal = '1'
-###信用交易
-XTP_CLT_Credit = '2'
-###衍生品账户
-XTP_CLT_Derive = '3'
-###其他类型
-XTP_CLT_Other = '4'
-
-
-
-#########################################################################
-###TXTPInvestorGroupNameType是一个投资者分组名称类型
-#########################################################################
-typedefDict["TXTPInvestorGroupNameType"] = "string"
-
-#########################################################################
-###TXTPUserIDType是一个用户代码类型
-#########################################################################
-typedefDict["TXTPUserIDType"] = "string"
-
-#########################################################################
-###TXTPUserNameType是一个用户名称类型
-#########################################################################
-typedefDict["TXTPUserNameType"] = "string"
-
-#########################################################################
-###TXTPFunctionCodeType是一个功能代码类型
-#########################################################################
-typedefDict["TXTPFunctionCodeType"] = "char"
-
-###强制用户登出
-XTP_FC_ForceUserLogout = '2'
-###变更管理用户口令
-XTP_FC_UserPasswordUpdate = '3'
-###变更经纪公司口令
-XTP_FC_BrokerPasswordUpdate = '4'
-###变更投资者口令
-XTP_FC_InvestorPasswordUpdate = '5'
-###报单插入
-XTP_FC_OrderInsert = '6'
-###报单操作
-XTP_FC_OrderAction = '7'
-###同步系统数据
-XTP_FC_SyncSystemData = '8'
-###同步经纪公司数据
-XTP_FC_SyncBrokerData = '9'
-###超级查询
-XTP_FC_SuperQuery = 'B'
-###报单插入
-XTP_FC_ParkedOrderInsert = 'C'
-###报单操作
-XTP_FC_ParkedOrderAction = 'D'
-###同步动态令牌
-XTP_FC_SyncOTP = 'E'
-###未知单操作
-XTP_FC_UnkownOrderAction = 'F'
-###转托管
-XTP_FC_DepositoryTransfer = 'G'
-###余券划转
-XTP_FC_ExcessStockTransfer = 'H'
-
-
-
-#########################################################################
-###TXTPUserTypeType是一个用户类型类型
-#########################################################################
-typedefDict["TXTPUserTypeType"] = "char"
-
-###投资者
-XTP_UT_Investor = '0'
-###操作员
-XTP_UT_Operator = '1'
-###管理员
-XTP_UT_SuperUser = '2'
-
-
-
-#########################################################################
-###TXTPBrokerFunctionCodeType是一个经纪公司功能代码类型
-#########################################################################
-typedefDict["TXTPBrokerFunctionCodeType"] = "char"
-
-###强制用户登出
-XTP_BFC_ForceUserLogout = '1'
-###变更用户口令
-XTP_BFC_UserPasswordUpdate = '2'
-###同步经纪公司数据
-XTP_BFC_SyncBrokerData = '3'
-###报单插入
-XTP_BFC_OrderInsert = '5'
-###报单操作
-XTP_BFC_OrderAction = '6'
-###全部查询
-XTP_BFC_AllQuery = '7'
-###未知单操作
-XTP_BFC_UnkownOrderAction = '8'
-###转托管
-XTP_BFC_DepositoryTransfer = '9'
-###余券划转
-XTP_BFC_ExcessStockTransfer = 'A'
-###资金内转
-XTP_BFC_FundInterTransfer = 'B'
-###系统功能:登入#登出#修改密码等
-XTP_BFC_log = 'a'
-###基本查询:查询基础数据,如合约,交易所等常量
-XTP_BFC_BaseQry = 'b'
-###交易查询:如查成交,委托
-XTP_BFC_TradeQry = 'c'
-###交易功能:报单,撤单
-XTP_BFC_Trade = 'd'
-###转账
-XTP_BFC_Virement = 'e'
-###查询#管理:查询会话,踢人等
-XTP_BFC_Session = 'g'
-###同步动态令牌
-XTP_BFC_SyncOTP = 'E'
-
-
-
-#########################################################################
-###TXTPCurrencyCodeType是一个币种类型
-#########################################################################
-typedefDict["TXTPCurrencyCodeType"] = "string"
-
-#########################################################################
-###TXTPMoneyType是一个资金类型
-#########################################################################
-typedefDict["TXTPMoneyType"] = "float"
-
-#########################################################################
-###TXTPRatioType是一个比率类型
-#########################################################################
-typedefDict["TXTPRatioType"] = "float"
-
-#########################################################################
-###TXTPAccountTypeType是一个账户类型类型
-#########################################################################
-typedefDict["TXTPAccountTypeType"] = "char"
-
-###普通账户
-XTP_AcT_Normal = '1'
-###信用账户
-XTP_AcT_Credit = '2'
-###衍生品账户
-XTP_AcT_Derive = '3'
-###其他类型
-XTP_AcT_Other = '4'
-
-
-
-#########################################################################
-###TXTPDepartmentRangeType是一个投资者范围类型
-#########################################################################
-typedefDict["TXTPDepartmentRangeType"] = "char"
-
-###所有
-XTP_DR_All = '1'
-###组织架构
-XTP_DR_Group = '2'
-###单一投资者
-XTP_DR_Single = '3'
-
-
-
-#########################################################################
-###TXTPUserRightTypeType是一个客户权限类型类型
-#########################################################################
-typedefDict["TXTPUserRightTypeType"] = "char"
-
-###登录
-XTP_URT_Logon = '1'
-###银期转帐
-XTP_URT_Transfer = '2'
-###邮寄结算单
-XTP_URT_EMail = '3'
-###传真结算单
-XTP_URT_Fax = '4'
-###条件单
-XTP_URT_ConditionOrder = '5'
-
-
-
-#########################################################################
-###TXTPProductInfoType是一个产品信息类型
-#########################################################################
-typedefDict["TXTPProductInfoType"] = "string"
-
-#########################################################################
-###TXTPAuthCodeType是一个客户端认证码类型
-#########################################################################
-typedefDict["TXTPAuthCodeType"] = "string"
-
-#########################################################################
-###TXTPLargeVolumeType是一个大额数量类型
-#########################################################################
-typedefDict["TXTPLargeVolumeType"] = "float"
-
-#########################################################################
-###TXTPMillisecType是一个时间(毫秒)类型
-#########################################################################
-typedefDict["TXTPMillisecType"] = "int"
-
-#########################################################################
-###TXTPHedgeFlagType是一个投机套保标志类型
-#########################################################################
-typedefDict["TXTPHedgeFlagType"] = "char"
-
-###投机
-XTP_HF_Speculation = '1'
-###套保
-XTP_HF_Hedge = '3'
-
-
-
-#########################################################################
-###TXTPDirectionType是一个买卖方向类型
-#########################################################################
-typedefDict["TXTPDirectionType"] = "char"
-
-###买
-XTP_D_Buy = '0'
-###卖
-XTP_D_Sell = '1'
-
-
-###ETF申购
-XTP_D_ETFPur = '2'
-###ETF赎回
-XTP_D_ETFRed = '3'
-###现金替代,只用作回报
-XTP_D_CashIn = '4'
-###债券入库
-XTP_D_PledgeBondIn = '5'
-###债券出库
-XTP_D_PledgeBondOut = '6'
-###配股
-XTP_D_Rationed = '7'
-###转托管
-XTP_D_DepositoryTransfer = '8'
-###信用账户配股
-XTP_D_CreditRationed = '9'
-###担保品买入
-XTP_D_BuyCollateral = 'A'
-###担保品卖出
-XTP_D_SellCollateral = 'B'
-###担保品转入
-XTP_D_CollateralTransferIn = 'C'
-###担保品转出
-XTP_D_CollateralTransferOut = 'D'
-###融资买入
-XTP_D_MarginTrade = 'E'
-###融券卖出
-XTP_D_ShortSell = 'F'
-###卖券还款
-XTP_D_RepayMargin = 'G'
-###买券还券
-
-XTP_D_RepayStock = 'H'
-###直接还款
-XTP_D_DirectRepayMargin = 'I'
-###直接还券
-XTP_D_DirectRepayStock = 'J'
-###余券划转
-XTP_D_ExcessStockTransfer = 'K'
-###OF申购
-XTP_D_OFPur = 'L'
-###OF赎回
-XTP_D_OFRed = 'M'
-###SF拆分
-XTP_D_SFSplit = 'N'
-###SF合并
-XTP_D_SFMerge = 'O'
-###备兑
-XTP_D_Covered = 'P'
-###证券冻结(开)#解冻(平)
-XTP_D_Freeze = 'Q'
-###行权
-XTP_D_Execute = 'R'
-###CB回售
-XTP_D_CBRed = 'S'
-###CB转股
-XTP_D_CBConv = 'T'*/
-
-
-
-#########################################################################
-###TXTPTradeIDType是一个成交编号类型
-#########################################################################
-typedefDict["TXTPTradeIDType"] = "string"
-
-#########################################################################
-###TXTPTradeTypeType是一个成交类型类型
-#########################################################################
-typedefDict["TXTPTradeTypeType"] = "char"
-
-###普通成交
-XTP_TRDT_Common = '0'
-###期权执行
-XTP_TRDT_OptionsExecution = '1'
-###OTC成交
-XTP_TRDT_OTC = '2'
-###期转现衍生成交
-XTP_TRDT_EFPDerived = '3'
-###组合衍生成交
-XTP_TRDT_CombinationDerived = '4'
-###ETF申购
-XTP_TRDT_EFTPurchase = '5'
-###ETF赎回
-XTP_TRDT_EFTRedem = '6'
-
-
-
-#########################################################################
-###TXTPCreationredemptionStatusType是一个基金当天申购赎回状态类型
-#########################################################################
-typedefDict["TXTPCreationredemptionStatusType"] = "char"
-
-###不允许申购赎回
-XTP_CDS_Forbidden = '0'
-###表示允许申购和赎回
-XTP_CDS_Allow = '1'
-###允许申购、不允许赎回
-XTP_CDS_OnlyPurchase = '2'
-###不允许申购、允许赎回
-XTP_CDS_OnlyRedeem = '3'
-
-
-
-#########################################################################
-###TXTPETFCurrenceReplaceStatusType是一个ETF现金替代标志类型
-#########################################################################
-typedefDict["TXTPETFCurrenceReplaceStatusType"] = "char"
-
-###禁止现金替代
-XTP_ETFCRS_Forbidden = '0'
-###可以现金替代
-XTP_ETFCRS_Allow = '1'
-###必须现金替代
-XTP_ETFCRS_Force = '2'
-###跨市场股票退补现金替代
-XTP_ETFCRS_CrossMarketComp = '3'
-###跨市场必须现金替代
-XTP_ETFCRS_CrossMarketFroce = '4'
-
-
-
-#########################################################################
-###TXTPInterestType是一个利息类型
-#########################################################################
-typedefDict["TXTPInterestType"] = "float"
-
-#########################################################################
-###TXTPRepurchaseMaxTimesType是一个正回购放大倍数类型
-#########################################################################
-typedefDict["TXTPRepurchaseMaxTimesType"] = "float"
-
-#########################################################################
-###TXTPCapitalStockTypeType是一个股本类型类型
-#########################################################################
-typedefDict["TXTPCapitalStockTypeType"] = "char"
-
-###总通股本
-XTP_CPTSTOCK_TOTALSTOCK = '1'
-###流通股本
-XTP_CPTSTOCK_CIRCULATION = '2'
-
-
-
-#########################################################################
-###TXTPMarginPriceTypeType是一个保证金价格类型类型
-#########################################################################
-typedefDict["TXTPMarginPriceTypeType"] = "char"
-
-###昨结算价
-XTP_MPT_PreSettlementPrice = '1'
-###最新价
-XTP_MPT_SettlementPrice = '2'
-###成交均价
-XTP_MPT_AveragePrice = '3'
-###开仓价
-XTP_MPT_OpenPrice = '4'
-
-
-
-#########################################################################
-###TXTPAlgorithmType是一个盈亏算法类型
-#########################################################################
-typedefDict["TXTPAlgorithmType"] = "char"
-
-###浮盈浮亏都计算
-XTP_AG_All = '1'
-###浮盈不计,浮亏计
-XTP_AG_OnlyLost = '2'
-###浮盈计,浮亏不计
-XTP_AG_OnlyGain = '3'
-###浮盈浮亏都不计算
-XTP_AG_None = '4'
-
-
-
-#########################################################################
-###TXTPIncludeCloseProfitType是一个是否包含平仓盈利类型
-#########################################################################
-typedefDict["TXTPIncludeCloseProfitType"] = "char"
-
-###包含平仓盈利
-XTP_ICP_Include = '0'
-###不包含平仓盈利
-XTP_ICP_NotInclude = '2'
-
-
-
-#########################################################################
-###TXTPAllWithoutTradeType是一个是否受可提比例限制类型
-#########################################################################
-typedefDict["TXTPAllWithoutTradeType"] = "char"
-
-###不受可提比例限制
-XTP_AWT_Enable = '0'
-###受可提比例限制
-XTP_AWT_Disable = '2'
-###无仓不受可提比例限制
-XTP_AWT_NoHoldEnable = '3'
-
-
-
-#########################################################################
-###TXTPHandlePositionAlgoIDType是一个持仓处理算法编号类型
-#########################################################################
-typedefDict["TXTPHandlePositionAlgoIDType"] = "char"
-
-###基本
-XTP_HPA_Base = '1'
-###非交易
-XTP_HPA_NoneTrade = '4'
-###证券
-XTP_HPA_Stock = '5'
-
-
-
-#########################################################################
-###TXTPTradeParamIDType是一个交易系统参数代码类型
-#########################################################################
-typedefDict["TXTPTradeParamIDType"] = "char"
-
-###系统加密算法
-XTP_TPID_EncryptionStandard = 'E'
-###用户最大会话数
-XTP_TPID_SingleUserSessionMaxNum = 'S'
-###最大连续登录失败数
-XTP_TPID_LoginFailMaxNum = 'L'
-###是否强制认证
-XTP_TPID_IsAuthForce = 'A'
-###是否生成用户事件
-XTP_TPID_GenUserEvent = 'G'
-###起始报单本地编号
-XTP_TPID_StartOrderLocalID = 'O'
-###融资融券买券还券算法
-XTP_TPID_RepayStockAlgo = 'R'
-###衍生品账户资金提取线
-XTP_TPID_DeriveWithdrawRatio = 'D'
-
-
-
-#########################################################################
-###TXTPSettlementParamValueType是一个参数代码值类型
-#########################################################################
-typedefDict["TXTPSettlementParamValueType"] = "string"
-
-#########################################################################
-###TXTPMemoType是一个备注类型
-#########################################################################
-typedefDict["TXTPMemoType"] = "string"
-
-#########################################################################
-###TXTPPriorityType是一个优先级类型
-#########################################################################
-typedefDict["TXTPPriorityType"] = "int"
-
-#########################################################################
-###TXTPOrderRefType是一个报单引用类型
-#########################################################################
-typedefDict["TXTPOrderRefType"] = "string"
-
-#########################################################################
-###TXTPMarketIDType是一个市场代码类型
-#########################################################################
-typedefDict["TXTPMarketIDType"] = "string"
-
-#########################################################################
-###TXTPMacAddressType是一个Mac地址类型
-#########################################################################
-typedefDict["TXTPMacAddressType"] = "string"
-
-#########################################################################
-###TXTPInstrumentNameType是一个合约名称类型
-#########################################################################
-typedefDict["TXTPInstrumentNameType"] = "string"
-
-#########################################################################
-###TXTPOrderSysIDType是一个报单编号类型
-#########################################################################
-typedefDict["TXTPOrderSysIDType"] = "string"
-
-#########################################################################
-###TXTPIPAddressType是一个IP地址类型
-#########################################################################
-typedefDict["TXTPIPAddressType"] = "string"
-
-#########################################################################
-###TXTPIPPortType是一个IP端口类型
-#########################################################################
-typedefDict["TXTPIPPortType"] = "int"
-
-#########################################################################
-###TXTPProtocolInfoType是一个协议信息类型
-#########################################################################
-typedefDict["TXTPProtocolInfoType"] = "string"
-
-#########################################################################
-###TXTPDepositSeqNoType是一个出入金流水号类型
-#########################################################################
-typedefDict["TXTPDepositSeqNoType"] = "string"
-
-#########################################################################
-###TXTPSystemNameType是一个系统名称类型
-#########################################################################
-typedefDict["TXTPSystemNameType"] = "string"
-
-#########################################################################
-###TXTPInvestorRangeType是一个投资者范围类型
-#########################################################################
-typedefDict["TXTPInvestorRangeType"] = "char"
-
-###所有
-XTP_IR_All = '1'
-###投资者组
-XTP_IR_Group = '2'
-###单一投资者
-XTP_IR_Single = '3'
-
-
-
-#########################################################################
-###TXTPDataSyncStatusType是一个数据同步状态类型
-#########################################################################
-typedefDict["TXTPDataSyncStatusType"] = "char"
-
-###未同步
-XTP_DS_Asynchronous = '1'
-###同步中
-XTP_DS_Synchronizing = '2'
-###已同步
-XTP_DS_Synchronized = '3'
-
-
-
-#########################################################################
-###TXTPTraderConnectStatusType是一个交易所交易员连接状态类型
-#########################################################################
-typedefDict["TXTPTraderConnectStatusType"] = "char"
-
-###没有任何连接
-XTP_TCS_NotConnected = '1'
-###已经连接
-XTP_TCS_Connected = '2'
-###已经发出合约查询请求
-XTP_TCS_QryInstrumentSent = '3'
-###订阅私有流
-XTP_TCS_SubPrivateFlow = '4'
-
-
-
-#########################################################################
-###TXTPOrderActionStatusType是一个报单操作状态类型
-#########################################################################
-typedefDict["TXTPOrderActionStatusType"] = "char"
-
-###已经提交
-XTP_OAS_Submitted = 'a'
-###已经接受
-XTP_OAS_Accepted = 'b'
-###已经被拒绝
-XTP_OAS_Rejected = 'c'
-
-
-
-#########################################################################
-###TXTPOrderStatusType是一个报单状态类型
-#########################################################################
-typedefDict["TXTPOrderStatusType"] = "char"
-
-###全部成交
-XTP_OST_AllTraded = '0'
-###部分成交还在队列中
-XTP_OST_PartTradedQueueing = '1'
-###部分成交不在队列中
-XTP_OST_PartTradedNotQueueing = '2'
-###未成交还在队列中
-XTP_OST_NoTradeQueueing = '3'
-###未成交不在队列中
-XTP_OST_NoTradeNotQueueing = '4'
-###撤单
-XTP_OST_Canceled = '5'
-###未知
-XTP_OST_Unknown = 'a'
-###尚未触发
-XTP_OST_NotTouched = 'b'
-###已触发
-XTP_OST_Touched = 'c'
-
-
-
-#########################################################################
-###TXTPOrderSubmitStatusType是一个报单提交状态类型
-#########################################################################
-typedefDict["TXTPOrderSubmitStatusType"] = "char"
-
-###已经提交
-XTP_OSS_InsertSubmitted = '0'
-###撤单已经提交
-XTP_OSS_CancelSubmitted = '1'
-###修改已经提交
-XTP_OSS_ModifySubmitted = '2'
-###已经接受
-XTP_OSS_Accepted = '3'
-###报单已经被拒绝
-XTP_OSS_InsertRejected = '4'
-###撤单已经被拒绝
-XTP_OSS_CancelRejected = '5'
-###改单已经被拒绝
-XTP_OSS_ModifyRejected = '6'
-
-
-
-#########################################################################
-###TXTPPositionDateType是一个持仓日期类型
-#########################################################################
-typedefDict["TXTPPositionDateType"] = "char"
-
-###今日持仓
-XTP_PSD_Today = '1'
-###历史持仓
-XTP_PSD_History = '2'
-
-
-
-#########################################################################
-###TXTPTradingRoleType是一个交易角色类型
-#########################################################################
-typedefDict["TXTPTradingRoleType"] = "char"
-
-###代理
-XTP_ER_Broker = '1'
-###自营
-XTP_ER_Host = '2'
-###做市商
-XTP_ER_Maker = '3'
-
-
-
-#########################################################################
-###TXTPPosiDirectionType是一个持仓多空方向类型
-#########################################################################
-typedefDict["TXTPPosiDirectionType"] = "char"
-
-###净
-XTP_PD_Net = '1'
-###多头
-XTP_PD_Long = '2'
-###空头
-XTP_PD_Short = '3'
-###备兑
-XTP_PD_Covered = '4'
-
-
-
-#########################################################################
-###TXTPOrderPriceTypeType是一个报单价格条件类型
-#########################################################################
-typedefDict["TXTPOrderPriceTypeType"] = "char"
-
-###即时成交剩余撤销市价单
-XTP_OPT_AnyPrice = '1'
-###限价
-XTP_OPT_LimitPrice = '2'
-###最优五档即时成交剩余撤销市价单
-XTP_OPT_BestPrice = '3'
-###最优五档即时成交剩余转限价市价单
-XTP_OPT_BestLimitPrice = '4'
-###全部成交或撤销市价单
-XTP_OPT_AllPrice = '5'
-###本方最优价格市价单
-XTP_OPT_ForwardBestPrice = '6'
-###对方最优价格市价单
-XTP_OPT_ReverseBestPrice = '7'
-###即时成交剩余转限价市价单
-XTP_OPT_Any2LimitPrice = '8'
-###全部成交或撤销限价单
-XTP_OPT_AllLimitPrice = '9'
-
-###激活A股网络密码服务代码
-XTP_OPT_ActiveANetPassSvrCode = 'G'
-###注销A股网络密码服务代码
-XTP_OPT_InactiveANetPassSvrCode = 'H'
-###激活B股网络密码服务代码
-XTP_OPT_ActiveBNetPassSvrCode = 'I'
-###注销B股网络密码服务代码
-XTP_OPT_InactiveBNetPassSvrCode = 'J'
-###回购注销
-XTP_OPT_Repurchase = 'K'
-###指定撤销
-XTP_OPT_DesignatedCancel = 'L'
-###指定登记
-XTP_OPT_Designated = 'M'
-###证券参与申购
-XTP_OPT_SubscribingShares = 'N'
-###证券参与配股
-XTP_OPT_Split = 'O'
-###要约收购登记
-XTP_OPT_TenderOffer = 'P'
-###要约收购撤销
-XTP_OPT_TenderOfferCancel = 'Q'
-###证券投票
-XTP_OPT_Ballot = 'R'
-###可转债转换登记
-XTP_OPT_ConvertibleBondsConvet = 'S'
-###可转债回售登记
-XTP_OPT_ConvertibleBondsRepurchase = 'T'
-###权证行权
-XTP_OPT_Exercise = 'U'
-###开放式基金申购
-XTP_OPT_PurchasingFunds = 'V'
-###开放式基金赎回
-XTP_OPT_RedemingFunds = 'W'
-###开放式基金认购
-XTP_OPT_SubscribingFunds = 'X'
-###开放式基金转托管转出
-XTP_OPT_LOFIssue = 'Y'
-###开放式基金设置分红方式
-XTP_OPT_LOFSetBonusType = 'Z'
-###开放式基金转换为其他基金
-XTP_OPT_LOFConvert = 'a'
-###债券入库
-XTP_OPT_DebentureStockIn = 'b'
-###债券出库
-XTP_OPT_DebentureStockOut = 'c'
-###ETF申购
-XTP_OPT_PurchasesETF = 'd'
-###ETF赎回
-XTP_OPT_RedeemETF = 'e'*/
-
-
-
-#########################################################################
-###TXTPOffsetFlagType是一个开平标志类型
-#########################################################################
-typedefDict["TXTPOffsetFlagType"] = "char"
-
-###开仓
-XTP_OF_Open = '0'
-###平仓
-XTP_OF_Close = '1'
-###强平
-XTP_OF_ForceClose = '2'
-###平今
-XTP_OF_CloseToday = '3'
-###平昨
-XTP_OF_CloseYesterday = '4'
-###强减
-XTP_OF_ForceOff = '5'
-###本地强平
-XTP_OF_LocalForceClose = '6'
-
-
-
-#########################################################################
-###TXTPForceCloseReasonType是一个强平原因类型
-#########################################################################
-typedefDict["TXTPForceCloseReasonType"] = "char"
-
-###非强平
-XTP_FCC_NotForceClose = '0'
-###资金不足
-XTP_FCC_LackDeposit = '1'
-###客户超仓
-XTP_FCC_ClientOverPositionLimit = '2'
-###会员超仓
-XTP_FCC_MemberOverPositionLimit = '3'
-###持仓非整数倍
-XTP_FCC_NotMultiple = '4'
-###违规
-XTP_FCC_Violation = '5'
-###其它
-XTP_FCC_Other = '6'
-###自然人临近交割
-XTP_FCC_PersonDeliv = '7'
-
-
-
-#########################################################################
-###TXTPOrderTypeType是一个报单类型类型
-#########################################################################
-typedefDict["TXTPOrderTypeType"] = "char"
-
-###正常
-XTP_ORDT_Normal = '0'
-###报价衍生
-XTP_ORDT_DeriveFromQuote = '1'
-###组合衍生
-XTP_ORDT_DeriveFromCombination = '2'
-###组合报单
-XTP_ORDT_Combination = '3'
-###条件单
-XTP_ORDT_ConditionalOrder = '4'
-###互换单
-XTP_ORDT_Swap = '5'
-
-
-
-#########################################################################
-###TXTPTimeConditionType是一个有效期类型类型
-#########################################################################
-typedefDict["TXTPTimeConditionType"] = "char"
-
-###立即完成,否则撤销
-XTP_TC_IOC = '1'
-###本节有效
-XTP_TC_GFS = '2'
-###当日有效
-XTP_TC_GFD = '3'
-###指定日期前有效
-XTP_TC_GTD = '4'
-###撤销前有效
-XTP_TC_GTC = '5'
-###集合竞价有效
-XTP_TC_GFA = '6'
-
-
-
-#########################################################################
-###TXTPVolumeConditionType是一个成交量类型类型
-#########################################################################
-typedefDict["TXTPVolumeConditionType"] = "char"
-
-###任何数量
-XTP_VC_AV = '1'
-###最小数量
-XTP_VC_MV = '2'
-###全部数量
-XTP_VC_CV = '3'
-
-
-
-#########################################################################
-###TXTPContingentConditionType是一个触发条件类型
-#########################################################################
-typedefDict["TXTPContingentConditionType"] = "char"
-
-###立即
-XTP_CC_Immediately = '1'
-###止损
-XTP_CC_Touch = '2'
-###止赢
-XTP_CC_TouchProfit = '3'
-###预埋单
-XTP_CC_ParkedOrder = '4'
-###最新价大于条件价
-XTP_CC_LastPriceGreaterThanStopPrice = '5'
-###最新价大于等于条件价
-XTP_CC_LastPriceGreaterEqualStopPrice = '6'
-###最新价小于条件价
-XTP_CC_LastPriceLesserThanStopPrice = '7'
-###最新价小于等于条件价
-XTP_CC_LastPriceLesserEqualStopPrice = '8'
-###卖一价大于条件价
-XTP_CC_AskPriceGreaterThanStopPrice = '9'
-###卖一价大于等于条件价
-XTP_CC_AskPriceGreaterEqualStopPrice = 'A'
-###卖一价小于条件价
-XTP_CC_AskPriceLesserThanStopPrice = 'B'
-###卖一价小于等于条件价
-XTP_CC_AskPriceLesserEqualStopPrice = 'C'
-###买一价大于条件价
-XTP_CC_BidPriceGreaterThanStopPrice = 'D'
-###买一价大于等于条件价
-XTP_CC_BidPriceGreaterEqualStopPrice = 'E'
-###买一价小于条件价
-XTP_CC_BidPriceLesserThanStopPrice = 'F'
-###买一价小于等于条件价
-XTP_CC_BidPriceLesserEqualStopPrice = 'H'
-
-
-
-#########################################################################
-###TXTPActionFlagType是一个操作标志类型
-#########################################################################
-typedefDict["TXTPActionFlagType"] = "char"
-
-###删除
-XTP_AF_Delete = '0'
-###修改
-XTP_AF_Modify = '3'
-
-
-
-#########################################################################
-###TXTPTradingRightType是一个交易权限类型
-#########################################################################
-typedefDict["TXTPTradingRightType"] = "char"
-
-###可以交易
-XTP_TR_Allow = '0'
-###不能交易
-XTP_TR_Forbidden = '2'
-
-
-
-#########################################################################
-###TXTPOrderSourceType是一个报单来源类型
-#########################################################################
-typedefDict["TXTPOrderSourceType"] = "char"
-
-###来自参与者
-XTP_OSRC_Participant = '0'
-###来自管理员
-XTP_OSRC_Administrator = '1'
-
-
-
-#########################################################################
-###TXTPPriceSourceType是一个成交价来源类型
-#########################################################################
-typedefDict["TXTPPriceSourceType"] = "char"
-
-###前成交价
-XTP_PSRC_LastPrice = '0'
-###买委托价
-XTP_PSRC_Buy = '1'
-###卖委托价
-XTP_PSRC_Sell = '2'
-
-
-
-#########################################################################
-###TXTPOrderActionRefType是一个报单操作引用类型
-#########################################################################
-typedefDict["TXTPOrderActionRefType"] = "int"
-
-#########################################################################
-###TXTPFrontIDType是一个前置编号类型
-#########################################################################
-typedefDict["TXTPFrontIDType"] = "int"
-
-#########################################################################
-###TXTPSessionIDType是一个会话编号类型
-#########################################################################
-typedefDict["TXTPSessionIDType"] = "int"
-
-#########################################################################
-###TXTPInstallIDType是一个安装编号类型
-#########################################################################
-typedefDict["TXTPInstallIDType"] = "int"
-
-#########################################################################
-###TXTPSequenceNoType是一个序号类型
-#########################################################################
-typedefDict["TXTPSequenceNoType"] = "int"
-
-#########################################################################
-###TXTPRequestIDType是一个请求编号类型
-#########################################################################
-typedefDict["TXTPRequestIDType"] = "int"
-
-#########################################################################
-###TXTPCombOffsetFlagType是一个组合开平标志类型
-#########################################################################
-typedefDict["TXTPCombOffsetFlagType"] = "string"
-
-#########################################################################
-###TXTPCombHedgeFlagType是一个组合投机套保标志类型
-#########################################################################
-typedefDict["TXTPCombHedgeFlagType"] = "string"
-
-#########################################################################
-###TXTPSequenceSeriesType是一个序列系列号类型
-#########################################################################
-typedefDict["TXTPSequenceSeriesType"] = "int"
-
-#########################################################################
-###TXTPCommPhaseNoType是一个通讯时段编号类型
-#########################################################################
-typedefDict["TXTPCommPhaseNoType"] = "int"
-
-#########################################################################
-###TXTPUserEventTypeType是一个用户事件类型类型
-#########################################################################
-typedefDict["TXTPUserEventTypeType"] = "char"
-
-###登录
-XTP_UET_Login = '1'
-###登出
-XTP_UET_Logout = '2'
-###交易成功
-XTP_UET_Trading = '3'
-###交易失败
-XTP_UET_TradingError = '4'
-###修改密码
-XTP_UET_UpdatePassword = '5'
-###客户端认证
-XTP_UET_Authenticate = '6'
-###其他
-XTP_UET_Other = '9'
-
-
-
-#########################################################################
-###TXTPUserEventInfoType是一个用户事件信息类型
-#########################################################################
-typedefDict["TXTPUserEventInfoType"] = "string"
-
-#########################################################################
-###TXTPOTPTypeType是一个动态令牌类型类型
-#########################################################################
-typedefDict["TXTPOTPTypeType"] = "char"
-
-###无动态令牌
-XTP_OTP_NONE = '0'
-###时间令牌
-XTP_OTP_TOTP = '1'
-
-
-
-#########################################################################
-###TXTPTradeSourceType是一个成交来源类型
-#########################################################################
-typedefDict["TXTPTradeSourceType"] = "char"
-
-###来自交易所普通回报
-XTP_TSRC_NORMAL = '0'
-###来自查询
-XTP_TSRC_QUERY = '1'
-
-
-
-#########################################################################
-###TXTPBranchIDType是一个营业部编号类型
-#########################################################################
-typedefDict["TXTPBranchIDType"] = "string"
-
-#########################################################################
-###TXTPStockPriceType是一个证券交易价格类型
-#########################################################################
-typedefDict["TXTPStockPriceType"] = "string"
-
-#########################################################################
-###TXTPRightModelIDType是一个股票权限模版代码类型
-#########################################################################
-typedefDict["TXTPRightModelIDType"] = "string"
-
-#########################################################################
-###TXTPSerialNumberType是一个序列号类型
-#########################################################################
-typedefDict["TXTPSerialNumberType"] = "string"
-
-#########################################################################
-###TXTPInstrumentRangeType是一个股票权限分类类型
-#########################################################################
-typedefDict["TXTPInstrumentRangeType"] = "char"
-
-###所有
-XTP_INR_All = '1'
-###产品
-XTP_INR_Product = '2'
-###股票权限模版
-XTP_INR_Model = '3'
-###股票
-XTP_INR_Stock = '4'
-###市场
-XTP_INR_Market = '5'
-
-
-
-#########################################################################
-###TXTPBusinessUnitType是一个业务单元类型
-#########################################################################
-typedefDict["TXTPBusinessUnitType"] = "string"
-
-#########################################################################
-###TXTPOTPVendorsIDType是一个动态令牌提供商类型
-#########################################################################
-typedefDict["TXTPOTPVendorsIDType"] = "string"
-
-#########################################################################
-###TXTPLastDriftType是一个上次OTP漂移值类型
-#########################################################################
-typedefDict["TXTPLastDriftType"] = "int"
-
-#########################################################################
-###TXTPLastSuccessType是一个上次OTP成功值类型
-#########################################################################
-typedefDict["TXTPLastSuccessType"] = "int"
-
-#########################################################################
-###TXTPAuthKeyType是一个令牌密钥类型
-#########################################################################
-typedefDict["TXTPAuthKeyType"] = "string"
-
-#########################################################################
-###TXTPUserSessionHashType是一个用户会话Hash值类型
-#########################################################################
-typedefDict["TXTPUserSessionHashType"] = "int"
-
-#########################################################################
-###TXTPStockTradeTypeType是一个证券交易类型类型
-#########################################################################
-typedefDict["TXTPStockTradeTypeType"] = "char"
-
-###可交易证券
-XTP_STT_Stock = '0'
-###买入网络密码服务
-XTP_STT_BuyNetService = '1'
-###回购注销
-XTP_STT_CancelRepurchase = '2'
-###指定撤销
-XTP_STT_CancelRegister = '3'
-###指定登记
-XTP_STT_Register = '4'
-###买入发行申购
-XTP_STT_PurchaseIssue = '5'
-###卖出配股
-XTP_STT_Allotment = '6'
-###卖出要约收购
-XTP_STT_SellTender = '7'
-###买入要约收购
-XTP_STT_BuyTender = '8'
-###网上投票
-XTP_STT_NetVote = '9'
-###卖出可转债回售
-XTP_STT_SellConvertibleBonds = 'a'
-###权证行权代码
-XTP_STT_OptionExecute = 'b'
-###开放式基金申购
-XTP_STT_PurchaseOF = 'c'
-###开放式基金赎回
-XTP_STT_RedeemOF = 'd'
-###开放式基金认购
-XTP_STT_SubscribeOF = 'e'
-###开放式基金转托管转出
-XTP_STT_OFCustodianTranfer = 'f'
-###开放式基金分红设置
-XTP_STT_OFDividendConfig = 'g'
-###开放式基金转成其他基金
-XTP_STT_OFTransfer = 'h'
-###债券入库
-XTP_STT_BondsIn = 'i'
-###债券出库
-XTP_STT_BondsOut = 'j'
-###EFT申购
-XTP_STT_PurchaseETF = 'k'
-###EFT赎回
-XTP_STT_RedeemETF = 'l'
-###可转债回售登记
-XTP_STT_ConvertibleRegister = 'm'
-
-
-
-#########################################################################
-###TXTPHandleTradingAccountAlgoIDType是一个资金处理算法编号类型
-#########################################################################
-typedefDict["TXTPHandleTradingAccountAlgoIDType"] = "char"
-
-###基本
-XTP_HTAA_Base = '1'
-
-
-
-#########################################################################
-###TXTPStockWthType是一个股票使用流水号类型
-#########################################################################
-typedefDict["TXTPStockWthType"] = "int"
-
-#########################################################################
-###TXTPStockSeqType是一个股票使用流水号类型
-#########################################################################
-typedefDict["TXTPStockSeqType"] = "string"
-
-#########################################################################
-###TXTPWTFSType是一个委托方式类型
-#########################################################################
-typedefDict["TXTPWTFSType"] = "int"
-
-#########################################################################
-###TXTPWTLBType是一个委托类别类型
-#########################################################################
-typedefDict["TXTPWTLBType"] = "int"
-
-#########################################################################
-###TXTPWTRQType是一个委托日期类型
-#########################################################################
-typedefDict["TXTPWTRQType"] = "int"
-
-#########################################################################
-###TXTPINTEGERType是一个一般整型类型
-#########################################################################
-typedefDict["TXTPINTEGERType"] = "int"
-
-#########################################################################
-###TXTPINT3Type是一个三位数整型类型
-#########################################################################
-typedefDict["TXTPINT3Type"] = "int"
-
-#########################################################################
-###TXTPINT6Type是一个六位数整型类型
-#########################################################################
-typedefDict["TXTPINT6Type"] = "int"
-
-#########################################################################
-###TXTPINT12Type是一个十二位数整型类型
-#########################################################################
-typedefDict["TXTPINT12Type"] = "int"
-
-#########################################################################
-###TXTPCHAR1Type是一个一字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR1Type"] = "string"
-
-#########################################################################
-###TXTPCHAR2Type是一个二字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR2Type"] = "string"
-
-#########################################################################
-###TXTPCHAR3Type是一个三字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR3Type"] = "string"
-
-#########################################################################
-###TXTPCHAR4Type是一个四字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR4Type"] = "string"
-
-#########################################################################
-###TXTPCHAR5Type是一个五字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR5Type"] = "string"
-
-#########################################################################
-###TXTPCHAR6Type是一个六字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR6Type"] = "string"
-
-#########################################################################
-###TXTPCHAR8Type是一个八字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR8Type"] = "string"
-
-#########################################################################
-###TXTPCHAR10Type是一个十字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR10Type"] = "string"
-
-#########################################################################
-###TXTPCHAR11Type是一个十一字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR11Type"] = "string"
-
-#########################################################################
-###TXTPCHAR12Type是一个十二字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR12Type"] = "string"
-
-#########################################################################
-###TXTPCHAR13Type是一个十三字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR13Type"] = "string"
-
-#########################################################################
-###TXTPCHAR14Type是一个十四字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR14Type"] = "string"
-
-#########################################################################
-###TXTPCHAR16Type是一个十六字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR16Type"] = "string"
-
-#########################################################################
-###TXTPCHAR19Type是一个十九字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR19Type"] = "string"
-
-#########################################################################
-###TXTPCHAR20Type是一个二十字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR20Type"] = "string"
-
-#########################################################################
-###TXTPCHAR21Type是一个二十一字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR21Type"] = "string"
-
-#########################################################################
-###TXTPCHAR23Type是一个二十三字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR23Type"] = "string"
-
-#########################################################################
-###TXTPCHAR30Type是一个三十字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR30Type"] = "string"
-
-#########################################################################
-###TXTPCHAR32Type是一个三十二字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR32Type"] = "string"
-
-#########################################################################
-###TXTPCHAR50Type是一个五十字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR50Type"] = "string"
-
-#########################################################################
-###TXTPCHAR64Type是一个六十四字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR64Type"] = "string"
-
-#########################################################################
-###TXTPCHAR65Type是一个六十五字节CHAR类型
-#########################################################################
-typedefDict["TXTPCHAR65Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR4Type是一个四字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR4Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR6Type是一个六字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR6Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR8Type是一个八字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR8Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR10Type是一个十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR10Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR12Type是一个十二字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR12Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR16Type是一个十六字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR16Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR20Type是一个二十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR20Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR30Type是一个三十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR30Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR50Type是一个五十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR50Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR60Type是一个六十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR60Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR65Type是一个六十五字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR65Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR80Type是一个八十字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR80Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR84Type是一个八十四字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR84Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR255Type是一个二五五字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR255Type"] = "string"
-
-#########################################################################
-###TXTPVCHAR1024Type是一个一零二四字节VCHAR类型
-#########################################################################
-typedefDict["TXTPVCHAR1024Type"] = "string"
-
-#########################################################################
-###TXTPREAL8P3Type是一个八点三实型类型
-#########################################################################
-typedefDict["TXTPREAL8P3Type"] = "float"
-
-#########################################################################
-###TXTPREAL9P3Type是一个九点三实型类型
-#########################################################################
-typedefDict["TXTPREAL9P3Type"] = "float"
-
-#########################################################################
-###TXTPREAL9P6Type是一个九点六实型类型
-#########################################################################
-typedefDict["TXTPREAL9P6Type"] = "float"
-
-#########################################################################
-###TXTPREAL10P4Type是一个十点四实型类型
-#########################################################################
-typedefDict["TXTPREAL10P4Type"] = "float"
-
-#########################################################################
-###TXTPREAL16P2Type是一个十六点二实型类型
-#########################################################################
-typedefDict["TXTPREAL16P2Type"] = "float"
-
-#########################################################################
-###TXTPREAL16P8Type是一个十六点八实型类型
-#########################################################################
-typedefDict["TXTPREAL16P8Type"] = "float"
-
-#########################################################################
-###TXTPREAL22P2Type是一个二十二点二实型类型
-#########################################################################
-typedefDict["TXTPREAL22P2Type"] = "float"
-
-#########################################################################
-###TXTPCommandNoType是一个DB命令序号类型
-#########################################################################
-typedefDict["TXTPCommandNoType"] = "int"
-
-#########################################################################
-###TXTPCommandTypeType是一个DB命令类型类型
-#########################################################################
-typedefDict["TXTPCommandTypeType"] = "string"
-
-#########################################################################
-###TXTPSettlementGroupIDType是一个结算组代码类型
-#########################################################################
-typedefDict["TXTPSettlementGroupIDType"] = "string"
-
-#########################################################################
-###TXTPFieldNameType是一个字段名类型
-#########################################################################
-typedefDict["TXTPFieldNameType"] = "string"
-
-#########################################################################
-###TXTPFieldContentType是一个字段内容类型
-#########################################################################
-typedefDict["TXTPFieldContentType"] = "string"
-
-#########################################################################
-###TXTPBankIDType是一个银行代码类型
-#########################################################################
-typedefDict["TXTPBankIDType"] = "string"
-
-#########################################################################
-###TXTPBankNameType是一个银行名称类型
-#########################################################################
-typedefDict["TXTPBankNameType"] = "string"
-
-#########################################################################
-###TXTPBankBrchIDType是一个银行分中心代码类型
-#########################################################################
-typedefDict["TXTPBankBrchIDType"] = "string"
-
-#########################################################################
-###TXTPLiberSerialType是一个Liber系统流水号类型
-#########################################################################
-typedefDict["TXTPLiberSerialType"] = "int"
-
-#########################################################################
-###TXTPRoleIDType是一个角色编号类型
-#########################################################################
-typedefDict["TXTPRoleIDType"] = "string"
-
-#########################################################################
-###TXTPRoleNameType是一个角色名称类型
-#########################################################################
-typedefDict["TXTPRoleNameType"] = "string"
-
-#########################################################################
-###TXTPDescriptionType是一个描述类型
-#########################################################################
-typedefDict["TXTPDescriptionType"] = "string"
-
-#########################################################################
-###TXTPFunctionIDType是一个功能代码类型
-#########################################################################
-typedefDict["TXTPFunctionIDType"] = "string"
-
-#########################################################################
-###TXTPBillNoType是一个票据号类型
-#########################################################################
-typedefDict["TXTPBillNoType"] = "string"
-
-#########################################################################
-###TXTPFundIOTypeType是一个出入金类型类型
-#########################################################################
-typedefDict["TXTPFundIOTypeType"] = "char"
-
-###出入金
-XTP_FIOT_FundIO = '1'
-###银期转帐
-XTP_FIOT_Transfer = '2'
-
-
-
-#########################################################################
-###TXTPFundTypeType是一个资金类型类型
-#########################################################################
-typedefDict["TXTPFundTypeType"] = "char"
-
-###银行存款
-XTP_FT_Deposite = '1'
-###分项资金
-XTP_FT_ItemFund = '2'
-###公司调整
-XTP_FT_Company = '3'
-
-
-
-#########################################################################
-###TXTPFundDirectionType是一个出入金方向类型
-#########################################################################
-typedefDict["TXTPFundDirectionType"] = "char"
-
-###入金
-XTP_FD_In = '1'
-###出金
-XTP_FD_Out = '2'
-
-
-
-#########################################################################
-###TXTPBankFlagType是一个银行统一标识类型类型
-#########################################################################
-typedefDict["TXTPBankFlagType"] = "char"
-
-###工商银行
-XTP_BF_ICBC = '1'
-###农业银行
-XTP_BF_ABC = '2'
-###中国银行
-XTP_BF_BC = '3'
-###建设银行
-XTP_BF_CBC = '4'
-###交通银行
-XTP_BF_BOC = '5'
-###其他银行
-XTP_BF_Other = 'Z'
-
-
-
-#########################################################################
-###TXTPOperationMemoType是一个操作摘要类型
-#########################################################################
-typedefDict["TXTPOperationMemoType"] = "string"
-
-#########################################################################
-###TXTPFundStatusType是一个资金状态类型
-#########################################################################
-typedefDict["TXTPFundStatusType"] = "char"
-
-###已录入
-XTP_FS_Record = '1'
-###已复核
-XTP_FS_Check = '2'
-###已冲销
-XTP_FS_Charge = '3'
-
-
-
-#########################################################################
-###TXTPFundProjectIDType是一个资金项目编号类型
-#########################################################################
-typedefDict["TXTPFundProjectIDType"] = "string"
-
-#########################################################################
-###TXTPOperatorIDType是一个操作员代码类型
-#########################################################################
-typedefDict["TXTPOperatorIDType"] = "string"
-
-#########################################################################
-###TXTPCounterIDType是一个计数器代码类型
-#########################################################################
-typedefDict["TXTPCounterIDType"] = "string"
-
-#########################################################################
-###TXTPFunctionNameType是一个功能名称类型
-#########################################################################
-typedefDict["TXTPFunctionNameType"] = "string"
-
-#########################################################################
-###TXTPTradeCodeType是一个交易代码类型
-#########################################################################
-typedefDict["TXTPTradeCodeType"] = "string"
-
-#########################################################################
-###TXTPBrokerBranchIDType是一个经纪公司分支机构代码类型
-#########################################################################
-typedefDict["TXTPBrokerBranchIDType"] = "string"
-
-#########################################################################
-###TXTPTradeDateType是一个交易日期类型
-#########################################################################
-typedefDict["TXTPTradeDateType"] = "string"
-
-#########################################################################
-###TXTPTradeTimeType是一个交易时间类型
-#########################################################################
-typedefDict["TXTPTradeTimeType"] = "string"
-
-#########################################################################
-###TXTPBankSerialType是一个银行流水号类型
-#########################################################################
-typedefDict["TXTPBankSerialType"] = "string"
-
-#########################################################################
-###TXTPSerialType是一个流水号类型
-#########################################################################
-typedefDict["TXTPSerialType"] = "int"
-
-#########################################################################
-###TXTPLastFragmentType是一个最后分片标志类型
-#########################################################################
-typedefDict["TXTPLastFragmentType"] = "char"
-
-###是最后分片
-XTP_LF_Yes = '0'
-###不是最后分片
-XTP_LF_No = '1'
-
-
-
-#########################################################################
-###TXTPIndividualNameType是一个个人姓名类型
-#########################################################################
-typedefDict["TXTPIndividualNameType"] = "string"
-
-#########################################################################
-###TXTPCustTypeType是一个客户类型类型
-#########################################################################
-typedefDict["TXTPCustTypeType"] = "char"
-
-###自然人
-XTP_CUSTT_Person = '0'
-###机构户
-XTP_CUSTT_Institution = '1'
-
-
-
-#########################################################################
-###TXTPBankAccountType是一个银行账户类型
-#########################################################################
-typedefDict["TXTPBankAccountType"] = "string"
-
-#########################################################################
-###TXTPYesNoIndicatorType是一个是或否标识类型
-#########################################################################
-typedefDict["TXTPYesNoIndicatorType"] = "char"
-
-###是
-XTP_YNI_Yes = '0'
-###否
-XTP_YNI_No = '1'
-
-
-
-#########################################################################
-###TXTPTradeAmountType是一个交易金额(元)类型
-#########################################################################
-typedefDict["TXTPTradeAmountType"] = "float"
-
-#########################################################################
-###TXTPCustFeeType是一个应收客户费用(元)类型
-#########################################################################
-typedefDict["TXTPCustFeeType"] = "float"
-
-#########################################################################
-###TXTPBrokerFeeType是一个应收经纪公司费用(元)类型
-#########################################################################
-typedefDict["TXTPBrokerFeeType"] = "float"
-
-#########################################################################
-###TXTPFeePayFlagType是一个费用支付标志类型
-#########################################################################
-typedefDict["TXTPFeePayFlagType"] = "char"
-
-###由受益方支付费用
-XTP_FPF_BEN = '0'
-###由发送方支付费用
-XTP_FPF_OUR = '1'
-###由发送方支付发起的费用,受益方支付接受的费用
-XTP_FPF_SHA = '2'
-
-
-
-#########################################################################
-###TXTPAddInfoType是一个附加信息类型
-#########################################################################
-typedefDict["TXTPAddInfoType"] = "string"
-
-#########################################################################
-###TXTPDigestType是一个摘要类型
-#########################################################################
-typedefDict["TXTPDigestType"] = "string"
-
-#########################################################################
-###TXTPBankAccTypeType是一个银行帐号类型类型
-#########################################################################
-typedefDict["TXTPBankAccTypeType"] = "char"
-
-###银行存折
-XTP_BAT_BankBook = '1'
-###储蓄卡
-XTP_BAT_SavingCard = '2'
-###信用卡
-XTP_BAT_CreditCard = '3'
-
-
-
-#########################################################################
-###TXTPDeviceIDType是一个渠道标志类型
-#########################################################################
-typedefDict["TXTPDeviceIDType"] = "string"
-
-#########################################################################
-###TXTPPwdFlagType是一个密码核对标志类型
-#########################################################################
-typedefDict["TXTPPwdFlagType"] = "char"
-
-###不核对
-XTP_BPWDF_NoCheck = '0'
-###明文核对
-XTP_BPWDF_BlankCheck = '1'
-###密文核对
-XTP_BPWDF_EncryptCheck = '2'
-
-
-
-#########################################################################
-###TXTPBankCodingForBrokerType是一个银行对经纪公司的编码类型
-#########################################################################
-typedefDict["TXTPBankCodingForBrokerType"] = "string"
-
-#########################################################################
-###TXTPOperNoType是一个交易柜员类型
-#########################################################################
-typedefDict["TXTPOperNoType"] = "string"
-
-#########################################################################
-###TXTPTIDType是一个交易ID类型
-#########################################################################
-typedefDict["TXTPTIDType"] = "int"
-
-#########################################################################
-###TXTPTransferStatusType是一个转账交易状态类型
-#########################################################################
-typedefDict["TXTPTransferStatusType"] = "char"
-
-###正常
-XTP_TRFS_Normal = '0'
-###被冲正
-XTP_TRFS_Repealed = '1'
-
-
-
-#########################################################################
-###TXTPPlateSerialType是一个平台流水号类型
-#########################################################################
-typedefDict["TXTPPlateSerialType"] = "int"
-
-#########################################################################
-###TXTPAvailabilityFlagType是一个有效标志类型
-#########################################################################
-typedefDict["TXTPAvailabilityFlagType"] = "char"
-
-###未确认
-XTP_AVAF_Invalid = '0'
-###有效
-XTP_AVAF_Valid = '1'
-###冲正
-XTP_AVAF_Repeal = '2'
-
-
-
-#########################################################################
-###TXTPOperatorCodeType是一个操作员类型
-#########################################################################
-typedefDict["TXTPOperatorCodeType"] = "string"
-
-#########################################################################
-###TXTPRepayStockAlgoType是一个买券还券算法类型
-#########################################################################
-typedefDict["TXTPRepayStockAlgoType"] = "char"
-
-###默认算法
-XTP_RSA_Original = '0'
-###按还券比例计算
-XTP_RSA_Ratio = '1'
-###Min[1,2]
-XTP_RSA_Min = '2'
-
-
-
-#########################################################################
-###TXTPTradeSpanType是一个交易时间段类型类型
-#########################################################################
-typedefDict["TXTPTradeSpanType"] = "char"
-
-###普通业务
-XTP_TS_Common = '1'
-###个股期权
-XTP_TS_Options = '2'
-
-
-
-#########################################################################
-###TXTPSettleSystemTypeType是一个所属结算系统类型类型
-#########################################################################
-typedefDict["TXTPSettleSystemTypeType"] = "char"
-
-###顶点系统
-XTP_SST_Aboss = '1'
-###恒生系统
-XTP_SST_HS = '2'
-
-
-
-#########################################################################
-###TXTPLogLevelType是一个日志级别类型
-#########################################################################
-typedefDict["TXTPLogLevelType"] = "string"
-
-#########################################################################
-###TXTPProcessNameType是一个存储过程名称类型
-#########################################################################
-typedefDict["TXTPProcessNameType"] = "string"
-
-#########################################################################
-###TXTPTemplateIDType是一个模板代码类型
-#########################################################################
-typedefDict["TXTPTemplateIDType"] = "string"
-
-#########################################################################
-###TXTPTradeIndexType是一个成交序号类型
-#########################################################################
-typedefDict["TXTPTradeIndexType"] = "int"
-
-#########################################################################
-###TXTPSplitMergeStatusType是一个基金当天拆分合并状态类型
-#########################################################################
-typedefDict["TXTPSplitMergeStatusType"] = "char"
-
-###表示允许拆分和合并
-XTP_SMS_Allow = '0'
-###允许拆分、不允许合并
-XTP_SMS_OnlySplit = '1'
-###不允许拆分、允许合并
-XTP_SMS_OnlyMerge = '2'
-###不允许拆分和合并
-XTP_SMS_Forbidden = '3'
-
-
-
-#########################################################################
-###TXTPFundInterTransferTypeType是一个资金内转类型类型
-#########################################################################
-typedefDict["TXTPFundInterTransferTypeType"] = "char"
-
-###转入
-XTP_FITT_TransferIn = '0'
-###转出
-XTP_FITT_TransferOut = '1'
-
-
-
-#########################################################################
-###TXTPInstrumentTypeType是一个合约类型类型
-#########################################################################
-typedefDict["TXTPInstrumentTypeType"] = "char"
-
-###普通
-XTP_IT_Normal = '0'
-###看涨期权
-XTP_IT_CallOptions = '1'
-###看跌期权
-XTP_IT_PutOptions = '2'
-###普通(STEP)
-XTP_IT_Normal_STEP = '3'
-
-
-
-#########################################################################
-###TXTPInvestorLevelType是一个投资者期权交易等级类型
-#########################################################################
-typedefDict["TXTPInvestorLevelType"] = "char"
-
-###一级
-XTP_IL_Level_1 = '0'
-###二级
-XTP_IL_Level_2 = '1'
-###三级
-XTP_IL_Level_3 = '2'
-
-
-
-#########################################################################
-###TXTPCloseDirectionType是一个平仓方向类型
-#########################################################################
-typedefDict["TXTPCloseDirectionType"] = "char"
-
-###买平仓
-XTP_CD_CloseBuy = '!'
-###卖平仓
-XTP_CD_CloseSell = '@'
-###备兑平仓
-XTP_CD_CloseCover = '#'
-
-
-
-#########################################################################
-###TXTPDelivTypeType是一个交割类型类型
-#########################################################################
-typedefDict["TXTPDelivTypeType"] = "char"
-
-###看涨期权执行
-XTP_DT_ExecCallOptions = '0'
-###看跌期权执行
-XTP_DT_ExecPutOptions = '1'
-###在途证券
-XTP_DT_UnavailStock = '2'
-
-
-
diff --git a/vn.xtp/pyscript/xtp_quote_api.h b/vn.xtp/pyscript/xtp_quote_api.h
deleted file mode 100644
index 799fc99b..00000000
--- a/vn.xtp/pyscript/xtp_quote_api.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-///@author ̩֤ȯɷ˾
-///@file xtp_quote_api.h
-///@brief 鶩Ŀͻ˽ӿ
-/////////////////////////////////////////////////////////////////////////
-
-#ifndef _XTP_QUOTE_API_H_
-#define _XTP_QUOTE_API_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "xtp_api_struct.h"
-
-#if defined(ISLIB) && defined(WIN32)
-#ifdef LIB_MD_API_EXPORT
-#define MD_API_EXPORT __declspec(dllexport)
-#else
-#define MD_API_EXPORT __declspec(dllimport)
-#endif
-#else
-#define MD_API_EXPORT
-#endif
-
-/*!
-* \class XTP::API::QuoteSpi
-*
-* \brief ص
-*
-* \author ̩֤ȯɷ˾
-* \date ʮ 2015
-*/
-namespace XTP {
- namespace API {
- class QuoteSpi
- {
- public:
-
- ///ͻ뽻̨ͨӶϿʱ÷á
- ///@remark δ֧
- ///@param reason ԭ
- virtual void OnDisconnected(int reason) {};
-
-
- ///Ӧ
- ///@param error_info Ϣ
- virtual void OnError(XTPRI *error_info) {};
-
- ///Ӧ
- ///@param ticker ϸĺԼ
- ///@param error_info ĺԼʱĴϢ
- ///@param is_last Ƿ˴ζĵһӦ
- ///@remark ÿĵĺԼӦһӦ
- virtual void OnSubMarketData(XTPST *ticker, XTPRI *error_info, bool is_last) {};
-
- ///ȡӦ
- ///@param ticker ϸĺԼȡ
- ///@param error_info Ϣ
- ///@param is_last Ƿ˴ȡĵһӦ
- ///@remark ÿȡĵĺԼӦһȡӦ
- virtual void OnUnSubMarketData(XTPST *ticker, XTPRI *error_info, bool is_last) {};
-
- ///֪ͨ
- ///@param market_data
- virtual void OnMarketData(XTPMD *market_data) {};
-
-
- ///ѯɽԼӦ
- ///@remark ˺δ֧
- virtual void OnQueryAllTickers() {};
- };
- }
-}
-
-
-/*!
-* \class XTP::API::QuoteApi
-*
-* \brief 鶩Ľӿ
-*
-* \author ̩֤ȯɷ˾
-* \date ʮ 2015
-*/
-namespace XTP {
- namespace API {
- class MD_API_EXPORT QuoteApi
- {
- public:
- ///QuoteApi
- ///@param save_file_path ֶΣϢļĿ¼ĬΪǰĿ¼
- ///@return UserApi
- static QuoteApi *CreateQuoteApi(const char *save_file_path = "");
-
- ///ɾӿڶ
- ///@remark ʹñӿڶʱ,øúɾӿڶ
- virtual void Release() = 0;
-
-
- ///ȡǰ
- ///@return ȡĽ
- ///@remark ֻе¼ɹ,ܵõȷĽ
- virtual const char *GetTradingDay() = 0;
-
-
- ///עصӿ
- ///@param spi Իصӿʵ
- virtual void RegisterSpi(QuoteSpi *spi) = 0;
-
- ///顣
- ///@return ĽӿڵǷɹ0ʾӿڵóɹǡ0ʾӿڵó
- ///@param ticker ԼID
- ///@param count Ҫ/˶ĺԼ
- ///@param exchage_id
- ///@remark һԶͬһ֤ȯĶԼ
- virtual int SubscribeMarketData(char *ticker[], int count, XTP_EXCHANGE_TYPE exchage_id) = 0;
-
- ///˶顣
- ///@return ȡĽӿڵǷɹ0ʾӿڵóɹǡ0ʾӿڵó
- ///@param ticker ԼID
- ///@param count Ҫ/˶ĺԼ
- ///@param exchage_id
- ///@remark һȡͬһ֤ȯĶԼ
- virtual int UnSubscribeMarketData(char *ticker[], int count, XTP_EXCHANGE_TYPE exchage_id) = 0;
-
- ///û¼
- ///@return ¼Ƿɹ0ʾ¼ɹ-1ʾӷ-2ʾѴӣظ¼Ҫlogout-3ʾд
- ///@param ip ַ
- ///@param port ˿ں
- ///@param user ½û
- ///@param password ½
- ///@param sock_type 1TCP2UDPĿǰʱֻ֧TCP
- ///@remark ˺ΪͬʽҪ첽ȴ¼ɹؼɽк
- virtual int Login(const char* ip, int port, const char* user, const char* password, XTP_PROTOCOL_TYPE sock_type) = 0;
-
-
- ///dz
- ///@return dzǷɹ0ʾdzɹǡ0ʾdz
- ///@remark ˺ΪͬʽҪ첽ȴdzؼɽк
- virtual int Logout() = 0;
-
- ///ȡǰտɽԼ
- ///@return ѯǷɹ0ʾѯɹǡ0ʾѯɹ
- ///@param exchage_id
- ///@remark ˺δ֧
- virtual int QueryAllTickers(XTP_EXCHANGE_TYPE exchage_id) = 0;
-
-
- protected:
- ~QuoteApi() {};
- };
- }
-}
-
-
-
-
-#endif
diff --git a/vn.xtp/pyscript/xtp_struct_oms.py b/vn.xtp/pyscript/xtp_struct_oms.py
deleted file mode 100644
index b3e561f6..00000000
--- a/vn.xtp/pyscript/xtp_struct_oms.py
+++ /dev/null
@@ -1,262 +0,0 @@
-# encoding: UTF-8
-
-structDict = {}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#新订单请求
-XTPOrderInsertInfo = {}
-# ///XTP系统订单ID
-XTPOrderInsertInfo["order_xtp_id"] = "int"
-# ///报单引用,由客户自定义
-XTPOrderInsertInfo["order_client_id"] = "int"
-# ///合约代码 客户端请求不带空格
-XTPOrderInsertInfo["ticker"] = "string"
-# ///交易市场
-XTPOrderInsertInfo["market"] = "int"
-# ///价格
-XTPOrderInsertInfo["price"] = "float"
-# ///止损价(保留字段)
-XTPOrderInsertInfo["stop_price"] = "float"
-# ///数量
-XTPOrderInsertInfo["quantity"] = "int"
-# ///报单价格
-XTPOrderInsertInfo["price_type"] = "int"
-# ///买卖方向
-XTPOrderInsertInfo["side"] = "int"
-structDict['XTPOrderInsertInfo'] = XTPOrderInsertInfo
-
-
-#撤单
-XTPOrderCancel = {}
-# ///XTP系统订单ID
-XTPOrderCancel["order_cancel_xtp_id"] = "int"
-# ///报单操作引用
-XTPOrderCancel["order_cancel_client_id"] = "int"
-# ///合约代码
-XTPOrderCancel["ticker"] = "string"
-# ///交易市场
-XTPOrderCancel["market"] = "int"
-# ///操作时间
-XTPOrderCancel["action_time"] = "int"
-# ///报单引用
-XTPOrderCancel["order_client_id"] = "int"
-# ///操作对象订单的序号
-XTPOrderCancel["order_xtp_id"] = "int"
-structDict['XTPOrderCancel'] = XTPOrderCancel
-
-
-
-#撤单失败响应消息
-XTPOrderCancelInfo = {}
-# ///撤单XTPID
-XTPOrderCancelInfo["order_cancel_xtp_id"] = "int"
-# ///原始订单XTPID
-XTPOrderCancelInfo["order_xtp_id"] = "int"
-structDict['XTPOrderCancelInfo'] = XTPOrderCancelInfo
-
-
-
-#报单响应结构体
-XTPOrderInfo = {}
-# ///XTP系统订单ID
-XTPOrderInfo["order_xtp_id"] = "int"
-#报单引用,用户自定义
-XTPOrderInfo["order_client_id"] = "int"
-# ///报单操作引用,用户自定义
-XTPOrderInfo["order_cancel_client_id"] = "int"
-# ///撤单在XTP系统中的id
-XTPOrderInfo["order_cancel_xtp_id"] = "int"
-#合约代码
-XTPOrderInfo["ticker"] = "string"
-#交易市场
-XTPOrderInfo["market"] = "int"
-#价格
-XTPOrderInfo["price"] = "float"
-#数量
-XTPOrderInfo["quantity"] = "int"
-#报单价格条件
-XTPOrderInfo["price_type"] = "int"
-#买卖方向
-XTPOrderInfo["side"] = "int"
-#今成交数量
-XTPOrderInfo["qty_traded"] = "int"
-#剩余数量
-XTPOrderInfo["qty_left"] = "int"
-#委托时间
-XTPOrderInfo["insert_time"] = "int"
-#最后修改时间
-XTPOrderInfo["update_time"] = "int"
-#撤销时间
-XTPOrderInfo["cancel_time"] = "int"
-#成交金额
-XTPOrderInfo["trade_amount"] = "float"
-#本地报单编号 OMS生成的单号
-XTPOrderInfo["order_local_id"] = "string"
-#报单状态
-XTPOrderInfo["order_status"] = "int"
-#报单提交状态
-XTPOrderInfo["order_submit_status"] = "int"
-#报单类型
-XTPOrderInfo["order_type"] = "char"
-structDict['XTPOrderInfo'] = XTPOrderInfo
-
-
-
-
-#报单成交结构体
-XTPTradeReport = {}
-# ///XTP系统订单ID
-XTPTradeReport["order_xtp_id"] = "int"
-# ///报单引用
-XTPTradeReport["order_client_id"] = "int"
-# ///合约代码
-XTPTradeReport["ticker"] = "string"
-# ///交易市场
-XTPTradeReport["market"] = "int"
-# ///订单号
-XTPTradeReport["local_order_id"] = "int"
-# ///成交编号
-XTPTradeReport["exec_id"] = "int"
-# ///价格
-XTPTradeReport["price"] = "float"
-# ///数量
-XTPTradeReport["quantity"] = "int"
-# ///成交时间
-XTPTradeReport["trade_time"] = "int"
-# ///成交金额
-XTPTradeReport["trade_amount"] = "float"
-# ///成交序号 --回报记录号
-XTPTradeReport["report_index"] = "int"
-# ///报单编号 --交易所单号
-XTPTradeReport["order_exch_id"] = "string"
-# ///成交类型 --成交回报中的执行类型
-XTPTradeReport["trade_type"] = "char"
-# ///买卖方向
-XTPTradeReport["side"] = "int"
-# ///交易所交易员代码
-XTPTradeReport["branch_pbu"] = "string"
-structDict['XTPTradeReport'] = XTPTradeReport
-
-
-
-#///////////////////////////////////////////////////////////////////////
-#报单查询
-#///////////////////////////////////////////////////////////////////////
-#报单查询请求-条件查询
-XTPQueryOrderReq = {}
-# ///证券代码,可以为空,如果为空,则默认查询时间段内的所有成交回报
-XTPQueryOrderReq["ticker"] = "string"
-# ///格式为YYYYMMDDHHMMSSsss,为0则默认当前交易日0点
-XTPQueryOrderReq["begin_time"] = "int"
-# ///格式为YYYYMMDDHHMMSSsss,为0则默认当前时间
-XTPQueryOrderReq["end_time"] = "int"
-structDict['XTPQueryOrderReq'] = XTPQueryOrderReq
-
-
-#报单查询响应结构体
-
-
-
-#///////////////////////////////////////////////////////////////////////
-#成交回报查询
-#///////////////////////////////////////////////////////////////////////
-#查询成交报告请求-根据执行编号查询(保留字段)
-XTPQueryReportByExecIdReq = {}
-# ///XTP订单系统ID
-XTPQueryReportByExecIdReq["order_xtp_id"] = "int"
-# ///成交执行编号
-XTPQueryReportByExecIdReq["exec_id"] = "int"
-structDict['XTPQueryReportByExecIdReq'] = XTPQueryReportByExecIdReq
-
-
-#查询成交回报请求-查询条件
-XTPQueryTraderReq = {}
-# ///证券代码,可以为空,如果为空,则默认查询时间段内的所有成交回报
-XTPQueryTraderReq["ticker"] = "string"
-# ///开始时间,格式为YYYYMMDDHHMMSSsss,为0则默认当前交易日0点
-XTPQueryTraderReq["begin_time"] = "int"
-# ///结束时间,格式为YYYYMMDDHHMMSSsss,为0则默认当前时间
-XTPQueryTraderReq["end_time"] = "int"
-structDict['XTPQueryTraderReq'] = XTPQueryTraderReq
-
-
-#成交回报查询响应结构体
-
-
-
-
-#///////////////////////////////////////////////////////////////////////
-#账户资金查询响应结构体
-#///////////////////////////////////////////////////////////////////////
-XTPQueryAssetRsp = {}
-#总资产
-XTPQueryAssetRsp["total_asset"] = "float"
-# ///可用资金
-XTPQueryAssetRsp["buying_power"] = "float"
-#证券资产
-XTPQueryAssetRsp["security_asset"] = "float"
-# ///累计买入成交证券占用资金(保留字段)
-XTPQueryAssetRsp["fund_buy_amount"] = "float"
-# ///累计买入成交交易费用(保留字段)
-XTPQueryAssetRsp["fund_buy_fee"] = "float"
-# ///累计卖出成交证券所得资金(保留字段)
-XTPQueryAssetRsp["fund_sell_amount"] = "float"
-# ///累计卖出成交交易费用(保留字段)
-XTPQueryAssetRsp["fund_sell_fee"] = "float"
-structDict['XTPQueryAssetRsp'] = XTPQueryAssetRsp
-
-
-
-
-#///////////////////////////////////////////////////////////////////////
-#查询股票持仓情况
-#///////////////////////////////////////////////////////////////////////
-XTPQueryStkPositionRsp = {}
-# ///证券代码
-XTPQueryStkPositionRsp["ticker"] = "string"
-# ///证券名称
-XTPQueryStkPositionRsp["ticker_name"] = "string"
-# ///当前持仓
-XTPQueryStkPositionRsp["total_qty"] = "int"
-# ///可用股份数
-XTPQueryStkPositionRsp["sellable_qty"] = "int"
-# ///持仓成本
-XTPQueryStkPositionRsp["avg_price"] = "float"
-# ///浮动盈亏
-XTPQueryStkPositionRsp["unrealized_pnl"] = "float"
-structDict['XTPQueryStkPositionRsp'] = XTPQueryStkPositionRsp
-
-
-
-
-
-
-
diff --git a/vn.xtp/pyscript/xtp_struct_quote.py b/vn.xtp/pyscript/xtp_struct_quote.py
deleted file mode 100644
index 6800e052..00000000
--- a/vn.xtp/pyscript/xtp_struct_quote.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# encoding: UTF-8
-
-structDict = {}
-
-#//////////////////////////////////////////////////////////////////////
-#@author 中泰证券股份有限公司
-#@file xquote_api_struct.h
-#@brief 定义行情类相关数据结构
-#//////////////////////////////////////////////////////////////////////
-
-
-
-
-
-
-#指定的合约
-struct = {}
-# ///交易所代码
-struct["exchange_id"] = "int"
-# ///合约代码(不包含交易所信息)例如"600000 "
diff --git a/vn.xtp/pyscript/xtp_trader_api.h b/vn.xtp/pyscript/xtp_trader_api.h
deleted file mode 100644
index de960c10..00000000
--- a/vn.xtp/pyscript/xtp_trader_api.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-///@author ̩֤ȯɷ˾
-///@file xtp_trader_api.h
-///@brief ͻ˽ӿ
-/////////////////////////////////////////////////////////////////////////
-
-#ifndef _XTP_TRADER_API_H_
-#define _XTP_TRADER_API_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "xtp_api_struct.h"
-
-#if defined(ISLIB) && defined(WIN32)
-#ifdef LIB_TRADER_API_EXPORT
-#define TRADER_API_EXPORT __declspec(dllexport)
-#else
-#define TRADER_API_EXPORT __declspec(dllimport)
-#endif
-#else
-#define TRADER_API_EXPORT
-#endif
-
-/*!
-* \class XTP::API::TraderSpi
-*
-* \brief ӿӦ
-*
-* \author ̩֤ȯɷ˾
-* \date ʮ 2015
-*/
-namespace XTP {
- namespace API {
-
- class TraderSpi
- {
- public:
-
- ///ͻ뽻̨ͨӶϿʱ÷á
- ///@remark δ֧
- ///@param reason ԭ
- virtual void OnDisconnected(int reason) {};
-
- ///Ӧ
- ///@param error_info ĴʹϢ
- virtual void OnError(XTPRI *error_info) {};
-
- ///֪ͨ
- ///@param order_info ӦϢ
- ///@param error_info ܾ߷ʱʹϢ
- ///@remark ÿζ״̬ʱᱻ
- virtual void OnOrderEvent(XTPOrderInfo *order_info, XTPRI *error_info) {};
-
- ///ɽ֪ͨ
- ///@param trade_info ɽرľϢ
- ///@remark гɽʱᱻ
- virtual void OnTradeEvent(XTPTradeReport *trade_info) {};
-
- ///Ӧ
- ///@param cancel_info Ϣʹorder_xtp_id
- ///@param error_info ܾ߷ʱʹϢ
- virtual void OnCancelOrderError(XTPOrderCancelInfo *cancel_info, XTPRI *error_info) {};
-
- ///ѯӦ
- ///@param order_info ѯı
- ///@param error_info Ϣ
- ///@param request_id ϢӦӦID
- ///@param is_last ϢӦǷΪrequest_idӦһӦ
- ///@remark ַ֧ʱβѯһѯܶӦӦ
- virtual void OnQueryOrder(XTPQueryOrderRsp *order_info, XTPRI *error_info, int request_id, bool is_last) {};
-
- ///ѯɽӦ
- ///@param trade_info ѯijɽر
- ///@param error_info Ϣ
- ///@param request_id ϢӦӦID
- ///@param is_last ϢӦǷΪrequest_idӦһӦ
- ///@remark ַ֧ʱβѯһѯܶӦӦ
- virtual void OnQueryTrade(XTPQueryTradeRsp *trade_info, XTPRI *error_info, int request_id, bool is_last) {};
-
- ///ѯͶֲ߳Ӧ
- ///@param position ѯijֲ
- ///@param error_info Ϣ
- ///@param request_id ϢӦӦID
- ///@param is_last ϢӦǷΪrequest_idӦһӦ
- ///@remark ûܳжƱһѯܶӦӦ
- virtual void OnQueryPosition(XTPQueryStkPositionRsp *position, XTPRI *error_info, int request_id, bool is_last) {};
-
- ///ѯʽ˻Ӧ
- virtual void OnQueryAsset(XTPQueryAssetRsp *asset, XTPRI *error_info, int request_id, bool is_last) {};
-
-
- };
- }
-}
-
-
-/*!
-* \class XTP::API::TraderApi
-*
-* \brief ӿ
-*
-* \author ̩֤ȯɷ˾
-* \date ʮ 2015
-*/
-namespace XTP {
- namespace API {
-
- class TRADER_API_EXPORT TraderApi
- {
- public:
- ///TraderApi
- ///@param save_file_path ֶΣϢļĿ¼ĬΪǰĿ¼
- ///@return UserApi
- static TraderApi *CreateTraderApi(const char *save_file_path = "");
-
- ///ɾӿڶ
- ///@remark ʹñӿڶʱ,øúɾӿڶ
- virtual void Release() = 0;
-
- ///ȡǰ
- ///@return ȡĽ
- ///@remark ֻе¼ɹ,ܵõȷĽ
- virtual const char *GetTradingDay() = 0;
-
- ///עصӿ
- ///@param spi Իصӿʵ
- virtual void RegisterSpi(TraderSpi *spi) = 0;
-
- ///û¼
- ///@return ¼Ƿɹ0ʾ¼ɹ-1ʾӷ-2ʾѴӣظ¼Ҫlogout
- ///@param ip ַ
- ///@param port ˿ں
- ///@param user ¼û
- ///@param password ¼
- ///@param sock_type 1TCP2UDPĿǰʱֻ֧TCP
- ///@param client_id ֶΣͻidͬһûIJͬ
- ///@remark ˺ΪͬʽҪ첽ȴ¼ɹؼɽк
- virtual int Login(const char* ip, int port, const char* user, const char* password, XTP_PROTOCOL_TYPE sock_type, int client_id = 0) = 0;
-
-
- ///dz
- ///@return dzǷɹ0ʾdzɹ-1ʾdzʧ
- virtual int Logout() = 0;
-
- ///¼
- ///@return XTPϵͳеID,Ϊ0ʾʧܣûҪ¼·صorder_xtp_id
- ///@param order ¼Ϣ
- virtual uint64_t InsertOrder(XTPOrderInsertInfo *order) = 0;
-
- ///
- ///@return XTPϵͳеID,Ϊ0ʾʧܣûҪ¼·صorder_cancel_xtp_id
- ///@param order_xtp_id ҪίеXTPϵͳеID
- virtual uint64_t CancelOrder(const uint64_t order_xtp_id) = 0;
-
- ///ݱIDѯ
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param order_xtp_id ҪѯıxtpϵͳеID
- ///@param request_id ûλѯӦIDûԶ
- virtual int QueryOrderByXTPID(const uint64_t order_xtp_id, int request_id) = 0;
-
- ///ѯ
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param query_param ҪѯĶɸѡ
- ///@param request_id ûλѯӦIDûԶ
- ///@remark ÷ַ֧ʱβѯƱΪգĬϲѯʱڵбѯʱиƱصı
- virtual int QueryOrders(const XTPQueryOrderReq *query_param, int request_id) = 0;
-
- ///ίбѯسɽ
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param order_xtp_id Ҫѯίб
- ///@param request_id ûλѯӦIDûԶ
- ///@remark ˺ѯĽܶӦӦ
- virtual int QueryTradesByXTPID(const uint64_t order_xtp_id, int request_id) = 0;
-
- ///ѯѳɽ
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param query_param Ҫѯijɽرɸѡ
- ///@param request_id ûλѯӦIDûԶ
- ///@remark ÷ַ֧ʱβѯƱΪգĬϲѯʱڵгɽرѯʱиƱصijɽر
- virtual int QueryTrades(XTPQueryTraderReq *query_param, int request_id) = 0;
-
- ///ѯͶֲ߳
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param ticker ҪѯijֲֹƱΪ
- ///@param request_id ûλѯӦIDûԶ
- ///@remark ÷ûṩ˹Ʊ룬ѯ˹ƱijֲϢƱΪգĬϲѯгֲϢ
- virtual int QueryPosition(const char *ticker, int request_id) = 0;
-
- ///ѯʲ
- ///@return ѯǷɹ0ʾɹǡ0ʾ
- ///@param request_id ûλѯӦIDûԶ
- virtual int QueryAsset(int request_id) = 0;
-
- protected:
- ~TraderApi() {};
- };
-
- }
-}
-
-
-
-
-#endif
diff --git a/vn.xtp/xtpapi/doc/quote_api.pdf b/vn.xtp/xtpapi/doc/quote_api.pdf
deleted file mode 100644
index 73e511c3..00000000
--- a/vn.xtp/xtpapi/doc/quote_api.pdf
+++ /dev/null
@@ -1,24492 +0,0 @@
-%PDF-1.5
-%
-1 0 obj
-<< /S /GoTo /D (chapter.1) >>
-endobj
-4 0 obj
-(\376\377\0001\000\040\000X\000T\000P\000\040\147\201\220\037\210\114\140\305\116\244\146\023\174\373\176\337\000\040\000Q\000u\000o\000t\000e\000\040\000A\000P\000I\000\040\0001\000.\0000\000.\0000)
-endobj
-5 0 obj
-<< /S /GoTo /D (chapter.2) >>
-endobj
-8 0 obj
-(\376\377\0002\000\040\176\347\142\177\121\163\174\373\175\042\137\025)
-endobj
-9 0 obj
-<< /S /GoTo /D (section.2.1) >>
-endobj
-12 0 obj
-(\376\377\0002\000.\0001\000\040\174\173\176\347\142\177\121\163\174\373)
-endobj
-13 0 obj
-<< /S /GoTo /D (chapter.3) >>
-endobj
-16 0 obj
-(\376\377\0003\000\040\176\323\147\204\117\123\175\042\137\025)
-endobj
-17 0 obj
-<< /S /GoTo /D (section.3.1) >>
-endobj
-20 0 obj
-(\376\377\0003\000.\0001\000\040\176\323\147\204\117\123)
-endobj
-21 0 obj
-<< /S /GoTo /D (chapter.4) >>
-endobj
-24 0 obj
-(\376\377\0004\000\040\145\207\116\366\175\042\137\025)
-endobj
-25 0 obj
-<< /S /GoTo /D (section.4.1) >>
-endobj
-28 0 obj
-(\376\377\0004\000.\0001\000\040\145\207\116\366\122\027\210\150)
-endobj
-29 0 obj
-<< /S /GoTo /D (chapter.5) >>
-endobj
-32 0 obj
-(\376\377\0005\000\040\176\323\147\204\117\123\213\364\146\016)
-endobj
-33 0 obj
-<< /S /GoTo /D (section.5.1) >>
-endobj
-36 0 obj
-(\376\377\0005\000.\0001\000\040\000D\000e\000m\000o\000T\000e\000s\000t\000M\000d\000S\000p\000i\174\173\000\040\123\302\200\003)
-endobj
-37 0 obj
-<< /S /GoTo /D (subsection.5.1.1) >>
-endobj
-40 0 obj
-(\376\377\0005\000.\0001\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-41 0 obj
-<< /S /GoTo /D (section.5.2) >>
-endobj
-44 0 obj
-(\376\377\0005\000.\0002\000\040\000Q\000u\000o\000t\000e\000A\000p\000i\174\173\000\040\123\302\200\003)
-endobj
-45 0 obj
-<< /S /GoTo /D (subsection.5.2.1) >>
-endobj
-48 0 obj
-(\376\377\0005\000.\0002\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-49 0 obj
-<< /S /GoTo /D (subsection.5.2.2) >>
-endobj
-52 0 obj
-(\376\377\0005\000.\0002\000.\0002\000\040\142\020\124\130\121\375\145\160\213\364\146\016)
-endobj
-53 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.1) >>
-endobj
-56 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0001\000\040\000C\000r\000e\000a\000t\000e\000Q\000u\000o\000t\000e\000A\000p\000i\000\050\000c\000o\000n\000s\000t\000\040\000c\000h\000a\000r\000\040\000s\000a\000v\000e\000\137\000f\000i\000l\000e\000\137\000p\000a\000t\000h\000=\000"\000"\000"\000"\000\051)
-endobj
-57 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.2) >>
-endobj
-60 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0002\000\040\000G\000e\000t\000T\000r\000a\000d\000i\000n\000g\000D\000a\000y\000\050\000\051\000=\0000)
-endobj
-61 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.3) >>
-endobj
-64 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0003\000\040\000L\000o\000g\000i\000n\000\050\000c\000o\000n\000s\000t\000\040\000c\000h\000a\000r\000\040\000i\000p\000,\000\040\000i\000n\000t\000\040\000p\000o\000r\000t\000,\000\040\000c\000o\000n\000s\000t\000\040\000c\000h\000a\000r\000\040\000u\000s\000e\000r\000,\000\040\000c\000o\000n\000s\000t\000\040\000c\000h\000a\000r\000\040\000p\000a\000s\000s\000w\000o\000r\000d\000,\000\040\000X\000T\000P\000\137\000P\000R\000O\000T\000O\000C\000O\000L\000\137\000T\000Y\000P\000E\000\040\000s\000o\000c\000k\000\137\000t\000y\000p\000e\000\051\000=\0000)
-endobj
-65 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.4) >>
-endobj
-68 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0004\000\040\000L\000o\000g\000o\000u\000t\000\050\000\051\000=\0000)
-endobj
-69 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.5) >>
-endobj
-72 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0005\000\040\000Q\000u\000e\000r\000y\000A\000l\000l\000T\000i\000c\000k\000e\000r\000s\000\050\000X\000T\000P\000\137\000E\000X\000C\000H\000A\000N\000G\000E\000\137\000T\000Y\000P\000E\000\040\000e\000x\000c\000h\000a\000g\000e\000\137\000i\000d\000\051\000=\0000)
-endobj
-73 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.6) >>
-endobj
-76 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0006\000\040\000R\000e\000g\000i\000s\000t\000e\000r\000S\000p\000i\000\050\000Q\000u\000o\000t\000e\000S\000p\000i\000\040\000s\000p\000i\000\051\000=\0000)
-endobj
-77 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.7) >>
-endobj
-80 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0007\000\040\000R\000e\000l\000e\000a\000s\000e\000\050\000\051\000=\0000)
-endobj
-81 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.8) >>
-endobj
-84 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0008\000\040\000S\000u\000b\000s\000c\000r\000i\000b\000e\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000\050\000c\000h\000a\000r\000\040\000t\000i\000c\000k\000e\000r\000[\000]\000,\000\040\000i\000n\000t\000\040\000c\000o\000u\000n\000t\000,\000\040\000X\000T\000P\000\137\000E\000X\000C\000H\000A\000N\000G\000E\000\137\000T\000Y\000P\000E\000\040\000e\000x\000c\000h\000a\000g\000e\000\137\000i\000d\000\051\000=\0000)
-endobj
-85 0 obj
-<< /S /GoTo /D (subsubsection.5.2.2.9) >>
-endobj
-88 0 obj
-(\376\377\0005\000.\0002\000.\0002\000.\0009\000\040\000U\000n\000S\000u\000b\000s\000c\000r\000i\000b\000e\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000\050\000c\000h\000a\000r\000\040\000t\000i\000c\000k\000e\000r\000[\000]\000,\000\040\000i\000n\000t\000\040\000c\000o\000u\000n\000t\000,\000\040\000X\000T\000P\000\137\000E\000X\000C\000H\000A\000N\000G\000E\000\137\000T\000Y\000P\000E\000\040\000e\000x\000c\000h\000a\000g\000e\000\137\000i\000d\000\051\000=\0000)
-endobj
-89 0 obj
-<< /S /GoTo /D (section.5.3) >>
-endobj
-92 0 obj
-(\376\377\0005\000.\0003\000\040\000Q\000u\000o\000t\000e\000S\000p\000i\174\173\000\040\123\302\200\003)
-endobj
-93 0 obj
-<< /S /GoTo /D (subsection.5.3.1) >>
-endobj
-96 0 obj
-(\376\377\0005\000.\0003\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-97 0 obj
-<< /S /GoTo /D (subsection.5.3.2) >>
-endobj
-100 0 obj
-(\376\377\0005\000.\0003\000.\0002\000\040\142\020\124\130\121\375\145\160\213\364\146\016)
-endobj
-101 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.1) >>
-endobj
-104 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0001\000\040\000O\000n\000D\000i\000s\000c\000o\000n\000n\000e\000c\000t\000e\000d\000\050\000i\000n\000t\000\040\000r\000e\000a\000s\000o\000n\000\051)
-endobj
-105 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.2) >>
-endobj
-108 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0002\000\040\000O\000n\000E\000r\000r\000o\000r\000\050\000X\000T\000P\000R\000I\000\040\000e\000r\000r\000o\000r\000\137\000i\000n\000f\000o\000\051)
-endobj
-109 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.3) >>
-endobj
-112 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0003\000\040\000O\000n\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000\050\000X\000T\000P\000M\000D\000\040\000m\000a\000r\000k\000e\000t\000\137\000d\000a\000t\000a\000\051)
-endobj
-113 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.4) >>
-endobj
-116 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0004\000\040\000O\000n\000Q\000u\000e\000r\000y\000A\000l\000l\000T\000i\000c\000k\000e\000r\000s\000\050\000\051)
-endobj
-117 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.5) >>
-endobj
-120 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0005\000\040\000O\000n\000S\000u\000b\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000\050\000X\000T\000P\000S\000T\000\040\000t\000i\000c\000k\000e\000r\000,\000\040\000X\000T\000P\000R\000I\000\040\000e\000r\000r\000o\000r\000\137\000i\000n\000f\000o\000,\000\040\000b\000o\000o\000l\000\040\000i\000s\000\137\000l\000a\000s\000t\000\051)
-endobj
-121 0 obj
-<< /S /GoTo /D (subsubsection.5.3.2.6) >>
-endobj
-124 0 obj
-(\376\377\0005\000.\0003\000.\0002\000.\0006\000\040\000O\000n\000U\000n\000S\000u\000b\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000\050\000X\000T\000P\000S\000T\000\040\000t\000i\000c\000k\000e\000r\000,\000\040\000X\000T\000P\000R\000I\000\040\000e\000r\000r\000o\000r\000\137\000i\000n\000f\000o\000,\000\040\000b\000o\000o\000l\000\040\000i\000s\000\137\000l\000a\000s\000t\000\051)
-endobj
-125 0 obj
-<< /S /GoTo /D (section.5.4) >>
-endobj
-128 0 obj
-(\376\377\0005\000.\0004\000\040\000X\000T\000P\000M\000a\000r\000k\000e\000t\000D\000a\000t\000a\000S\000t\000r\000u\000c\000t\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-129 0 obj
-<< /S /GoTo /D (subsection.5.4.1) >>
-endobj
-132 0 obj
-(\376\377\0005\000.\0004\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-133 0 obj
-<< /S /GoTo /D (section.5.5) >>
-endobj
-136 0 obj
-(\376\377\0005\000.\0005\000\040\000X\000T\000P\000O\000r\000d\000e\000r\000C\000a\000n\000c\000e\000l\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-137 0 obj
-<< /S /GoTo /D (subsection.5.5.1) >>
-endobj
-140 0 obj
-(\376\377\0005\000.\0005\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-141 0 obj
-<< /S /GoTo /D (section.5.6) >>
-endobj
-144 0 obj
-(\376\377\0005\000.\0006\000\040\000X\000T\000P\000O\000r\000d\000e\000r\000C\000a\000n\000c\000e\000l\000I\000n\000f\000o\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-145 0 obj
-<< /S /GoTo /D (subsection.5.6.1) >>
-endobj
-148 0 obj
-(\376\377\0005\000.\0006\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-149 0 obj
-<< /S /GoTo /D (section.5.7) >>
-endobj
-152 0 obj
-(\376\377\0005\000.\0007\000\040\000X\000T\000P\000O\000r\000d\000e\000r\000I\000n\000f\000o\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-153 0 obj
-<< /S /GoTo /D (subsection.5.7.1) >>
-endobj
-156 0 obj
-(\376\377\0005\000.\0007\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-157 0 obj
-<< /S /GoTo /D (section.5.8) >>
-endobj
-160 0 obj
-(\376\377\0005\000.\0008\000\040\000X\000T\000P\000O\000r\000d\000e\000r\000I\000n\000s\000e\000r\000t\000I\000n\000f\000o\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-161 0 obj
-<< /S /GoTo /D (subsection.5.8.1) >>
-endobj
-164 0 obj
-(\376\377\0005\000.\0008\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-165 0 obj
-<< /S /GoTo /D (section.5.9) >>
-endobj
-168 0 obj
-(\376\377\0005\000.\0009\000\040\000X\000T\000P\000Q\000u\000e\000r\000y\000A\000s\000s\000e\000t\000R\000s\000p\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-169 0 obj
-<< /S /GoTo /D (subsection.5.9.1) >>
-endobj
-172 0 obj
-(\376\377\0005\000.\0009\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-173 0 obj
-<< /S /GoTo /D (section.5.10) >>
-endobj
-176 0 obj
-(\376\377\0005\000.\0001\0000\000\040\000X\000T\000P\000Q\000u\000e\000r\000y\000O\000r\000d\000e\000r\000R\000e\000q\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-177 0 obj
-<< /S /GoTo /D (subsection.5.10.1) >>
-endobj
-180 0 obj
-(\376\377\0005\000.\0001\0000\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-181 0 obj
-<< /S /GoTo /D (section.5.11) >>
-endobj
-184 0 obj
-(\376\377\0005\000.\0001\0001\000\040\000X\000T\000P\000Q\000u\000e\000r\000y\000R\000e\000p\000o\000r\000t\000B\000y\000E\000x\000e\000c\000I\000d\000R\000e\000q\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-185 0 obj
-<< /S /GoTo /D (subsection.5.11.1) >>
-endobj
-188 0 obj
-(\376\377\0005\000.\0001\0001\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-189 0 obj
-<< /S /GoTo /D (section.5.12) >>
-endobj
-192 0 obj
-(\376\377\0005\000.\0001\0002\000\040\000X\000T\000P\000Q\000u\000e\000r\000y\000S\000t\000k\000P\000o\000s\000i\000t\000i\000o\000n\000R\000s\000p\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-193 0 obj
-<< /S /GoTo /D (subsection.5.12.1) >>
-endobj
-196 0 obj
-(\376\377\0005\000.\0001\0002\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-197 0 obj
-<< /S /GoTo /D (section.5.13) >>
-endobj
-200 0 obj
-(\376\377\0005\000.\0001\0003\000\040\000X\000T\000P\000Q\000u\000e\000r\000y\000T\000r\000a\000d\000e\000r\000R\000e\000q\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-201 0 obj
-<< /S /GoTo /D (subsection.5.13.1) >>
-endobj
-204 0 obj
-(\376\377\0005\000.\0001\0003\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-205 0 obj
-<< /S /GoTo /D (section.5.14) >>
-endobj
-208 0 obj
-(\376\377\0005\000.\0001\0004\000\040\000X\000T\000P\000R\000s\000p\000I\000n\000f\000o\000S\000t\000r\000u\000c\000t\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-209 0 obj
-<< /S /GoTo /D (subsection.5.14.1) >>
-endobj
-212 0 obj
-(\376\377\0005\000.\0001\0004\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-213 0 obj
-<< /S /GoTo /D (section.5.15) >>
-endobj
-216 0 obj
-(\376\377\0005\000.\0001\0005\000\040\000X\000T\000P\000S\000p\000e\000c\000i\000f\000i\000c\000T\000i\000c\000k\000e\000r\000S\000t\000r\000u\000c\000t\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-217 0 obj
-<< /S /GoTo /D (subsection.5.15.1) >>
-endobj
-220 0 obj
-(\376\377\0005\000.\0001\0005\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-221 0 obj
-<< /S /GoTo /D (section.5.16) >>
-endobj
-224 0 obj
-(\376\377\0005\000.\0001\0006\000\040\000X\000T\000P\000T\000r\000a\000d\000e\000R\000e\000p\000o\000r\000t\176\323\147\204\117\123\000\040\123\302\200\003)
-endobj
-225 0 obj
-<< /S /GoTo /D (subsection.5.16.1) >>
-endobj
-228 0 obj
-(\376\377\0005\000.\0001\0006\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-229 0 obj
-<< /S /GoTo /D (chapter.6) >>
-endobj
-232 0 obj
-(\376\377\0006\000\040\145\207\116\366\213\364\146\016)
-endobj
-233 0 obj
-<< /S /GoTo /D (section.6.1) >>
-endobj
-236 0 obj
-(\376\377\0006\000.\0001\000\040\000d\000e\000m\000o\000\137\000t\000e\000s\000t\000\137\000q\000u\000o\000t\000e\000\137\000a\000p\000i\000.\000c\000p\000p\000\040\145\207\116\366\123\302\200\003)
-endobj
-237 0 obj
-<< /S /GoTo /D (subsection.6.1.1) >>
-endobj
-240 0 obj
-(\376\377\0006\000.\0001\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-241 0 obj
-<< /S /GoTo /D (subsection.6.1.2) >>
-endobj
-244 0 obj
-(\376\377\0006\000.\0001\000.\0002\000\040\121\375\145\160\213\364\146\016)
-endobj
-245 0 obj
-<< /S /GoTo /D (subsubsection.6.1.2.1) >>
-endobj
-248 0 obj
-(\376\377\0006\000.\0001\000.\0002\000.\0001\000\040\000m\000a\000i\000n\000\050\000\051)
-endobj
-249 0 obj
-<< /S /GoTo /D (section.6.2) >>
-endobj
-252 0 obj
-(\376\377\0006\000.\0002\000\040\000d\000e\000m\000o\000\137\000t\000e\000s\000t\000\137\000q\000u\000o\000t\000e\000\137\000s\000p\000i\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-253 0 obj
-<< /S /GoTo /D (subsection.6.2.1) >>
-endobj
-256 0 obj
-(\376\377\0006\000.\0002\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-257 0 obj
-<< /S /GoTo /D (section.6.3) >>
-endobj
-260 0 obj
-(\376\377\0006\000.\0003\000\040\000x\000o\000m\000s\000\137\000a\000p\000i\000\137\000s\000t\000r\000u\000c\000t\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-261 0 obj
-<< /S /GoTo /D (subsection.6.3.1) >>
-endobj
-264 0 obj
-(\376\377\0006\000.\0003\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-265 0 obj
-<< /S /GoTo /D (section.6.4) >>
-endobj
-268 0 obj
-(\376\377\0006\000.\0004\000\040\000x\000q\000u\000o\000t\000e\000\137\000a\000p\000i\000\137\000s\000t\000r\000u\000c\000t\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-269 0 obj
-<< /S /GoTo /D (subsection.6.4.1) >>
-endobj
-272 0 obj
-(\376\377\0006\000.\0004\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-273 0 obj
-<< /S /GoTo /D (section.6.5) >>
-endobj
-276 0 obj
-(\376\377\0006\000.\0005\000\040\000x\000t\000p\000\137\000a\000p\000i\000\137\000d\000a\000t\000a\000\137\000t\000y\000p\000e\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-277 0 obj
-<< /S /GoTo /D (subsection.6.5.1) >>
-endobj
-280 0 obj
-(\376\377\0006\000.\0005\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-281 0 obj
-<< /S /GoTo /D (subsection.6.5.2) >>
-endobj
-284 0 obj
-(\376\377\0006\000.\0005\000.\0002\000\040\147\232\116\076\174\173\127\213\213\364\146\016)
-endobj
-285 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.1) >>
-endobj
-288 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0001\000\040\000X\000T\000P\000\137\000E\000X\000C\000H\000A\000N\000G\000E\000\137\000T\000Y\000P\000E)
-endobj
-289 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.2) >>
-endobj
-292 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0002\000\040\000X\000T\000P\000\137\000M\000A\000R\000K\000E\000T\000\137\000T\000Y\000P\000E)
-endobj
-293 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.3) >>
-endobj
-296 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0003\000\040\000X\000T\000P\000\137\000O\000R\000D\000E\000R\000\137\000A\000C\000T\000I\000O\000N\000\137\000S\000T\000A\000T\000U\000S\000\137\000T\000Y\000P\000E)
-endobj
-297 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.4) >>
-endobj
-300 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0004\000\040\000X\000T\000P\000\137\000O\000R\000D\000E\000R\000\137\000S\000T\000A\000T\000U\000S\000\137\000T\000Y\000P\000E)
-endobj
-301 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.5) >>
-endobj
-304 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0005\000\040\000X\000T\000P\000\137\000O\000R\000D\000E\000R\000\137\000S\000U\000B\000M\000I\000T\000\137\000S\000T\000A\000T\000U\000S\000\137\000T\000Y\000P\000E)
-endobj
-305 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.6) >>
-endobj
-308 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0006\000\040\000X\000T\000P\000\137\000P\000R\000I\000C\000E\000\137\000T\000Y\000P\000E)
-endobj
-309 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.7) >>
-endobj
-312 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0007\000\040\000X\000T\000P\000\137\000P\000R\000O\000T\000O\000C\000O\000L\000\137\000T\000Y\000P\000E)
-endobj
-313 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.8) >>
-endobj
-316 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0008\000\040\000X\000T\000P\000\137\000S\000I\000D\000E\000\137\000T\000Y\000P\000E)
-endobj
-317 0 obj
-<< /S /GoTo /D (subsubsection.6.5.2.9) >>
-endobj
-320 0 obj
-(\376\377\0006\000.\0005\000.\0002\000.\0009\000\040\000X\000T\000P\000\137\000T\000E\000\137\000R\000E\000S\000U\000M\000E\000\137\000T\000Y\000P\000E)
-endobj
-321 0 obj
-<< /S /GoTo /D (section.6.6) >>
-endobj
-324 0 obj
-(\376\377\0006\000.\0006\000\040\000x\000t\000p\000\137\000a\000p\000i\000\137\000s\000t\000r\000u\000c\000t\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-325 0 obj
-<< /S /GoTo /D (subsection.6.6.1) >>
-endobj
-328 0 obj
-(\376\377\0006\000.\0006\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-329 0 obj
-<< /S /GoTo /D (section.6.7) >>
-endobj
-332 0 obj
-(\376\377\0006\000.\0007\000\040\000x\000t\000p\000\137\000a\000p\000i\000\137\000s\000t\000r\000u\000c\000t\000\137\000c\000o\000m\000m\000o\000n\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-333 0 obj
-<< /S /GoTo /D (subsection.6.7.1) >>
-endobj
-336 0 obj
-(\376\377\0006\000.\0007\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-337 0 obj
-<< /S /GoTo /D (section.6.8) >>
-endobj
-340 0 obj
-(\376\377\0006\000.\0008\000\040\000x\000t\000p\000\137\000q\000u\000o\000t\000e\000\137\000a\000p\000i\000.\000h\000\040\145\207\116\366\123\302\200\003)
-endobj
-341 0 obj
-<< /S /GoTo /D (subsection.6.8.1) >>
-endobj
-344 0 obj
-(\376\377\0006\000.\0008\000.\0001\000\040\213\346\176\306\143\317\217\360)
-endobj
-345 0 obj
-<< /S /GoTo /D (section*.35) >>
-endobj
-348 0 obj
-(\376\377\175\042\137\025)
-endobj
-349 0 obj
-<< /S /GoTo /D [350 0 R /Fit] >>
-endobj
-351 0 obj <<
-/Length 206
-/Filter /FlateDecode
->>
-stream
-x]1o !ɐ,KHVu#u%p_@NwݻSG>A}K=%+yWv2*}N4u<h
9_{Gyp?&mGC.t6LmM6Uڭ9Kbx$iOE[rC+p."Y*>
-stream
-x]1o!!tni醶Qr!2`ϟlֿ2Y(c셖#\i
-+|py{f
-<ܗLsc1P".Y}ԗxv?kJ734RæO;T-utEOKD0Zw0Sbmu|N5G]*\ywHq֦mXHRiJ
-endstream
-endobj
-353 0 obj <<
-/Length 204
-/Filter /FlateDecode
->>
-stream
-x]10.wB !DM%Qa`}:K=%6d"Tǜhx9_Gy~O_bDРmhȅ&DPmS/8$GnphA
zO垉V2ȫ]D:m5U>
-stream
-x]1o ! yiCҪnR|3͐{w?ԧ;P -aK78o&Bexx, $y`M{q$'~طm4'4:8sW3T5Th,በ>;m#nknrĿV2ȳ]E:m5U>
-stream
-x]1 {CEzKN2W5WV
-N䐡 :`ϟl}wY)a氈%h'i}h'2?DSCP,Iԏ8#6W{%;M
\hLmM6Uڭ9Kbx$iM[3
-\yHvVZHP-i
-endstream
-endobj
-356 0 obj <<
-/Length 204
-/Filter /FlateDecode
->>
-stream
-x]1 {CEzKN2W5WV
-N䐡 :`ϟl}wY)a氈%h'i}h'2?DSCP,Iԏ8#6W{?&mGC.t4d&ضn*~%1<tӴЇCbmxO{*L<A^"i3C,T=1i
-endstream
-endobj
-357 0 obj <<
-/Length 205
-/Filter /FlateDecode
->>
-stream
-x]?0ſ{CqfQppk+pMڡ$ԏ;P -aK۴jPnK1@k,.In؝
[ c5tЧ_f&k꾩a-XA7M}:u v/F\T}l=eg{dgujxLυUwiD
-endstream
-endobj
-358 0 obj <<
-/Length 204
-/Filter /FlateDecode
->>
-stream
-x]1o!!ReDtC(J] R 75C,ކC:K#eNhX8Wv6 }4#qr~_đpg\SLѡȗB&}
-oI_t$cIOu=ԃ=iqϩZ v)ڴTI1U?-i
-endstream
-endobj
-359 0 obj <<
-/Length 205
-/Filter /FlateDecode
->>
-stream
-x]1o!!tʀni醶Qr!2`ϟlֿ2Y(c셖#\i
-+|py{f
-<ܗLsc1P".Y}ԗxv?kJ734RæO;T-utEOKD0Zw0Sbmu|N5G]*\ywHq֦mXHR?iG
-endstream
-endobj
-360 0 obj <<
-/Length 205
-/Filter /FlateDecode
->>
-stream
-x]1 {CEzC'N2W5WV
-N䐡 :`ϟl}wY)a氈%h'i}h'2?DSCP,Iԏ8#6W{%;M
\hLmM6Uڭ9Kbx$iM[3
-\yHvVZHP+i
-endstream
-endobj
-361 0 obj <<
-/Length 205
-/Filter /FlateDecode
->>
-stream
-x]1o !yiCҪnR|3͐{w;wԧS -aKhi{hg2?DscP_Y\<=ԇ8v?OC4'4h[8s73T5Th,በ\Zm#5UrĿV2ȳ]E:m5U>
-stream
-x]1k0!/-iK@WE:A|gyȿ$tHzݽ;}tԷS aK=i}h'2DSCP?Yܱ7/q$Gl.쏇/1h"Nhжp4Bg?DPmS/8$GntjA^x(L<A"i3=C,T={i\
-endstream
-endobj
-363 0 obj <<
-/Length 205
-/Filter /FlateDecode
->>
-stream
-x]1k0!.d^t6$_I2{w?ԧ;P -aKi{hg2<>
-stream
-x]1o !I
yiCڪnR|3ɐ{w'o "p3v{8oN&Beω