通达信自动交易函数

股票自动交易软件助手提供了Order.dll , 扩展了大智慧,飞狐,通达信等公式语言的函数。利用这些函数,可以在公式里精细控制下单逻辑和交易策略。比如读取持仓数据,可用资金,指定下单数量等等。

需要注意的是,一般情况下,并不需要在公式里调用这些函数就能实现股票程序化的交易策略。对于一般用户,或者对大部分常用指标来说,使用公式预警条件单更加方便,简单,而不需要在公式里调用下单函数。只需要建立对应的助手预警条件单,并在大智慧,通达信等软件中设置好预警指标即可。只有在使用股票池自动交易或者图表交易纯公式下单的情况下才需要这些函数。

要使用股票自动交易软件助手提供的交易函数,先把 order.dll 复制到 通达信目录 T0002\dlls 下面,然后还要绑定DLL,查看如何绑定DLL。通达信调用过Order.dll后,助手会在通达信目录下生成 “助手日志” 目录,里面有调用函数的日志信息,可以查看这个日志信息来确定调用是否正确,条件是否成立等等。一般条件成立了但是助手没反应,可以看这个日志来找出原因。如果这日志的显示是正常的,你可以进一步去助手的安装目录里查看助手日志进一步确定原因。

重要提示

股票自动交易软件助手提供的有些函数的参数,是 条件和变量的乘积,如 买入 函数的最后个参数就是 条件*数量。表示在条件为1(即成立的情况下),买入对应数量的股票。比如 条件*1000, 条件成立的情况下,条件就是1,乘以1000结果就是1000股,助手就会买入1000股,在条件不成立的情况下条件的数值就会等于0,乘以1000结果也是0,代表条件不成立,因此助手不会买入。注意:条件只能是逻辑判断值,1或者0,不能是其他运算的结果,例如 条件:=C >0;不要条件:=C;或条件:=MA(C,5)这样,前者是逻辑判断值,后面是数值计算。

重要提示2

通达信的调用外部dll函数的方式比较特别,首先需要绑定dll,绑定到第几号dll,函数调用的函数名就是 TDXDLL数字 ,我们一般绑定助手Order.dll为第一个dll,因此调用助手提供的函数的名字都是 TDXDLL1,表示调用第一个绑定的dll,也就是Order.dll。此外每个调用都必须指定调用的是dll里的第几个函数,Order.dll提供的买入函数是第一个函数,因此调用买入函数就像这样:买入股票:=TDXDLL1(1, STR2CON(CODE), 1, 100);其中第一个参数1,表示第一个函数就是买入函数。同理,卖出股票函数是第二个函数,因此调用卖出函数就像这样:卖出股票:TDXDLL1(2, STR2CON(CODE), 2, 100);其他函数余此类推。

另外,通达信的函数最多只能有4个参数,并且参数不能省略,而有些助手函数不需要那么多参数的,这时候只要填0就行。并且通达信的参数只能传递数值,因此股票要传递股票代码的时候调用 STR2CON(CODE), 这样来传递。由于最多只能传递4个参数,因此不能像大智慧一样指定助手编号,如果要指定助手编号,需要调用 选择账户1:=TDXDLL1(7, 1, 0, 0); 这样来调用。大部分情况下可以忽略不管助手编号。只有在对不同的助手(对应的不同交易软件的交易账户)使用不同的下单数量时才需要用到。如果你从来没改过助手设置里的助手编号,所有助手都会执行下单动作,在这种情况下,即使开了多个助手,也不需理会这个参数。

