playbook/docs/tsl/syntax_book/function/04_algo_trading.md

70 KiB
Raw Blame History

算法交易支撑函数

内容

  • 算法交易服务器支撑事件函数
  • 算法交易开发类说明
  • 交易支撑函数

算法交易服务器支撑事件函数

内容
  • 算法交易服务器支撑/事件函数说明
  • 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股同时将小于买一价的未成交委托单做撤单处理。

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

用途:交易指令相关函数。 参数:

返回:处理后的结果值。

范例

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

范例

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

用途:交易指令相关函数。 参数:

返回:处理后的结果值。

范例

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

用途:交易指令相关函数。 参数:

返回:处理后的结果值。

范例

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

用途:交易指令相关函数。 参数:

返回:处理后的结果值。

范例

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 空头保证金率

####### 使用范例

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

用途:交易指令扩展及算法交易相关函数。 参数:

返回:处理后的结果值。

范例

// ///////////////////////////////范例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

用途:交易指令扩展及算法交易相关函数。 参数:

返回:处理后的结果值。

范例

// 停止编号为156000000107的母订单
Ret := TS_ATStop(h, 156000000107, 20000);

参考http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=

####### TS_ATGetParamterandDefaultValue

用途:交易指令扩展及算法交易相关函数。 参数:

返回:处理后的结果值。

范例

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

用途:交易指令扩展及算法交易相关函数。 参数:

返回:处理后的结果值。

范例

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

用途:交易指令扩展及算法交易相关函数。 参数:

返回:处理后的结果值。

范例

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 策略开始时间
0Now
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

用途:交易指令扩展及算法交易相关函数。 参数:无。 返回:整数。

范例

// 案例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

范例

// 设置目标头寸
return Rdo2TSOrder_FuturePosition_CEP("
tcp://asp-sim2-front1.financial-trading-platform.com:26205",
"2030", "123456", "888888", "IF1303", 5, -1, "", 1);