通达信是股票市场上最常用的客户端之一,几乎所有的券商都有通达信客户端,而很多朋友在盘中都想有一个自己的下单程序。下面从2方面探讨一下通过通达信自动化下单的办法:
一、利用模拟按键类程序
利用通达信的客户端界面本身,获取各个控件的类型和实例名,通过AUTOIT等脚本程序实现通达信客户端的自动化下单。此种方法简单方便,都是通过windows的库函数的调用来模拟消息,从而实现自动化下单。但是此方法只可用于代替人手工敲单而已,盘中需要人盯盘、同时将股票提前写入脚本或者配置文件中,时效性太差。
二、利用网络上流出的通达信接口进行二次编程开发。
先贴出可调用的方法
/// 打开通达信实例
/// </summary>
[DllImport("tdxtraderapi.dll", CharSet = CharSet.Ansi)]
public static extern void OpenTdx();
/// <summary>
/// 关闭通达信实例
/// </summary>
[DllImport("tdxtraderapi.dll", CharSet = CharSet.Ansi)]
public static extern void CloseTdx();
/// <summary>
/// 交易账户登录
/// </summary>
/// <param name="IP">券商交易服务器IP</param>
/// <param name="Port">券商交易服务器端口</param>
/// <param name="Version">设置通达信客户端的版本号:6.00或8.00</param>
/// <param name="YybId">营业部编码:国泰君安为7</param>
/// <param name="AccountNo">资金账号</param>
/// <param name="TradeAccount">交易帐号与资金帐号相同</param>
/// <param name="JyPassword">交易密码</param>
/// <param name="TxPassword">通讯密码为空</param>
/// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串</param>
/// <returns>客户端ID,失败时返回-1。正确时为从0开始按登陆次数叠加</returns>
[DllImport("tdxtraderapi.dll", CharSet = CharSet.Ansi)]
public static extern int Logon(string IP, short Port, string Version, short YybId, string AccountNo, string TradeAccount, string JyPassword, string TxPassword, StringBuilder ErrInfo);
/// <summary>
/// 交易账户注销
/// </summary>
/// <param name="ClientID">