账户与股票池
程序化策略上实盘后,你要面对的不只是「什么时候开平仓」,还有「账户里有多少钱」「持仓了哪些品种」「怎么批量管理」。 本章讲金字塔的账户查询、股票池和模组管理。
一、账户资金查询 TACCOUNT
TACCOUNT(N) 读取当前登录账户的各项属性(只在最新 K 线有效):
| N | 返回值 |
|---|---|
| 1 | 账号 ID(字符串) |
| 3 | 资金余额 |
| 4 | 浮动盈亏 |
| 6 | 动态权益 / 资产值 |
| 19 | 当前可用资金 |
| 28 | 占用保证金(期货)/ 证券市值 |
| 29 | 可取资金 |
| 30 | 平仓盈亏 |
| 31 | 手续费 |
IF NOT(ISLASTBAR) THEN EXIT; { 账户函数只在最新 K 线有效 }
可用 := TACCOUNT(19); { 当前可用资金 }
权益 := TACCOUNT(6); { 动态权益 }
下单前先查可用资金,按比例计算下单手数,避免资金不足导致拒单。例如用可用资金的 50% 开仓。
二、多账户管理
一个金字塔实例可以同时登录多个账户(期货多账户、或期货 + 股票),用以下函数遍历:
| 函数 | 含义 |
|---|---|
TACCOUNTCOUNT | 登录的账户总数(含无效) |
TACCOUNTINDEX(N) | 第 N 个账户的 ID |
TACCOUNT2(属性, 账号) | 查指定账户的某项属性 |
下单函数也支持指定账户:
TBUY(条件, 1, MKT, 0, 0, '账号A'); { 第 6 个参数指定账号 }
三、持仓查询
后台持仓查询在交易控制函数里介绍了 THOLDING/TBUYHOLDING/TSELLHOLDING,这里补充按账户和品种精确查询的版本:
| 函数 | 含义 |
|---|---|
TBUYHOLDINGEX(账号, 代码, N) | 指定账户品种的多头持仓(N: 0 今可用/1 总可用/2 含未成交) |
TSELLHOLDINGEX(账号, 代码, N) | 指定账户品种的空头持仓 |
THOLDCOUNT(账号) | 该账户持有的品种数量 |
THOLDINDEXLABEL(序号, 账号) | 持仓列表中第 N 个品种的代码 |
一个实用技巧——一键平掉账户所有持仓,遍历持仓列表逐个平仓:
IF NOT(ISLASTBAR) THEN EXIT;
HC := THOLDCOUNT('');
FOR I = 1 TO HC DO BEGIN
代码 := THOLDINDEXLABEL(I, '');
多仓 := TBUYHOLDINGEX('', 代码, 1);
TSELL(多仓>0, 多仓, MKT, 0, 0, '', 代码), ALLOWREPEAT;
END
四、股票池
股票池是金字塔里的「品种筛选与管理」机制——一个池子包含多个状态池,符合条件(用公式定义)的品种自动进入对应状态。程序化策略可以读取股票池来决定交易哪些品种:
| 函数 | 含义 |
|---|---|
TSTOCKPOOLCOUNT(池, 状态) | 某状态池里的品种数量 |
TSTOCKPOOLINXLABEL(池, 状态, N) | 池中第 N 个品种的代码 |
TSTOCKPOOLBARS(池, 状态) | 当前品种进入该池子几根 K 线了 |
FIRESTOCKPOOL(池, 状态) | 强制触发某状态池 |
典型用法——遍历股票池逐个交易:
FOR I = 1 TO TSTOCKPOOLCOUNT('我的池', 1) DO BEGIN
代码 := TSTOCKPOOLINXLABEL('我的池', 1, I);
{ 对每个品种执行策略逻辑 }
END
股票池适合「多品种轮动」「板块择股」类策略——先用公式把符合条件的品种选进池子,再用后台策略批量执行。
五、模组管理
模组是金字塔的子账户管理单元,适合把大账户拆成多个独立子策略各自管理:
| 函数 | 含义 |
|---|---|
GROUPCOUNT | 配置的模组总数 |
GROUPINDEX(N) | 第 N 个模组的 ID |
GROUPINFO(2, ID) | 模组状态(0 未登录 / 1 登录 / 2 断开) |
GROUPHOLDCOUNT(ID) | 该模组持有的品种数 |
GROUPHOLDING(ID, 代码, N, M) | 模组持仓(N: 0 买/1 卖/2 净,M: 1 总/2 今可用) |
小结
TACCOUNT查资金与权益,下单前先确认可用资金。- 多账户用
TACCOUNTCOUNT/TACCOUNTINDEX遍历,下单函数可指定账号。 THOLDCOUNT + THOLDINDEXLABEL遍历持仓实现一键全平。- 股票池做多品种轮动,模组做子账户隔离。
实盘管理之外,还有一类进阶函数——除权与期权,最后一章见 除权与期权函数。