助手函数列表
买入函数 TDXDLL1(1, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),买入指定数量的股票
卖出函数 TDXDLL1(2, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),卖出指定数量的股票
融资买入函数 TDXDLL1(19, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),买入指定数量的股票(仅适用纯公式)
卖券还款函数 TDXDLL1(20, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),卖出(卖券还款)指定数量的股票(仅适用纯公式)
融券卖出函数 TDXDLL1(21, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式)
买券还券函数 TDXDLL1(22, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),买入(买券还券)指定数量的股票(仅适用纯公式)
买入可转债函数 TDXDLL1(28, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),买入正股对应的可转债
卖出可转债函数 TDXDLL1(29, 股票代码, 公式编号,条件*数量)
条件成立时(即 条件:=1),卖出正股对应的可转债<
查询持仓数量 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票持仓数量,单位(股)
查询可卖数量 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票可卖数量,单位(股)
查询成本价 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的成本价
查询盈利金额 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的盈利金额(元)
查询盈利百分比 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的盈利百分比(%),盈利5.5%,返回5.5
查询持仓市值 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的持仓市值
下单天数 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的下单天数,即上次助手下单离现在的天数
持仓天数 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的持仓天数
上次买入价 TDXDLL1(3, 股票代码, 类型, 0)
查询当前股票的上次买入价
查询可撤买单 TDXDLL1(4, 股票代码,下单类型, 查询类型)
查询当前股票的可撤买单数量(股)
查询可撤买单时间 TDXDLL1(4, 股票代码,下单类型, 查询类型)
查询当前股票的可撤买单的时间离现在的秒数(秒)
查询可撤卖单 TDXDLL1(4, 股票代码,下单类型, 查询类型)
查询当前股票的可撤卖单数量(股)
查询可撤卖单时间 TDXDLL1(4, 股票代码,下单类型, 查询类型)
查询当前股票的可撤卖单的时间离现在的秒数(秒)
撤买单 TDXDLL1(6, 股票代码, 条件*类型)
条件成立时撤销当前股票的买入单
撤卖单 TDXDLL1(6, 股票代码, 条件*类型)
条件成立时撤销当前股票的卖出单
账户总资产 TDXDLL1(5, 类型)
查询当前账户的总资产(元)
账户可用资金 TDXDLL1(5, 类型)
查询当前账户的可用资金(元)
账户持仓市值 TDXDLL1(5, 类型)
查询当前账户的账户持仓总市值(元)
账户总盈利 TDXDLL1(5, 类型)
查询当前账户的账户总盈利(元)
持仓个数 TDXDLL1(5, 类型)
查询当前账户的持仓股票数量
可用保证金 TDXDLL1(5, 类型)
查询当前账户的可用保证金
担保比例 TDXDLL1(5, 类型)
查询当前账户的担保比例
融资额度 TDXDLL1(5, 类型)
查询当前账户的融资额度/div>
融券额度 TDXDLL1(5, 类型)
查询当前账户的融券额度
清仓 TDXDLL1(9, 股票代码, 条件*清仓类型)
条件成立时执行清仓操作
清半仓 TDXDLL1(9, 股票代码, 条件*清仓类型)
条件成立时执行清半仓操作
启动交易 TDXDLL1(12, 股票代码, 条件)
条件成立时启动助手自动交易,相当于按下启动按钮
停止交易 TDXDLL1(13, 股票代码, 条件)
条件成立时停止助手自动交易,相当于按下停止按钮
启用条件 TDXDLL1(10, 股票代码, 条件, 条件序号)
条件成立时启用当前股票的条件单或止损设置
禁止条件 TDXDLL1(11, 股票代码, 条件, 条件序号)
条件成立时禁用当前股票的条件单或止损设置或删除条件
刷新持仓 TDXDLL1(14, 股票代码, 条件)
条件成立时刷新持仓数据
设置买入价 TDXDLL1(15, 股票代码, 类型, 价格)
如果要指定买入价需在调用买入函数前调用
设置卖出价 TDXDLL1(15, 股票代码, 类型, 价格)
如果要指定卖出入价需在调用买入函数前调用
日志函数 TDXDLL1(16, 股票代码, 数值)
把数值写到当前日志文件里,方便调试
MsgBox函数 TDXDLL1(16, 股票代码, 数值)
把数值以消息框的形式弹出来,方便调试
指定助手编号和账户编号 TDXDLL1(7, 助手编号, 账号编号)
指定助手编号和账户编号
发送邮件,QQ信息 TDXDLL1(18, 股票代码, 发送方式, 条件*消息类型)
条件成立时(即 条件:=1),以指定的发送方式发送指定类型的消息
获取交易自定义数据 TDXDLL1(25, 股票代码, 类型, 公式号)
指定类型和公式号
设置交易自定义数据 TDXDLL1(24, 公式号+股票代码, 数值, 类型*条件, 公式号)
设置交易自定义数据
获取全局自定义数据 TDXDLL1(27, 公式号, 类型, 0)
指定类型和公式号
设置全局自定义数据 TDXDLL1(26, 公式号, 数值, 类型*条件 )
设置全局自定义数据
设置序列数据的日期 TDXDLL1(30, 周期+股票代码, 类型*条件, DATE)
设置序列数据的日期,此函数和下面的31,32函数要一起使用
设置序列数据的时间 TDXDLL1(31, 周期+股票代码, 类型*条件, TIME)
设置序列数据的时间,此函数和的30,32函数要一起使用
设置序列数据的数值 TDXDLL1(32, 周期+股票代码, 类型*条件, TIME)
设置序列数据的数值,此函数和的30,31函数要一起使用
准备要获取序列数据的时间 TDXDLL1(33, 周期+股票代码, 类型, TIME)
准备要获取序列数据的时间,此函数和的34函数要一起使用
获取序列数据的数值 TDXDLL1(34, 周期+股票代码, 类型, DATE)
获取序列数据的数值,如果是分钟级别周期,需要先调用33函数
问财函数 TDXDLL1(35, 问财编号)
查询当前股票是否符合问财选股条件
保存到自选股或板块 TDXDLL1(36, 股票代码, 条件,ID)
条件满足时保存股票到自选股或板块
从自选股或板块删除股票 TDXDLL1(37, 股票代码, 条件,ID)
条件满足时从自选股或板块删除股票
获取自选股或板块股票的数量 TDXDLL1(38, ID, 0, 0)
获取自选股或板块股票的数量
更多函数将完善      

