### 算法交易支撑函数
#### 内容
- 算法交易服务器支撑事件函数
- 算法交易开发类说明
- 交易支撑函数
#### 算法交易服务器支撑事件函数
##### 内容
- 算法交易服务器支撑/事件函数说明
- SendEvent
- AddEvent
- RemoveEvent
- ScheduleEvent
- TimerEvent
- ListEvents
- SetGlobalData
- GetGlobalData
- RemoveGlobalData
- ListGlobalData
##### 算法交易服务器支撑/事件函数说明
事件函数仅在算法交易服务器支持,普通的金融分析.NET Server不被许可支持。
##### SendEvent
##### AddEvent
##### RemoveEvent
##### ScheduleEvent
##### TimerEvent
##### ListEvents
##### SetGlobalData
##### GetGlobalData
##### RemoveGlobalData
##### ListGlobalData
#### 算法交易开发类说明
##### 内容
- TSOrder2
- Tsorder2开发步骤
- Tsorder2开发范例
##### TSOrder2
TSOrder2是一个基于面向对象封装的算法交易开发工具包,基于TSL语言对于复杂的CEP异步事务处理做了底层的封装,让用户无需对CEP进行理解,简化应用开发,对于复杂的柜台交易协议做了底层的封装,隐藏交易实现细节,提高算法交易的开发效率。
继承TSORDER2类可以让应用开发人员能快速开发出稳定的算法策略。
###### 内容
- TSOrder2订单管理流程图
- TSOrder2对象属性、方法
###### TSOrder2订单管理流程图
其中蓝色模块(Init,DoOrder)需要开发员去编程实现。
###### TSOrder2对象属性、方法
####### 内容
- 构造方法
- 订单初始化
- 消息回调
- 订单动作
- release
- set_key
- get_key
- add_log
- SysLog
- 订单状态
- 订单属性
- 子单数据结构
####### 构造方法
######## 内容
- create
- Create:根据参数信息创建订单
- Create:根据订单号获得订单对象
######## create
######## Create:根据参数信息创建订单
######## Create:根据订单号获得订单对象
####### 订单初始化
######## 内容
- init
######## init
####### 消息回调
######## 内容
- DoOrder
######## DoOrder
####### 订单动作
######## 内容
- TOrder
- TOrder2
- TOrder3
- get_price
- get_pk_vol
- CancelOrder
- CancelOrder1
- CancelOrder2
- get_cdprice
######## TOrder
######## TOrder2
######## TOrder3
######## get_price
######## get_pk_vol
######## CancelOrder
######## CancelOrder1
######## CancelOrder2
######## get_cdprice
####### release
####### set_key
####### get_key
####### add_log
####### SysLog
####### 订单状态
######## 内容
- GetValue
- GetOrders
######## GetValue
######## GetOrders
####### 订单属性
######## 内容
- IsInit
- GetData
- GetOid
######## IsInit
######## GetData
######## GetOid
####### 子单数据结构
| 字段名 | 数据类型 | 说明 |
| ------------ | -------- | ------------------------------------------------------------------------------------------------------------------ |
| Datatype | string | 数据类型:
Position: 母单信息
order:子单委托
trade:子单成交明细 |
| StrategyName | string | 算法策略名称 |
| InstrumentID | string | 股票代码 |
| Available | string | 母单启动时,当前账户可用资金(买) |
| Direction | string | 买卖方向 |
| YdPosition | string | 母单启动时,当前可卖股数(卖) |
| Position | string | 母单启动时,当前持有股数(卖) |
| TSOrderID | string | 母单、或子单订单号(交易网关) |
| OrderID | string | 子单委托号(柜台) |
| EntrustID | string | 子单撤单号(柜台) |
| OffsetFlag | string | 期货开平方向 |
| OrderStatus | string | 母单或子单状态
0:全部成交
1:部分成交
5:撤单
a:正在委托(柜台还未返回)
c:委托成功
w:正在撤单 |
| StatusMsg | string | 母单或子单状态信息 |
| Price | string | 子单委托价格 |
| Vol | string | 子单委托数量 |
| TradeVol | string | 子单成交数量 |
| TradeAmount | string | 子单成交金额 |
| OrderTime | string | 子单委托时间(网关) |
| OrderTime2 | string | 子单委托时间(柜台) |
| Cancel | string | 母单、子单是否可撤单 |
##### Tsorder2开发步骤
> > 新建一个算法类,继承基类TSorder2。
> > 重载init()方法,对数据进行初始化,参数符合要求的订单,进行下单,参数不符合要求的订单,则初始化失败,结束订单。另外一些预处理也在初始化中进行,如交易时间的规范化,VWAP交易量分布的预测,TWAP下单数量和下单次数的计算等。
> > 重载DoOrder()方法,实现子单的拆分与下单。使用基类中提供的方法,获得订单状态、下单状态等,进行拆单、下单、撤单。
##### Tsorder2开发范例
案例:
开发一个算法交易策略,每间隔5秒以买一价买入100股,同时将小于买一价的未成交委托单做撤单处理。
```tsl
type MyOrder = class(TsOrder2)
function init();override;
begin
// 订单初始化,检查定单有效性
if OrderData_['策略开始时间'] < today() + strtotime('9:30:00') then OrderData_['策略开始时间'] := today() + strtotime('9:30:00');
if OrderData_['策略开始时间'] > today() + strtotime('11:30:00') and OrderData_['策略开始时间'] < today() + strtotime('13:00:00') then OrderData_['策略开始时间'] := today() + strtotime('13:00:00');
if timeof(OrderData_['策略结束时间']) > strtotime('15:00:00') then OrderData_['策略结束时间'] := today() + strtotime('15:00:00');
// 获得总交易时间
total_trade_seconds := class(TS_TradeManager).GetTradeSeconds(OrderData_['策略开始时间'], OrderData_['策略结束时间']);
if total_trade_seconds <= 0 then begin
release('初始化失败(交易时间段错误)');
return 0;
end;
return 1;
end;
function DoOrder();virtual; // 下单、撤单等
begin
t := now();
if t >= OrderData_['策略结束时间'] then begin//订单执行截止时间
release('策略生命期到,强制结束算法策略');
return;
end;
stkid := OrderData_ ['代码'];
SetSysParam(pn_stock(), stkid);
buy1_price := rd(10); // 买一档价格
// 撤单(撤掉所有<买一价的子单)
child_orders := GetOrders(4); // 获取所有可撤单的子单
for i := 0 to length(child_orders) - 1 do begin
if strtofloat(child_orders[i][‘Price’]) < buy1_price then CancelOrder(child_orders[i][‘EntrustID’]); // 子单撤单
end;
// 下子单
TOrder(‘B’, buy1_price, 100, ’test’);
end;
```
注:开发中cep不能设置断点进行调试,需要使用syslog,将相关信息打印出来,保存在TXT文档中。
#### 交易支撑函数
##### 内容
- 交易指令
- 交易指令扩展及算法交易
##### 交易指令
###### 内容
- TT_UserLogin
- TT_UserLogout
- TT_WT
- TT_MultiWT
- TT_CancelWT
- TT_Query
- 异步消息返回字段
- 交易接口调用错误表
###### TT_UserLogin
用途:交易指令相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
timeout := 3000;
// 登陆天软证券模拟交易柜台
h := TT_UserLogin("Tinysoft", "", "123456", "888888", timeout, errmsg);
// 登陆CTP柜台
h := TT_UserLogin("上期技术",
"tcp://asp-sim2-front1.financial-trading-platform.com:26205@2030", "123456", "888888",
timeout, errmsg);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
###### TT_UserLogout
范例
```tsl
timeout := 3000;
h := TT_UserLogin("上期技术",
"tcp://asp-sim2-front1.financial-trading-platform.com:26205@2030", "123456",
"888888", timeout, errmsg);
TT_Logout(h, timeout);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
###### TT_WT
用途:交易指令相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
timeout := 3000;
h := TT_UserLogin("上期技术",
"tcp://asp-sim2-front1.financial-trading-platform.com:26205@2030",
"123456",
"888888",
Timeout,
errmsg);
if (h) then return TT_WT(h, "多开", ”IF1301”, 2300, 1, timeout, "开仓测试", 0);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
###### TT_MultiWT
用途:交易指令相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
timeout := 3000;
order_str := "SH600000|B|9.5|10;SH600005|S|3.2|10;";
h := TT_UserLogin("XXX证券", "M", "123456", "888888", timeout);
if (h) then begin
return TT_MultiWT(h, order_str, '23456', timeout);
end;
```
###### TT_CancelWT
用途:交易指令相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
timeout := 3000;
h := TT_UserLogin("XXX证券", "M", "123456", "888888", timeout);
if (h) then begin
// 撤单委托号为:89898989
t1 := TT_CancelWT(h, "89898989", 0, timeout);
// 多笔撤单
t2 := TT_CancelWT(h, "8989|8970|6547|89008|4556", 0, timeout);
// 撤单批量委托
t3 := TT_CancelWT(h, "23456", 1, timeout);
end;
```
###### TT_Query
用途:交易指令相关函数。
参数:
返回:处理后的结果值。
####### 内容
- 结算查询
- 结算确认
- 查询资金
- 查询委托
- 查询成交
- 查询持仓
- 查询持仓明细
- 查询合约
- 使用范例
####### 结算查询
CTP特有
| ConfirmDate | ConfirmTime |
| ----------- | ----------- |
| 20110929 | 09:00:03 |
####### 结算确认
CTP特有
| ConfirmDate | ConfirmTime |
| ----------- | ----------- |
| 20110929 | 09:00:03 |
CTP柜台为了让投资者了解当前的交易风险。每天,终端程序第一次登入Thost成功后,必须查询投资者结算结果(ReqQrySettlementInfo) 和确认投资者结算结果(ReqSettlementInfoConfirm),才能正常发送交易指令,包括报单、撤单、服务器预埋单等指令。在一天中,如果投资者中已经确认了结算结果,以后登入Thost,就不再必须确认结算结果,就可以直接发送交易指令了。
TT_Query(h,’结算查询’,’’,timeout);//结算确认查询
返回结果为结算日期及结算时间数组,表示已经结算确认,如果返回为空,则投资者必须进行结算确认:
TT_Query(h,’结算确认’,’’,timeout);//结算确认
####### 查询资金
证券返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | -------------- | -------------- | -------- | -------------------------- |
| 1 | AccountID | 投资者账号 | 是 | |
| 2 | StaticRights | 静态权益 | 是 | |
| 3 | DynamicRights | 动态权益 | 是 | |
| 4 | Available | 可用资金 | 是 | 可用资金=可取资金+入金金额 |
| 5 | Commission | 手续费 | 是 | |
| 6 | CloseProfit | 平仓盈亏 | 是 | |
| 7 | PositionProfit | 持仓盈亏 | 是 | |
| 8 | CurrMargin | 当前保证金总额 | 是 | |
| 9 | FrozenMargin | 冻结的保证金 | 是 | |
CTP返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ---------------------- | ---------------- | -------- | ---- |
| 1 | StaticRights | 静态权益 | 是 | |
| 2 | DynamicRights | 动态权益 | | |
| 3 | Available | 可用资金 | | |
| 4 | Commission | 手续费 | 是 | |
| 5 | CloseProfit | 平仓盈亏 | 是 | |
| 6 | PositionProfit | 持仓盈亏 | 是 | |
| 7 | CurrMargin | 当前保证金总额 | 是 | |
| 8 | FrozenMargin | 冻结的保证金 | 是 | |
| 9 | BrokerID | 经纪公司代码 | | |
| 10 | AccountID | 投资者帐号 | | |
| 11 | PreMortgage | 上次质押金额 | | |
| 12 | PreCredit | 上次信用额度 | | |
| 13 | PreDeposit | 上次存款额 | | |
| 14 | PreBalance | 上次结算准备金 | | |
| 15 | PreMargin | 上次占用的保证金 | | |
| 16 | InterestBase | 利息基数 | | |
| 17 | Interest | 利息收入 | | |
| 18 | Deposit | 入金金额 | | |
| 19 | Withdraw | 出金金额 | | |
| 20 | FrozenCash | 冻结的资金 | | |
| 21 | FrozenCommission | 冻结的手续费 | | |
| 22 | CashIn | 资金差额 | | |
| 23 | Balance | 期货结算准备金 | | |
| 24 | WithdrawQuota | 可取资金 | | |
| 25 | Reserve | 基本准备金 | | |
| 26 | TradingDay | 交易日 | | |
| 27 | SettlementID | 结算编号 | | |
| 28 | Credit | 信用额度 | | |
| 29 | Mortgage | 质押金额 | | |
| 30 | ExchangeMargin | 交易所保证金 | | |
| 31 | DeliveryMargin | 投资者交割保证金 | | |
| 32 | ExchangeDeliveryMargin | 交易所交割保证金 | | |
####### 查询委托
证券返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------ | ------------ | -------- | ------------------ |
| 1 | InvestorID | 投资者代码 | 是 | |
| 2 | TSOrderID | 天软委托编号 | 是 | |
| 3 | OrderID | 委托编号 | | (等于EntrustID) |
| 4 | EntrustID | 报单编号 | 是 | 利用该ID可进行撤单 |
| 5 | Direction | 买卖方向 | 是 | |
| 6 | InstrumentID | 合约代码 | 是 | |
| 7 | Vol | 报单数量 | 是 | |
| 8 | TradeVol | 成交数量 | 是 | |
| 9 | Price | 报单价格 | 是 | |
| 10 | InsertDate | 报单日期 | 是 | |
| 11 | InsertTime | 报单时间 | 是 | |
| 12 | OrderStatus | 报单状态 | 是 | |
| 13 | CancelTime | | | |
| 14 | Broker | 佣金 | | |
| 15 | Transfer | 过户费 | | |
| 16 | Stamp | 印花税 | | |
| 17 | StockSum | 股票费用 | | |
CTP返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------------- | ------------------------ | -------- | ------------------------ |
| 1 | EntrustID | 报单编号 | 是 | 利用该ID可以撤单 |
| 2 | OnTradeMsg | 委托编号 | 是 | 利用该ID可以关联成交回报 |
| 3 | StkID | 合约代码1 | 是 | |
| 4 | Price | 报单价格 | 是 | |
| 5 | Vol | 报单数量 | 是 | |
| 6 | TradeVol | 成交数量 | 是 | |
| 7 | StatusMsg | 状态信息 | 是 | |
| 8 | OrderDate | 报单日期 | 是 | |
| 9 | OrderTime | 委托时间 | 是 | |
| 10 | BrokerID | 经纪公司代码 | | |
| 11 | InvestorID | 投资者代码 | 是 | |
| 12 | InstrumentID | 合约代码2 | 是 | |
| 13 | OrderRef | 报单引用 | | |
| 14 | UserID | 用户代码 | | |
| 15 | OrderPriceType | 报单价格条件 | | |
| 16 | Direction | 买卖方向 | 是 | |
| 17 | CombOffsetFlag | 组合开平标志 | | |
| 18 | CombHedgeFlag | 组合投机套保标志 | | |
| 19 | LimitPrice | 价格 | | |
| 20 | VolumeTotalOriginal | 数量 | | |
| 21 | TimeCondition | 有效期类型 | | |
| 22 | GTDDate | GTD日期 | | |
| 23 | VolumeCondition | 成交量类型 | | |
| 24 | MinVolume | 最小成交量 | | |
| 25 | ContingentCondition | 触发条件 | | |
| 26 | StopPrice | 止损价 | | |
| 27 | ForceCloseReason | 强平原因 | | |
| 28 | IsAutoSuspend | 自动挂起标志 | | |
| 29 | BusinessUnit | 业务单元 | | |
| 30 | RequestID | 请求编号 | | |
| 31 | OrderLocalID | 本地报单编号 | | |
| 32 | ExchangeID | 交易所代码 | | |
| 33 | ParticipantID | 会员代码 | | |
| 34 | ClientID | 客户代码 | | |
| 35 | ExchangeInstID | 合约在交易所的代码 | | |
| 36 | TraderID | 交易所交易员代码 | | |
| 37 | InstallID | 安装编号 | | |
| 38 | OrderSubmitStatus | 报单提交状态 | | |
| 39 | NotifySequence | 报单提示序号 | | |
| 40 | TradingDay | 交易日 | | |
| 41 | SettlementID | 结算编号 | | |
| 42 | OrderSysID | 报单编号 | | |
| 43 | OrderSource | 报单来源 | | |
| 44 | OrderStatus | 报单状态 | 是 | |
| 45 | OrderType | 报单类型 | | |
| 46 | VolumeTraded | 今成交数量 | | |
| 47 | VolumeTotal | 剩余数量 | | |
| 48 | InsertDate | 报单日期 | 是 | |
| 49 | InsertTime | 委托时间 | 是 | |
| 50 | ActiveTime | 激活时间 | | |
| 51 | SuspendTime | 挂起时间 | | |
| 52 | UpdateTime | 最后修改时间 | | |
| 53 | CancelTime | 撤销时间 | | |
| 54 | ActiveTraderID | 最后修改交易所交易员代码 | | |
| 55 | ClearingPartID | 结算会员编号 | | |
| 56 | SequenceNo | 序号 | | |
| 57 | FrontID | 前置编号 | | |
| 58 | SessionID | 会话编号 | | |
| 59 | UserProductInfo | 用户端产品信息 | | |
| 60 | UserForceClose | 用户强评标志 | | |
| 61 | ActiveUserID | 操作用户代码 | | |
| 62 | BrokerOrderSeq | 经纪公司报单编号 | | |
| 63 | RelativeOrderSysID | 相关报单 | | |
| 64 | TSOrderID | 天软委托编号 | 是 | |
####### 查询成交
证券返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------ | ---------- | -------- | -------------------------------------- |
| 1 | InvestorID | 投资者代码 | 是 | |
| 2 | OrderID | 订单号 | | 利用该ID可以关联到委托ID
orderSysId |
| 3 | SequenceNo | 交易单号 | 是 | |
| 4 | Direction | 买卖方向 | 是 | |
| 5 | InstrumentID | 股票代码 | 是 | |
| 6 | Vol | 成交量 | 是 | |
| 7 | TradeDate | 交易日期 | 是 | |
| 8 | TradeTime | 交易时间 | 是 | |
| 9 | Price | 成交价格 | 是 | |
| 10 | Broker | 佣金 | | |
| 11 | Transfer | 过户费 | | |
| 12 | Stamp | 印花税 | | |
| 13 | TradeAmount | 股票费用 | | |
CTP返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | -------------- | ------------------ | -------- | -------------------------- |
| 1 | OnTradeMsg | 成交回报ID | 是 | 利用该ID可以关联到委托报单 |
| 2 | StkID | 合约代码1 | | |
| 3 | TradeDate | 成交时期 | 是 | |
| 4 | TradeTime | 成交时间 | 是 | |
| 5 | Vol | 成交数量 | 是 | |
| 6 | Price | 成交价格 | 是 | |
| 7 | BrokerID | 经纪公司代码 | | |
| 8 | InvestorID | 投资者代码 | 是 | |
| 9 | InstrumentID | 合约代码2 | 是 | |
| 10 | OrderRef | 报单引用 | | |
| 11 | UserID | 用户代码 | | |
| 12 | ExchangeID | 交易所代码 | | |
| 13 | TradeID | 成交编号 | | |
| 14 | Direction | 买卖方向 | 是 | |
| 15 | OrderSysID | 报单编号 | | |
| 16 | ParticipantID | 会员代码 | | |
| 17 | ClientID | 客户代码 | | |
| 18 | TradingRole | 交易角色 | | |
| 19 | ExchangeInstID | 合约在交易所的代码 | | |
| 20 | OffsetFlag | 开平标志 | | |
| 21 | HedgeFlag | 投机套保标志 | | |
| 22 | Volume | 数量 | | |
| 23 | TradeType | 成交类型 | | |
| 24 | PriceSource | 成交价来源 | | |
| 25 | TraderID | 交易所交易员代码 | | |
| 26 | OrderLocalID | 本地报单编号 | | |
| 27 | ClearingPartID | 结算会员编号 | | |
| 28 | BusinessUnit | 业务单元 | | |
| 29 | SequenceNo | 序号 | 是 | |
| 30 | TradingDay | 交易日 | | |
| 31 | SettlementID | 结算编号 | | |
| 32 | BrokerOrderSeq | 经纪公司报单编号 | | |
####### 查询持仓
证券返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------- | ------------ | -------- | ---- |
| 1 | InvestorID | 用户 | 是 | |
| 2 | InstrumentID | 合约代码 | 是 | |
| 3 | PositionDate | 持仓日期 | 是 | |
| 4 | YdPosition | 昨日剩余持仓 | 是 | |
| 5 | Position | 总持仓 | 是 | |
| 6 | TradingDay | 交易日 | 是 | |
| 7 | TodayPosition | 今日买入 | 是 | |
| 8 | YdPosition2 | 今日初始持仓 | | |
| 9 | StockCost | 持仓总成本 | | |
CTP返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------------ | ------------------ | -------- | ---- |
| 1 | InstrumentID | 合约代码 | 是 | |
| 2 | BrokerID | 经纪公司代码 | | |
| 3 | InvestorID | 投资者代码 | 是 | |
| 4 | PosiDirection | 持仓多空方向 | | |
| 5 | HedgeFlag | 投机套保标志 | | |
| 6 | PositionDate | 持仓日期 | 是 | |
| 7 | YdPosition | 上日持仓 | 是 | |
| 8 | Position | 今日持仓 | 是 | |
| 9 | LongFrozen | 多头冻结 | | |
| 10 | ShortFrozen | 空头冻结 | | |
| 11 | LongFrozenAmount | 开仓冻结金额 | | |
| 12 | ShortFrozenAmount | 开仓冻结金额 | | |
| 13 | OpenVolume | 开仓量 | | |
| 14 | CloseVolume | 平仓量 | | |
| 15 | OpenAmount | 开仓金额 | | |
| 16 | CloseAmount | 平仓金额 | | |
| 17 | PositionCost | 持仓成本 | | |
| 18 | PreMargin | 上次占用的保证金 | | |
| 19 | UseMargin | 占用的保证金 | | |
| 20 | FrozenMargin | 冻结的保证金 | | |
| 21 | FrozenCash | 冻结的资金 | | |
| 22 | FrozenCommission | 冻结的手续费 | | |
| 23 | CashIn | 资金差额 | | |
| 24 | Commission | 手续费 | | |
| 25 | CloseProfit | 平仓盈亏 | | |
| 26 | PositionProfit | 持仓盈亏 | | |
| 27 | PreSettlementPrice | 上次结算价 | | |
| 28 | SettlementPrice | 本次结算价 | | |
| 29 | TradingDay | 交易日 | 是 | |
| 30 | SettlementID | 结算编号 | | |
| 31 | OpenCost | 开仓成本 | | |
| 32 | ExchangeMargin | 交易所保证金 | | |
| 33 | CombPosition | 组合成交形成的持仓 | | |
| 34 | CombLongFrozen | 组合多头冻结 | | |
| 35 | CombShortFrozen | 组合空头冻结 | | |
| 36 | CloseProfitByDate | 逐日盯市平仓盈亏 | | |
| 37 | CloseProfitByTrade | 逐笔对冲平仓盈亏 | | |
| 38 | TodayPosition | 今日持仓 | 是 | |
| 39 | MarginRateByMoney | 保证金率 | | |
| 40 | MarginRateByVolume | 保证金率(按手数) | | |
####### 查询持仓明细
CTP特有
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | --------------------- | ---------------- | -------- | ---- |
| 1 | InstrumentID | 合约代码 | | |
| 2 | BrokerID | 经纪公司代码 | | |
| 3 | InvestorID | 投资者代码 | | |
| 4 | HedgeFlag | 投机套保标志 | | |
| 5 | Direction | 买卖 | | |
| 6 | OpenDate | 开仓日期 | | |
| 7 | TradeID | 成交编号 | | |
| 8 | Volume | 数量 | | |
| 9 | OpenPrice | 开仓价 | | |
| 10 | TradingDay | 交易日 | | |
| 11 | SettlementID | 结算编号 | | |
| 12 | TradeType | 成交类型 | | |
| 13 | CombInstrumentID | 组合合约代码 | | |
| 14 | ExchangeID | 交易所代码 | | |
| 15 | CloseProfitByDate | 逐日盯市平仓盈亏 | | |
| 16 | CloseProfitByTrade | 逐笔对冲平仓盈亏 | | |
| 17 | PositionProfitByDate | 逐日盯市持仓盈亏 | | |
| 18 | PositionProfitByTrade | 逐笔对冲持仓盈亏 | | |
| 19 | Margin | 投资者保证金 | | |
| 20 | ExchMargin | 交易所保证金 | | |
| 21 | MarginRateByMoney | 保证金率 | | |
| 22 | MarginRateByVolume | 保证金率(按手数) | | |
| 23 | LastSettlementPrice | 昨结算价 | | |
| 24 | SettlementPrice | 结算价 | | |
| 25 | CloseVolume | 平仓量 | | |
| 26 | CloseAmount | 平仓金额 | | |
####### 查询合约
CTP特有
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | -------------------- | ------------------ | -------- | ---- |
| 1 | InstrumentID | 合约代码 | | |
| 2 | ExchangeID | 交易所代码 | | |
| 3 | InstrumentName | 合约名称 | | |
| 4 | ExchangeInstID | 合约在交易所的代码 | | |
| 5 | ProductID | 产品代码 | | |
| 6 | ProductClass | 产品类型 | | |
| 7 | DeliveryYear | 交割年份 | | |
| 8 | DeliveryMonth | 交割月 | | |
| 9 | MaxMarketOrderVolume | 市价单最大下单量 | | |
| 10 | MinMarketOrderVolume | 市价单最小下单量 | | |
| 11 | MaxLimitOrderVolume | 限价单最大下单量 | | |
| 12 | MinLimitOrderVolume | 限价单最小下单量 | | |
| 13 | VolumeMultiple | 合约数量乘数 | | |
| 14 | PriceTick | 最小变动价位 | | |
| 15 | CreateDate | 创建日 | | |
| 16 | OpenDate | 上市日 | | |
| 17 | ExpireDate | 到期日 | | |
| 18 | StartDelivDate | 开始交割日 | | |
| 19 | EndDelivDate | 结束交割日 | | |
| 20 | InstLifePhase | 合约生命周期状态 | | |
| 21 | IsTrading | 当前是否交易 | | |
| 22 | PositionType | 持仓类型 | | |
| 23 | PositionDateType | 持仓日期类型 | | |
| 24 | LongMarginRatio | 多头保证金率 | | |
| 25 | ShortMarginRatio | 空头保证金率 | | |
####### 使用范例
```tsl
timeout := 3000;
h := TT_UserLogin("上期技术",
"tcp://asp-sim2-front1.financial-trading-platform.com:26205@2030", "123456",
“888888”, timeout, errmsg);if (h) then begin
a := TT_Query(h, "查询资金", "", timeout);
b := TT_Query(h, "查询持仓", "", timeout);
c := TT_Query(h, "查询委托", "", timeout);
d := TT_Query(h, "查询成交", "", timeout);
e := TT_Query(h, "结算查询", "", timeout);
f := TT_Query(h, "结算确认", "", timeout);
end;
```
###### 异步消息返回字段
####### 内容
- 成交回报
- Logout
- OnDisconnect
####### 成交回报
证券返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | ------------ | ---------- | -------- | ---- |
| 1 | OrderID | 委托单号 | 是 | |
| 2 | TradeID | 交易单号 | 是 | |
| 3 | InvestorID | 投资人代码 | 是 | |
| 4 | OnTradeMsg | 成交回报ID | 是 | |
| 5 | SequenceNo | 交易单号 | 是 | |
| 6 | Direction | 买卖方向 | 是 | |
| 7 | InstrumentID | 股票代码 | 是 | |
| 8 | Vol | 成交量 | 是 | |
| 9 | TradeDate | 成交日期 | 是 | |
| 10 | TradeTime | 成交时间 | 是 | |
| 11 | Price | 成交价格 | 是 | |
| 12 | TradeAmount | 成交金额 | | |
| 13 | Broker | 佣金 | | |
| 14 | Transfer | 过户费 | | |
| 15 | Stamp | 印花税 | | |
CTP返回
| 序号 | 字段名称 | 中文名称 | 标准输出 | 说明 |
| ---- | -------------- | ------------------ | -------- | -------------------------- |
| 1 | OnTradeMsg | 成交回报ID | 是 | 利用该ID可以关联到委托报单 |
| 2 | StkID | 合约代码 | 是 | |
| 3 | Vol | 成交数量 | 是 | |
| 4 | Price | 成交价格 | 是 | |
| 5 | TradeDate | 成交日期 | 是 | |
| 6 | TradeTime | 成交时间 | 是 | |
| 7 | BrokerID | 经纪公司代码 | | |
| 8 | InvestorID | 投资者代码 | 是 | |
| 9 | InstrumentID | 合约代码 | 是 | |
| 10 | OrderRef | 报单引用 | | |
| 11 | UserID | 用户代码 | | |
| 12 | ExchangeID | 交易所代码 | | |
| 13 | TradeID | 成交编号 | | |
| 14 | Direction | 买卖方向 | 是 | |
| 15 | OrderSysID | 报单编号 | | |
| 16 | ParticipantID | 会员代码 | | |
| 17 | ClientID | 客户代码 | | |
| 18 | TradingRole | 交易角色 | | |
| 19 | ExchangeInstID | 合约在交易所的代码 | | |
| 20 | OffsetFlag | 开平标志 | | |
| 21 | HedgeFlag | 投机套保标志 | | |
| 22 | Price | 价格 | 是 | |
| 23 | Volume | 数量 | | |
| 24 | TradeType | 成交类型 | | |
| 25 | PriceSource | 成交价来源 | | |
| 26 | TraderID | 交易所交易员代码 | | |
| 27 | OrderLocalID | 本地报单编号 | | |
| 28 | ClearingPartID | 结算会员编号 | | |
| 29 | BusinessUnit | 业务单元 | | |
| 30 | SequenceNo | 序号 | 是 | |
| 31 | TradingDay | 交易日 | | |
| 32 | SettlementID | 结算编号 | | |
| 33 | BrokerOrderSeq | 经纪公司报单编号 | | |
####### Logout
当交易网关和上期技术Thost服务器断开网络连接,触发此消息
| GateWay | AccountID |
| -------- | --------- |
| 上期技术 | 9000988 |
####### OnDisconnect
当天软金融分析.NET服务器和交易网关断开连接
| error_no | error_info |
| -------- | ------------------ |
| 10008 | 与交易网关断开连接 |
###### 交易接口调用错误表
| error_no | error_info |
| -------- | ----------------------- |
| 10001 | 您的交易系统还没有登陆. |
| 10002 | 无效句柄. |
| 10003 | 交易网关不存在. |
| 10004 | 连接交易网关失败. |
| 10005 | 交易网关不支持该功能. |
| 10006 | 输入参数错误. |
| 10007 | 交易网络断开. |
| 10008 | 与交易网关断开连接 |
##### 交易指令扩展及算法交易
###### 内容
- 算法交易指令
- 期货头寸维护指令(无CEP)
- 期货头寸维护指令(CEP)
###### 算法交易指令
####### 内容
- TS_ATStart
- TS_ATStop
- TS_ATGetParamterandDefaultValue
- TS_ATQuery
- TS_ATQueryByOrderId
- 策略常用参数表
- VWAP策略常见参数表
- TWAP策略常见参数表
- QuickOrder策略常见参数表
####### TS_ATStart
用途:交易指令扩展及算法交易相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
// ///////////////////////////////范例I:非篮子交易///////////////////////////////////////
argv := array("柜台名":"Tinysoft", "账号属性":"", "账号":"10000003", "密码":"10000003");
h := TT_UserLogin(argv["柜台名"], argv['账号属性'], argv["账号"], argv["密码"], 20000, err);
// 得到VWAP策略参数和缺省值
VWAPPara := TS_ATGetParamterandDefaultValue(argv, "TSVWAP");
// 修改VWAP策略的某个参数(预测量分布,用过去60天数据,其余用系统缺省参数)
VWAPPara["预测量分布所用历史天数"] := 60;
// 设置要交易股票的代码&交易方向&数量
VWAPPara["代码"] := "SZ000002";
VWAPPara["交易方向"] := "B";
VWAPPara["数量"] := 10000;
// 调用天软算法交易模型,得到订单号
OrderID := TS_ATStart(h, VWAPPara, 2000, err);
return OrderID;
// ///////////////////////////////范例I:非篮子交易///////////////////////////////////////
// ///////////////////////////////范例II:篮子交易/////////////////////////////////////////
// 要买卖的股票篮子
StockArr := array(
("代码":"SZ000001", "交易方向":"B", "多空标志":"L", "数量":1000),
("代码":"SZ000002", "交易方向":"B", "多空标志":"L", "数量":2000),
("代码":"SZ000003", "交易方向":"B", "多空标志":"L", "数量":3000),
);
argv := array("柜台名":"Tinysoft", "账号属性":"", "账号":"10000003", "密码":"10000003");
h := TT_UserLogin(argv["柜台名"], argv['账号属性'], argv["账号"], argv["密码"], 20000, err);
// 篮子交易缺省参数
BasketPara := TS_ATGetParamterandDefaultValue(Argv, "TSBasket");
// 篮子交易开始时间、结束时间
BasketPara['策略开始时间'] := date() + EncodeTime(09, 31, 0, 0);
BasketPara['策略结束时间'] := date() + EncodeTime(09, 35, 0, 0);
for nI := 0 to length(StockArr) - 1 do
begin
// 篮子中的股票交易策略
Para := TS_ATGetParamterandDefaultValue(Argv, "TSQuickOrder");
Para["代码"] := StockArr[nI]["代码"];
Para["交易方向"] := StockArr[nI]["交易方向"];
Para["数量"] := StockArr[nI]["数量"];
TS_ATAddItemToBasket(BasketPara, Para);
end;
// 调用天软算法交易模型,得到订单号
OrderID := TS_ATStart(h, BasketPara, 20000, ErrStr);
return OrderID;
// ///////////////////////////////范例II:篮子交易/////////////////////////////////////////
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
####### TS_ATStop
用途:交易指令扩展及算法交易相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
// 停止编号为156000000107的母订单
Ret := TS_ATStop(h, ’156000000107’, 20000);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
####### TS_ATGetParamterandDefaultValue
用途:交易指令扩展及算法交易相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
argv := array("柜台名":"Tinysoft", "账号属性":"", "账号":"10000003", "密码":"10000003");
h := TT_UserLogin(argv["柜台名"], argv['账号属性'], argv["账号"], argv["密码"], 20000, err);
if h = 0 thenreturn “登录失败”;
// 获得天软提供的VWAP的缺省参数
argv := TS_ATGetParamterandDefaultValue(argv, 'TSVWAP');
return argv;
```
####### TS_ATQuery
用途:交易指令扩展及算法交易相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
argv := array("柜台名":"Tinysoft", "账号属性":"", "账号":"10000003", "密码":"10000003");
h := TT_UserLogin(argv["柜台名"], argv['账号属性'], argv["账号"], argv["密码"], 20000, err);
return TS_ATQuery(h, date(), 0, 20000);
return TS_ATQuery(h, date(), 1, 20000);
return TS_ATQuery(h, date(), 2, 20000);
return TS_ATQuery(h, date(), 3, 20000);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
####### TS_ATQueryByOrderId
用途:交易指令扩展及算法交易相关函数。
参数:
返回:处理后的结果值。
范例
```tsl
argv := array("柜台名":"Tinysoft", "账号属性":"", "账号":"10000003", "密码":"10000003");
h := TT_UserLogin(argv["柜台名"], argv['账号属性'], argv["账号"], argv["密码"], 20000, err);
// 查询所有母订单
return TS_ATQueryByOrderId(h, Date(), '', -1, 2000);
// 查询指定母订单的委托详情
return TS_ATQueryByOrderId(h, Date(), '347500000036', 1, 2000);
// 查询指定母订单的成交详情
return TS_ATQueryByOrderId(h, Date(), '347500000036', 2, 2000);
```
参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
####### 策略常用参数表
| 字段 | 类型 | 单位 | 缺省值 | 备注 | 详细说明 |
| ---------------------------- | -------- | ---- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 策略名称 | Varchar | | | | |
| 策略对象类名 | Varchar | | | 策略对象ID | |
| 策略开始时间类别 | Int | | | 策略开始时间
0:Now
1:固定时间 | 策略和下单的开始时间,一般大于等于NOW。 |
| 策略开始时间 | DateTime | | | 当策略开始时间类别=1时有效 | 策略和下单的开始时间,一般大于等于NOW。 |
| 策略结束时间类别 | int | | | 0:开始下单向后推移N分钟(交易时间)
1:收盘时间向前推移N分钟(交易时间)
2:固定时间 | |
| 策略结束时间 | DateTime | | | 策略截止时间
当下单截止时间类别=2时有效 | 策略和下单的截止时间,当now大于该时间时,订单将会释放,不会再有下单操作,未完成的单将会撤单 |
| 下单时间推移 | Int | | 10 | 当下单截止时间类别=0或者下单截止时间类别=1时有效(交易时间) | |
| 委托价类别 | Int | | 1 | 0:市价
1:指定参考档
2:基于市价浮动%
3:基于市价浮动
4:限价
5:基于参考档价格浮动 | 非追单时间段内的委托价类别 |
| 委托价-买卖盘参考档 | Int | | 1 | 对委托价类别=‘指定参考档or基于参考档价格浮动有效 | 在买入操作时 1 为卖一档价格,在卖出操作时1为买一档价格 |
| 委托价-基于市价浮动% | Numberic | (%) | 0 | 对委托价类别=‘基于市价浮动%’,目的为了快速买入卖出 | 基于当时的市价按百分比浮动,既在买入操作时,委托价=市价*(1+委托价-基于市价浮动%/100)
卖出操作时,委托价=市价*(1-委托价-基于市价浮动%/100/100) |
| 委托价-基于市价浮动 | Numberic | 元 | 0 | 对委托价类别=‘基于市价浮动’,目的为了快速买入卖出 | 基于当时的市价浮动多少元
买入操作时,委托价=市价+委托价-基于市价浮动
卖出操作时,委托价=市价-委托价-基于市价浮动 |
| 限定价 | Numberic | 元 | | 对委托价类别=‘限价’有效 | 指定委托价格 |
| 委托价-基于参考档价格浮动 | Numberic | 元 | 0 | 对委托价类别=‘基于参考档价格浮动’有效 | 例如在买入时可以用买一价加上0.01元下单确保下单价格比当前市场上买一高一点点 |
| 撤单时间 | Int | 秒 | 0 | 撤单时间>0,表示超时撤单
=0,表示不启用超时撤单 | 当子单的下单时间达到撤单时间还没有全部完成时,将会撤单。 |
| 价格撤单模式 | Int | | 1 | 0:不启用价格撤单
1:指定档行情撤单
2:基于委托价浮动%
3:基于委托价浮动(元) | 当子单的委托价格,超过撤单阀值时,将此子单撤单。 |
| 价格撤单-买卖盘参考档 | Int | | 5 | 仅对价格撤单模式=【指定档行情撤单】时有效 | 例如,在进行买入操作时,价格撤单模式=1,价格撤单-买卖盘参考档=5,当你的委托价格小于买五价时,将会触发撤单操作 |
| 价格撤单-基于委托价上浮% | (%) | | 0 | 仅对价格撤单模式=【基于委托价浮动%】时有效 | 当当前价格>委托价\*(1+价格撤单-基于委托价上浮%/100)时撤单 |
| 价格撤单-基于委托价浮动下浮% | (%) | | 0 | 仅对价格撤单模式=【基于委托价浮动%】时有效 | 当当前价格<委托价\*(1-价格撤单-基于委托价浮动下浮%/100)时撤单 |
| 价格撤单-基于委托价上浮 | 元 | | 0 | 仅对价格撤单模式=【基于委托价浮动(元)】时有效 | 当当前价格>委托价+价格撤单-基于委托价上浮时撤单 |
| 价格撤单-基于委托价下浮 | 元 | | 0 | 仅对价格撤单模式=【基于委托价浮动(元)】时有效 | 当当前价格<委托价-价格撤单-基于委托价下浮时撤单 |
| 委托价阀值类别 | Int | | 0 | 0:不设阀值
1:绝对价格
2:相对价格(相对系统昨收)
3:百分比(相对系统昨收)
4:涨跌停不交易 | 当委托价超过委托价阀值时,不进行下单操作。
涨跌停不交易,委托价大于等于涨停价时不下单,委托价小于等于跌停价时,不下单。 |
| 委托价上阀值 | Numberic | | 0 | 仅对委托价阀值类别=绝对价格\|相对价格\|百分比有效。 | 委托价阀值类别=1时,委托价>委托价上阀值时不下单
委托价阀值类别=2时,委托价>昨收+委托价上阀值时不下单
委托价阀值类别=3时,委托价>昨收\*(1+委托价上阀值/100)时不下单 |
| 委托价下阀值 | Numberic | | 0 | 可以为负 | 委托价阀值类别=1时,委托价<委托价下阀值时不下单
委托价阀值类别=2时,委托价<昨收+委托价下阀值时不下单
委托价阀值类别=3时,委托价<昨收\*(1+委托价下阀值/100)时不下单 |
| 最小委托股数 | Int | 股 | 100 | | 非追单时期的每次子单的最小委托股数, |
| 卖出时数量是否为整手 | Int | | 0 | 0:不取整
1:取整 | 某些柜台卖出时也必须取整手 |
| 是否追单 | Int | | 0 | 0:不追单
1:追单 | 追单:
1、未完成的量全部委托
2、采用新的委托价格委托价-追单买卖盘参考档
3、采用新的撤单模式价格撤单-追单买卖盘参考档 |
| 追单开始时间类别 | Int | | 0 | 0:策略结束时间向前推移N分钟
1:固定时间 | |
| 追单时间推移 | Int | 分钟 | 5 | 当追单开始时间类别=0时有效 | |
| 追单开始时间 | DateTime | | | 当追单开始时间类别=1时有效 | 追单的开始时间,一般为策略结束时间的前几分钟。 |
| 委托价类别-追单 | Int | | 1 | 0:市价
1:指定参考档 | 以市价或者指定参考档价格追单 |
| 委托价-追单买卖盘参考档 | Int | | 1 | 当委托价类别-追单=1时有效
1.1 委托价:如果是追单策略的话,一般用,买一/卖一档行情作为委托价
1.2 撤单:一般委托价在两档行情外,直接撤掉 | 当进行买入操作时,委托价-追单买卖盘参考档=1 将会以卖一价下单 |
| 价格撤单-追单买卖盘参考档 | Int | | 1 | | 当进行买入操作时,价格撤单-追单买卖盘参考档=1 时,如果委托价小于买一价,将会撤单,重下
0:不启用价格撤单-追单买卖盘参考档 |
| 撤单时间-追单 | 秒 | | 0 | | 在追单时,多少秒没完全成交,则撤单重下
0:不启用撤单时间-追单 |
####### VWAP策略常见参数表
| 字段 | 类型 | 单位 | 缺省值 | 备注 | 详细说明 |
| -------------------------- | -------- | ---- | ------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 预测量分布所用历史天数 | Int | 天 | 20 | | 预测量分布所用历史样本天数 |
| 预测量分布所用历史样本周期 | Varchar | | Cy_5m() | Cy_5m():5分钟
Cy_10m():10分钟
… | 预测量分布所用历史样本周期 |
| 加权方法 | Int | | 1 | 0:用户自定义
1:算数平均法
2: | |
| 用户自定义量分布 | Array | | | | 自定义历史每天交易量的权重 |
| 下单周期 | Int | 秒 | 60 | | 每个子单的下单周期,也就是下单频率 |
| 下单量增减比例(%) | Numberic | | 0 | (1)一般,此参数=用历史天数计算的下单周期的量的分布;
(2)也可以按照与测量比例,也可以在预测量比例基础上进行浮动 | 暂时未开放 |
| 交易量分配方法 | Int | | | 0:总量分配法
1:余额分配法
2: 时段分配法 | 0:子单委托量,在该时间区间未完全成交的撤单后,全部放到追单时再次委托
1:子单委托量,在该时间区间未完全成交的,按照以后,每个时间断所占的分配比例,再次分配。
2:子单委托量,在该时间区间未完全成交的,放到下个时间区间委托 |
####### TWAP策略常见参数表
| 字段 | 类型 | 单位 | 缺省值 | 备注 | 详细说明 |
| -------------- | ---- | ---- | ------ | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 下单方法 | Int | | 0 | 0:周期法
1:子单数量法 | 根据周期或者子单数量来确定下单频率 |
| 下单周期 | Int | 秒 | 60 | 仅当下单方法=【周期法】有效 | 根据交易时长和下单周期,计算出要下单次数,和每次的下单数量 |
| 子单数量 | Int | 个 | | 仅当下单方法=【子单数量法】有效 | 根据交易时长和子单数量,计算出下单频率和每次的下单数量 |
| 交易量分配方法 | Int | | | 0:总量分配法
1:余额分配法
2: 时段分配法 | 0:子单委托量,在该时间区间未完全成交的撤单后,全部放到追单时再次委托
1:子单委托量,在该时间区间未完全成交的,按照以后,每个时间断所占的分配比例,再次分配。
2:子单委托量,在该时间区间未完全成交的,放到下个时间区间委托 |
####### QuickOrder策略常见参数表
| 字段 | 类型 | 单位 | 缺省值 | 备注 | 详细说明 |
| -------------- | ---- | ------- | ------ | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 下单量分配方法 | Int | Int | 0 | 0:一次性全部下单
1:盘口数量浮动%
2:盘口数量浮动 | 确定子单的下单数量 |
| 盘口数量浮动 | Int | % or 股 | 0 | 仅当下单量分配方法=1or2时有效
可以为负 | 当进行买入操作时,委托价类别=1委托价-买卖盘参考档=2时,下单量分配方法=2 时,下单数量=min(剩余数量,卖一量+卖二量+盘口数量浮动)。
当进行买入操作时,委托价类别=1委托价-买卖盘参考档=2时,下单量分配方法=1 时,下单数量=min(剩余数量,(卖一量+卖二量)\*(1+盘口数量浮动/100)。 |
###### 期货头寸维护指令(无CEP)
####### 内容
- TSOrder_FuturePosition
####### TSOrder_FuturePosition
用途:交易指令扩展及算法交易相关函数。
参数:无。
返回:整数。
范例
```tsl
// 案例1、增加头寸
// 如IF1303合约当前头寸为2张多头,需要加仓到4张合约,position=4
// 案例2、减少头寸
// 如IF1303合约当前头寸为8张多头,需要减仓到1张合约,position=1
// 案例3、清仓
// 在任何时候,需要清仓,position=0即可。
// 案例4、反手
// 如IF1303合约当前头寸为2张多头,现在希望反手持有5张空头合约,position=-5
Position := 4; // 案例1
return
TSOrder_FuturePosition("tcp://asp-sim2-front1.financial-trading-platform.com:26205",
"2030", "123456", "888888", "IF1303", position, -1, "");
```
###### 期货头寸维护指令(CEP)
####### 内容
- TSOrder_FuturePosition_CEP
####### TSOrder_FuturePosition_CEP
范例
```tsl
// 设置目标头寸
return Rdo2TSOrder_FuturePosition_CEP("
tcp://asp-sim2-front1.financial-trading-platform.com:26205",
"2030", "123456", "888888", "IF1303", 5, -1, "", 1);
```