
用TcApi.dll下单时交易参数该怎么设
很多人第一次拿到TcApi.dll,心里想的是“只要能连上柜台就能下单”。真到写代码的时候,第一个卡住的地方往往是参数怎么填。股票和期货的参数表长得不一样,填错一个字段就可能报废单,或者更糟——以离谱的价格成交。这里把股票和期货分开说清楚。
股票交易参数怎么设
股票委托的核心参数就几个:证券代码、买卖方向、价格、数量、委托类型。

证券代码要带市场后缀。沪市用.SH,深市用.SZ。北交所的股票也用.SZ,但代码前加8或4。别只写六位数字,TCAPI分不清你在哪个市场。
买卖方向是枚举值。买用0,卖用1。有些接口用字符’B’和’S’,要看TcApi.dll的头文件定义。方向反了,你想买结果卖了,账户里没券就是废单,有券就直接融券做空,后果自己承担。
价格字段是浮点数,但A股报价最小变动单位是0.01元。你填10.005,柜台会拒单。科创板有价格笼子,连续竞价阶段买入价不能高于卖一价的102%,卖出价不能低于买一价的98%。超出笼子的单子直接进废单队列,不会成交。
数量单位是股。买入必须是100股的整数倍,卖出可以卖零股,但零股必须一次性卖出。填150股买入,营业部直接退回。
委托类型分限价和市价。限价单用限价,市价单用市价。市价单在A股有两种:最优五档即时成交剩余撤销、最优五档即时成交剩余转限价。TcApi.dll里通常用枚举区分,别把市价单填成限价单的价格字段,否则会以你填的价格挂单,可能永远不成交。
期货交易参数怎么设
期货比股票多几个维度的参数,最要命的是开平标志和投机套保标志。
开平标志决定这笔单子是开仓还是平仓。开仓用0,平仓用1。上期所有平今和平昨的区别,平今用3,平昨用4。你平今仓填了平昨,柜台直接拒单。中金所的股指期货没有平今平昨区分,统一用平仓标志就行。
投机套保标志是区分投机单和套保单。投机用0,套保用1,套利用2。散户做投机就填0。填成套保,交易所会查你的套保额度,没额度就是废单。
合约月份是期货特有的。每个品种有多个交割月合约,代码像rb2410、i2501。你不能只写rb,必须写清楚具体合约。主力合约换月的时候,程序要自动切换,否则你还在交易即将交割的合约,流动性差,滑点大。
报价单位也要注意。螺纹钢报价是元/吨,一跳1元。你填3500.5,柜台拒单。不同品种的最小变动价位不同,黄金0.02元/克,原油0.1元/桶。程序里要维护每个品种的报价精度表。
保证金参数不是委托参数,但你要心里有数。交易所保证金比例加期货公司上浮,才是实际占用。你开一手螺纹钢,按10%保证金算,3500×10×10%等于3500元。账户里只有3000元,下单直接报“资金不足”。
参数设置最容易踩的坑
第一个坑是价格精度。股票填三位小数,期货填错最小变动价位。解决办法是每个品种维护一个价格精度常量,下单前用round函数规整。
第二个坑是买卖方向与开平标志的组合。股票只有买卖,期货有买开、卖开、买平、卖平。买开是看涨,卖开是看跌。买平是平空头,卖平是平多头。方向搞反,本来想平仓结果开了反向仓,保证金立刻翻倍。
第三个坑是数量单位。股票是股,期货是手。你填股票数量100,期货也填100,那就是100手螺纹钢,保证金占用几百万。程序里要把股票和期货的下单函数分开写,参数校验分别做。
第四个坑是委托时间。集合竞价阶段只能挂限价单,不能挂市价单。连续竞价阶段才能用市价。TcApi.dll不会帮你判断时间,你自己要在策略层做过滤。
参数校验清单
下单前把下面几项过一遍:
代码带市场后缀
买卖方向枚举正确
价格符合最小变动单位和价格笼子
数量符合整手或整百要求
期货开平标志匹配持仓方向
投机套保标志为0
账户资金足够覆盖保证金和手续费
把这张清单写成函数,每次下单前调用。TcApi.dll只负责把参数传给柜台,参数对不对是你自己的事。用模拟账户跑通所有品种的下单流程,再上实盘。实盘第一笔用最小数量,确认成交回报和持仓变化都正常,再放大仓位。