函数说明

TDXDLL1(1, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),买入指定数量的股票

参数
1 1,第一个函数是买入函数,因此填1
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入

例子
 {上穿5日均线买入1000股}
 条件:Cross(C, MA(C,5));
 买入股票:=TDXDLL1(1, STR2CON(CODE), 1, 条件*1000);

TDXDLL1(2, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),卖出指定数量的股票

参数
2 2,第二个函数是卖出函数,因此填2
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出

例子
 {下穿5日均线卖出}
 条件:Cross( MA(C,5), C);
 卖出股票:=TDXDLL1(2, STR2CON(CODE), 2, 条件*1);

TDXDLL1(19, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),融资买入指定数量的股票(仅适用纯公式)

参数
19 19,第十九个函数是融资买入函数,因此填19
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入

例子
 {上穿5日均线买入1000股}
 条件:Cross(C, MA(C,5));
 买入股票:=TDXDLL1(19, STR2CON(CODE), 1, 条件*1000);

TDXDLL1(20, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),卖券还款卖出指定数量的股票(仅适用纯公式)

参数
20 20,第二十个函数是卖券还款函数,因此填20
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出

例子
 {下穿5日均线卖出}
 条件:Cross( MA(C,5), C);
 卖出股票:=TDXDLL1(20, STR2CON(CODE), 2, 条件*1);

TDXDLL1(21, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式)

参数
21 21,第二十一个函数是卖出函数,因此填21
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出

例子
 {下穿5日均线卖出}
 条件:Cross( MA(C,5), C);
 卖出股票:=TDXDLL1(21, STR2CON(CODE), 2, 条件*1);

TDXDLL1(22, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),买券还券指定数量的股票(仅适用纯公式)

参数
22 22,第二十一二个函数是买券还券函数,因此填22
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出

例子
 {下穿5日均线买
 条件:Cross( MA(C,5), C);
 买股票:=TDXDLL1(22, STR2CON(CODE), 2, 条件*1);

TDXDLL1(28, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),买入正股对应的可转债/p>

例子
 {这个例子运行在正股中,如果正股金叉5日平均线,买入的是可转债}
 条件:Cross(C, MA(C,5));
 买入股票:=TDXDLL1(28, STR2CON(CODE), 1, 条件*10);

TDXDLL1(29, 股票代码, 公式编号,条件*数量)

条件成立时(即 条件:=1),卖出正股对应的可转债

例子
 {这个例子运行在正股中,如果正股死叉5日平均线,卖出的是可转债}
 条件:Cross( MA(C,5), C);
 卖出股票:=TDXDLL1(29, STR2CON(CODE), 2, 条件*1);

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的持仓数量(股)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 0,表示查询持仓数量,以股为单位
0 最后一个参数没用到,填0就行

例子
 个股持仓股数: TDXDLL1(3, STR2CON(CODE), 0, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的可卖数量(股)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 1,表示查询可卖数量,以股为单位
0 最后一个参数没用到,填0就行

例子
 个股可卖股数: TDXDLL1(3, STR2CON(CODE), 1, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的成本价(元)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 2,表示查询查询当前股票的成本价
0 最后一个参数没用到,填0就行

例子
 成本价: TDXDLL1(3, STR2CON(CODE), 2, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的盈利金额(元)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 3,表示查询当前股票的盈利金额
0 最后一个参数没用到,填0就行

例子
 盈利金额: TDXDLL1(3, STR2CON(CODE), 3, 0) 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的盈利百分比(%)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 4,表示查询当前股票的盈利百分比(%),盈利5.5%,返回5.5
0 最后一个参数没用到,填0就行

例子
 盈利百分比: TDXDLL1(3, STR2CON(CODE), 4, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的持仓市值(元)

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 5,表示查询当前股票的持仓市值
0 最后一个参数没用到,填0就行

例子
 持仓市值: TDXDLL1(3, STR2CON(CODE), 5, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的下单天数

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 6,表示查询当前股票的下单天数,只对助手下的单有效,并且依赖下单记录
0 最后一个参数没用到,填0就行

例子
 下单天数: TDXDLL1(3, STR2CON(CODE), 6, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的持仓天数

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 7,查询当前股票的持仓天数,只对助手下的单有效(如果设置了下单时间都有效)
0 最后一个参数没用到,填0就行

例子
 持仓天数: TDXDLL1(3, STR2CON(CODE), 7, 0); 

TDXDLL1(3, 股票代码, 类型, 0)

查询当前股票的上次买入价

参数
3 3,第三个函数是查询持仓信息函数,因此填3
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 8,查询当前股票的上次买入价,只对助手下的单有效
0 最后一个参数没用到,填0就行

例子
 上次买入价: TDXDLL1(3, STR2CON(CODE), 8, 0);

TDXDLL1(4, 股票代码,下单类型, 查询类型)

查询当前股票的可撤买单数量(股)

参数
4 4,第四个函数是查询持仓撤单函数,因此填4
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间

例子
 可撤买单数量: TDXDLL1(4, STR2CON(CODE), 0, 0); 

TDXDLL1(4, 股票代码,下单类型, 查询类型)

查询当前股票的可撤买单距现在的时间(秒)

参数
4 4,第四个函数是查询持仓撤单函数,因此填4
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间

例子
 买单已过秒数: TDXDLL1(4, STR2CON(CODE), 0, 1); 

TDXDLL1(4, 股票代码,下单类型, 查询类型)

查询当前股票的可撤卖单数量(股)

参数
4 4,第四个函数是查询持仓撤单函数,因此填4
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间

例子
 可撤卖单数量: TDXDLL1(4, STR2CON(CODE), 1, 0); 

TDXDLL1(4, 股票代码,下单类型, 查询类型)

查询当前股票的可撤卖单距现在的时间(秒)

参数
4 4,第四个函数是查询持仓撤单函数,因此填4
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间

例子
 卖单已过秒数: TDXDLL1(4, STR2CON(CODE), 1, 1); 

TDXDLL1(6, 股票代码, 条件*类型, 0)

条件成立时撤销当前股票的买单

参数
6 6,第六个函数是撤单函数,因此填6
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 1,撤买单;类型:2,撤卖单
0 最后一个参数没用到,填0就行

例子
 买单已过秒数:= TDXDLL1(4, STR2CON(CODE), 0, 1);
 条件:买单已过秒数 > 60;
 撤买单:=TDXDLL1(6, STR2CON(CODE), 条件*1, 0);

TDXDLL1(6, 股票代码, 条件*类型, 0)

条件成立时撤销当前股票的卖单

参数
6 6,第六个函数是撤单函数,因此填6
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 1,撤买单;类型:2,撤卖单
0 最后一个参数没用到,填0就行

例子
 卖单已过秒数: TDXDLL1(4, STR2CON(CODE), 1, 1);
 条件:卖单已过秒数 > 60;
 撤卖单 := TDXDLL1(6, STR2CON(CODE), 条件*2, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的总资产

参数
5 5,第五个函数是查询账号信息,因此填5
类型 0, 查询当前账号的总资产(元)
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 账户总资产 : TDXDLL1(5, 0, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的可用资金

参数
5 5,第五个函数是查询账号信息,因此填5
类型 1, 查询当前账号的可用资金(元)
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 账户可用资金 : TDXDLL1(5, 1, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的总持仓市值

参数
5 5,第五个函数是查询账号信息,因此填5
类型 2, 查询当前账号的总持仓市值(元)
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 账户总持仓市值 : TDXDLL1(5, 2, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的总盈利金额

参数
5 5,第五个函数是查询账号信息,因此填5
类型 3, 查询当前账号的总盈利金额(元)
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 账户总盈利金额 : TDXDLL1(5, 3, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的持仓个数

参数
5 5,第五个函数是查询账号信息,因此填5
类型 4, 查询当前账号的持仓个数
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 持仓个数 : TDXDLL1(5, 4, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的可用保证金

参数
5 5,第五个函数是查询账号信息,因此填5
类型 5, 查询当前账号的可用保证金
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 保证金 : TDXDLL1(5, 5, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的担保比例

参数
5 5,第五个函数是查询账号信息,因此填5
类型 6, 查询当前账号的担保比例
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 担保比例 : TDXDLL1(5, 6, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的融资额度

参数
5 5,第五个函数是查询账号信息,因此填5
类型 7, 查询当前账号的融资额度
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 融资额度 : TDXDLL1(5, 7, 0, 0);

TDXDLL1(5, 类型, 0, 0)

查询当前账号的融券额度

参数
5 5,第五个函数是查询账号信息,因此填5
类型 8, 查询当前账号的融券额度/td>
0 这个参数没用到,填0就行
0 这个参数没用到,填0就行

例子
 融券额度 : TDXDLL1(5, 8, 0, 0);

TDXDLL1(9, 股票代码, 条件*清仓类型)

条件成立时执行清仓操作

参数
9 9,第九个函数是清仓函数,因此填9
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 类型:1,全部清仓;类型:2,清半仓
0 最后一个参数没用到,填0就行

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清仓}
 条件:Cross(MA(C,5), C);
 清仓:= TDXDLL1(9, STR2CON(CODE), 条件*1, 0);

TDXDLL1(9, 股票代码, 条件*清仓类型)

条件成立时执行半清仓操作

参数
9 9,第九个函数是撤单函数,因此填9
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 类型:1,全部清仓;类型:2,清半仓
0 最后一个参数没用到,填0就行

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清半仓}
 条件:Cross(MA(C,5), C);
 清半仓:= TDXDLL1(9, STR2CON(CODE), 条件*2, 0);

TDXDLL1(12, 股票代码, 条件)

条件成立时启动助手自动交易,相当于按下助手开始按钮

参数
12 12,第十二个函数是启动自动交易函数,因此填12
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
条件 条件变量
0 最后一个参数没用到,填0就行

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数上穿5日均线开启自动交易}
 条件:Cross(C, MA(C,5));
 启动交易:= TDXDLL1(12, STR2CON(CODE), 条件, 0);

TDXDLL1(13, 股票代码, 条件)

条件成立时停止助手自动交易,相当于按下助手停止按钮

参数
13 13,第十三个函数是停止自动交易函数,因此填13
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
条件 条件变量
0 最后一个参数没用到,填0就行

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数下穿5日均线停止自动交易}
 条件:Cross( MA(C,5), C);
 停止交易:= TDXDLL1(13, STR2CON(CODE), 条件, 0);

TDXDLL1(10, 股票代码, 条件, 条件序号)

条件成立时让当前股票的止损止盈或条件单生效

参数
10 10,第十个函数是条件生效函数,因此填10
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
条件 条件变量
条件序号 可选,指定条件序号(可在助手右键菜单查看)

例子
 {当前股票价格在5日均线之上时让该股票的止损止盈或条件单生效}
 条件:C > MA(C,5);
 启用条件:= TDXDLL1(10, STR2CON(CODE), 条件, 0);

TDXDLL1(11, 股票代码, 条件*类型, 条件序号)

条件成立时禁止当前股票的止损止盈或条件单执行或删除条件

参数
11 11,第十一个函数是禁止条件单生效函数,因此填11
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
条件*类型 类型:1(禁止),2(删除),条件成立时禁止当前股票的止损止盈或条件单执行或删除条件
条件序号 可选,指定条件序号(可在助手右键菜单查看)

例子
 {当前股票价格在5日均线之下时禁止当前股票的止损止盈或条件单执行}
 条件:C < MA(C,5);
 禁止条件:= TDXDLL1(11, STR2CON(CODE), 条件, 0);

TDXDLL1(14, 股票代码, 条件)

条件成立时刷新持仓数据

参数
14 14,第十四个函数刷新持仓函数,因此填14
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
条件 条件成立时刷新持仓数据
0 这个参数没用到,填0

例子
 
 条件:Cross(c, MA(c,5));
 刷新持仓:=TDXDLL1(14, STR2CON(CODE), 条件, 0);

TDXDLL1(15, 股票代码, 类型, 价格)

设置买入价格

参数
15 15,第十五个函数是设置买入或卖出价格,因此填15
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 类型:0设置买入价格,类型:1设置卖出价格
价格 买入价格

例子
 {设定卖5价买入}
 设定买入价:=TDXDLL1(15, STR2CON(CODE) , 0, DYNAINFO(21)+0.04);

TDXDLL1(15, 股票代码, 类型, 价格)

设置卖出价格

参数
15 15,第十五个函数是设置买入或卖出价格,因此填15
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 类型:0设置买入价格,类型:1设置卖出价格
价格 卖出价格

例子
 {设定买5价卖出}
 设定卖出价:=TDXDLL1(15, STR2CON(CODE) , 1, DYNAINFO(20)-0.04);

TDXDLL1(16, 股票代码, 数值)

把数值写到当前日志文件里,方便调试

参数
16 16,第十六个函数是写日志信息,因此填16
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
数值 把数值写到当前日志文件里,方便调试
0 这个参数没用到,填0就行

例子
 {此例子把当前最新周期的收盘价写到日志文件,此文件位于大智慧或通达信等软件的助手日志下面}
 写日志:=TDXDLL1(16, STR2CON(CODE), C, 0);

TDXDLL1(17, 股票代码, 数值)

把数值以消息框的形式弹出来显示,方便调试

参数
17 17,第十七个函数是写日志信息,因此填17
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
数值 把数值以消息框的形式弹出来显示,方便调试
0 这个参数没用到,填0就行

例子
 {此例子把当前最新周期的收盘价弹出消息框}
 消息框:=TDXDLL1(17, STR2CON(CODE), C, 0);

TDXDLL1(7, 助手编号, 账号编号)

指定助手编号

参数
7 7,第七个函数是写指定助手编号,因此填7
助手编号 助手编号
账号编号 账号编号按助手条件单里的下拉列表显示顺序为准。这个参数只对尊贵版有用,其他没用到,填0就行
0 这个参数没用到,填0就行

例子
 {指定(切换)助手编号,后面所有语句都是针对这个编号为1的助手起作用}
 选择账户1:=TDXDLL1(7, 1, 0, 0);}

尊贵版选择账户例子
 {指定(切换)账号编号,后面所有语句都是针对这个编号为1的账号起作用,账号编号以助手条件单里的排序为准}
 选择账户1:=TDXDLL1(7, 0, 1, 0);}

TDXDLL1(18, 股票代码, 发送方式, 条件*消息类型)

条件成立时发送邮件,QQ,微信信息

参数
18 18,第十八个函数是写日志信息,因此填18
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
发送方式 0,发送邮件;1,发送QQ消息;2,发送微信
条件*消息类型 条件成立时(即 条件:=1),发送指定消息类型的消息
消息类型是自己定的,也可以在行情软件当前目录用Order.ini文件配置消息类型对应的文字

例子
 {价格大于10元发送类型为1的邮件,消息类型对应的文字可以在Order.ini配置}
 条件:C > 10;
 发邮件:=TDXDLL1(18, STR2CON(CODE), 0, 条件*1);

TDXDLL1(24, 助手号+公式号+股票代码, 类型*条件, 数值)

条件成立时设置交易自定义数据

参数
24 24,第24个函数是设置交易自定义数据,因此填24
助手号+公式号+股票代码, 助手号+公式号+股票代码,一般写成 STR2CON(STRCAT('1',CODE))
由于通达信参数有限,公式号和助手号需要和code连接在一起传给函数
其中'1’替换成需要的公式号
注意通达信公式号不能大于10
助手号不能大于6
如果只有一个助手(助手号0),写成 STR2CON(STRCAT('1',CODE))表示 ‘1' 就是公式号1
如果还有一个助手(助手号1),写成 STR2CON(STRCAT('11',CODE))第一个‘1'助手号1,第二个‘1' 就是公式号1
类型*条件 条件成立时(即 条件:=1),设置指定类型的数据
类型为用户自定义,可以大于99的任意数字
如果成功,函数返回1,否则为0
数值 要保存的数值

例子
 
{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
条件:= C > 10;
SET_OK: TDXDLL1(24, STR2CON(STRCAT('1',CODE)), 100*条件, C);{写入}
GET: TDXDLL1(25, STR2CON(CODE), 100, 1);{读取};

TDXDLL1(25, 股票代码, 类型, 助手号+公式号)

获取交易自定义数据

参数
25 25,第25个函数是获取交易自定义数据,因此填25
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
类型 0-99为系统(助手内部)定义的数据;
0,1,2,3,4分别为上次买入时间(格式和大智慧通达信的Date函数相同)
天数,秒数,价格,数量
5,6,7,8,9分别为上次卖出时间,天数,秒数,价格,数量
助手号+公式号 个位数字表示公式号,注意通达信公式号不能大于10
十位数的数值表示助手号不能大于6
如果只有一个助手(助手号0),写成 1 就是公式号1
如果还有一个助手(助手号1),写成 11 第一个1 助手号1,第二个1是公式号

例子
 
{获取助手系统内置的交易数据,类型<100为助手内置的类型数据如上次买入时间等,
这些数据不需要设置就能获取}

上次买入时间: TDXDLL1(25, STR2CON(CODE), 0, 1);
上次买入天数: TDXDLL1(25, STR2CON(CODE), 1, 1);
上次买入秒数: TDXDLL1(25, STR2CON(CODE), 2, 1);
上次买入价格: TDXDLL1(25, STR2CON(CODE), 3, 1);
上次买入数量: TDXDLL1(25, STR2CON(CODE), 4, 1);

上次卖出时间: TDXDLL1(25, STR2CON(CODE), 5, 1);
上次卖出天数: TDXDLL1(25, STR2CON(CODE), 6, 1);
上次卖出秒数: TDXDLL1(25, STR2CON(CODE), 7, 1);
上次卖出价格: TDXDLL1(25, STR2CON(CODE), 8, 1);
上次卖出数量: TDXDLL1(25, STR2CON(CODE), 9, 1);

TDXDLL1(26, 助手号+公式号, 类型*条件, 数值)

条件成立时设置交易自定义数据

参数
26 26,第26个函数是设置交易自定义数据,因此填26
助手号+公式号 个位数字表示公式号,注意通达信公式号不能大于10
十位数的数值表示助手号不能大于6
如果只有一个助手(助手号0),写成 1 就是公式号1
如果还有一个助手(助手号1),写成 11 第一个1 助手号1,第二个1是公式号
类型*条件 条件成立时(即 条件:=1),设置指定类型的数据
类型为用户自定义,可以大于99的任意数字
如果成功,函数返回1,否则为0
数值 要保存的数值

例子
 
{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
条件:= C > 10;
Set_全局: TDXDLL1(26, 1, 100*条件, C);{写入}
Get_全局: TDXDLL1(27, 1, 100, 0);{读取}

TDXDLL1(27, 助手号+公式号, 类型, 0)

获取全局自定义数据

参数
27 27,第27个函数是获取全局自定义数据,因此填27
助手号+公式号 个位数字表示公式号,注意通达信公式号不能大于10
十位数的数值表示助手号不能大于6
如果只有一个助手(助手号0),写成 1 就是公式号1
如果还有一个助手(助手号1),写成 11 第一个1 助手号1,第二个1是公式号
类型 大于99的数
0 固定填0

例子
 
{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
条件:= C > 10;
Set_全局: TDXDLL1(26, 1, 100*条件, C);{写入}
Get_全局: TDXDLL1(27, 1, 100, 0);{读取}

TDXDLL1(30, 周期+股票代码, 类型*条件, DATE)

设置序列数据的日期

参数
30 30,第30个函数是序列数据的日期,因此填30
周期+股票代码 把周期和股票代码连接起来并转成浮点传递.
通常写成 STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)) 就可以了
类型*条件 条件成立时设置序列数据的日期,类型需>=10000代表是时间序列类型的
DATE 当前周期的日期,固定写 DATE
注意: 此函数和31,32函数一起使用,记录时间序列数据

记录集合竞价成交量,请在日线周期运行
 
{记录集合竞价成交量,请在日线周期运行}
是竞价时间: MACHINETIME  > 92500 AND MACHINETIME < 93000 ;
SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DATE);{写入日期}
{SET_TIME:= TDXDLL1(31, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, TIME);}{写入时间,日线周期可不调用}
SET_VALUE:= TDXDLL1(32, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DYNAINFO(8));{写入数值};

TDXDLL1(31, 周期+股票代码, 类型*条件, TIME)

设置序列数据的时间

参数
31 31,第31个函数是序列数据的时间,因此填31
周期+股票代码 把周期和股票代码连接起来并转成浮点传递.
通常写成 STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)) 就可以了
类型*条件 条件成立时设置序列数据的日期,类型需>=10000代表是时间序列类型的
DATE 当前周期的时间,固定写 TIME
注意: 此函数和30,32函数一起使用,记录时间序列数据

记录集合竞价成交量,请在日线周期运行
 
{记录集合竞价成交量,请在日线周期运行}
是竞价时间: MACHINETIME  > 92500 AND MACHINETIME < 93000 ;
SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DATE);{写入日期}
{SET_TIME:= TDXDLL1(31, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, TIME);}{写入时间,日线周期可不调用}
SET_VALUE:= TDXDLL1(32, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DYNAINFO(8));{写入数值};

TDXDLL1(32, 周期+股票代码, 类型*条件, 数值)

设置序列数据的数值

参数
32 32,第32个函数是序列数据的时间,因此填32
周期+股票代码 把周期和股票代码连接起来并转成浮点传递.
通常写成 STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)) 就可以了
类型*条件 条件成立时设置序列数据的数值,类型需>=10000代表是时间序列类型的
数值 要记录的数值
注意: 此函数和30,31函数一起使用,记录时间序列数据

记录集合竞价成交量,请在日线周期运行
 
{记录集合竞价成交量,请在日线周期运行}
是竞价时间: MACHINETIME  > 92500 AND MACHINETIME < 93000 ;
SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DATE);{写入日期}
{SET_TIME:= TDXDLL1(31, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, TIME);}{写入时间,日线周期可不调用}
SET_VALUE:= TDXDLL1(32, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DYNAINFO(8));{写入数值};

TDXDLL1(33, 周期+股票代码, 类型, TIME)

准备要获取序列数据的时间

参数
33 33,第33个函数是准备要获取序列数据的时间,因此填33
周期+股票代码 把周期和股票代码连接起来并转成浮点传递.
通常写成 STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)) 就可以了
类型 类型需>=10000代表是时间序列类型的
TIME 固定写 TIME
注意: 此函数在分钟级别周期和34函数一起使用,获取时间序列数据
在分钟级别周期,必须先调用这个函数再调用34函数
日线周期不需调用

例子
 
{记录成交量,并获取记录的值}
条件:= C > 0;
SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, DATE);{写入日期}
SET_TIME:= TDXDLL1(31, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, TIME);{写入时间}
SET_VALUE:= TDXDLL1(32, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, V);{写入数值};

GET_TIME:= TDXDLL1(33, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001, TIME);
GET_VALUE: TDXDLL1(34, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001, DATE),VOLSTICK;

TDXDLL1(34, 周期+股票代码, 类型, DATE)

获取序列数据的数值

参数
34 34,第34个函数是获取序列数据的数值,因此填34
周期+股票代码 把周期和股票代码连接起来并转成浮点传递.
通常写成 STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)) 就可以了
类型 类型需>=10000代表是时间序列类型的
DATE 股定写 DATE 就可以了
注意: 此函数如果在分钟级别周期需先调用33函数
先准备要获取序列数据的时间

记录集合竞价成交量,请在日线周期运行
 
{例子}
条件:= C > 0;
SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, DATE);{写入日期}
SET_TIME:= TDXDLL1(31, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, TIME);{写入时间}
SET_VALUE:= TDXDLL1(32, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001*条件, V);{写入数值};

GET_TIME:= TDXDLL1(33, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001, TIME);
GET_VALUE: TDXDLL1(34, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10001, DATE),VOLSTICK;

TDXDLL1(35, 问财编号, 0, 0)

查询当前股票是否符合问财选股条件

参数
35 35,第35函数是查询当前股票是否符合问财选股条件,因此填35
股票代码 股票代码,一般写成 STR2CON(CODE) 就行
问财编号 每个问财编号对应一个问财选股条件即问财提问,查询条件
可以在助手建立不同的问财条件
你也可以点助手Fx按钮直接生成问财选股公式
0 最后一个参数没用到,填0就行

例子

{1代表的问财问题可以在助手里添加,这里1表示 10年roe>15%;pe<10;PB<2}
问财编号:=1;
问财:TDXDLL1(35, STR2CON(CODE), 问财编号, 0);

	 

TDXDLL1(36, 股票代码, 条件,ID)

保存到自选股或板块

参数
36 36,第36个函数是保存到自选股或板块,因此填36
股票代码 股票代码,一般写成 STR2CON(CODE) 就行了
条件 条件>0 成立时保存到自选股或板块
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式

例子:当最新价大于于10,增加到自选股
 
{保存自选股}
条件:=C > 10;
保存自选股:TDXDLL1(36, STR2CON(CODE), 条件, 0);
自选股数量:TDXDLL1(38, 0,0, 0);

TDXDLL1(37, 股票代码, 条件,ID)

从自选股或板块删除股票

参数
37 37,第37个函数是保存到自选股或板块,因此填37
股票代码 股票代码,一般写成 STR2CON(CODE) 就行了
条件 条件成立时(即 条件> 0),从自选股或板块删除股票
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式

例子:当最新价大于于10,删除自选股
 
{删除自选股}
条件:=C > 10;
删除自选股:TDXDLL1(37, STR2CON(CODE), 条件, 0);
自选股数量:TDXDLL1(38, 0,0, 0);

TDXDLL1(38, ID, 0, 0)

获取自选股或板块股票的数量

参数
38 38,第37个函数是获取自选股或板块股票的数量,因此填38
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式
0 此参数没用到, 填 0 就行了
0 此参数没用到, 填 0 就行了

例子:获取自选股数量
 
{获取自选股数量}
自选股数量:TDXDLL1(38, 0, 0, 0);