自从2015年熊市开启以来,股票端的程序化开发者一直都很憋屈,过去无论是个人投资还是小型的机构投资者都能很好的利用各种的股票接口进行开发和交易,但股票端这一次的背锅却成了看不到希望的无穷煎熬,时间一眨眼过去快四年了,接口一直不松绑,利用接口成为一件噩梦般的事情。
之前我利用CTP接口开发了一个基于期货的T+0交易工具,当时由于缺乏股票端的接口,所以只能将就着用在期货端的交易咯,这一次我终于把这个工具覆盖到股票端了,利用通达信的接口就能完成。。。
先来逐个接口的介绍吧:
StringBuilder ErrInfo = new StringBuilder(256);
StringBuilder Result = new StringBuilder(1024 * 1024);
先定义两个StringBuilder类型的对象用于存储各种回调数据
1)登录接口
private int clientID;
/// <summary>
/// 登录交易账户
/// </summary>
/// <param name="loginData"></param>
public void Login(LoginApiInforDataAny<EnumTradeApiTypeAny> loginData)
{
//Logon(IP,端口,版本号,营业部ID->填0,登录账号(客户号),交易账户(资金账户),交易密码,通讯密码,ErrInfo)
var IP_port = loginData.IPAddress.Split(new char[] { ':' });
var IP = IP_port[0];
short Port = Convert.ToInt16(IP_port[1]);
clientID = Logon(IP, Port, "6.0", 0, loginData.Topology, loginData.UserID, loginData.PassWrod, string.Empty, ErrInfo);
if (clientID == -1)
OnLog?.Invoke($"{"通达信交易账户登录失败:" + ErrInfo.ToString() + ",请检查原因!"}");
else
OnLog?.Invoke($"{"通达信交易账户登录成功!"}");
TradeApiConnected?.Invoke(this);
}
PS:Logon接口是用于登录通达信->券商交易账户的,大概的参数字段是:IP,端口,版本号,营业部ID->填0,登录账号(客户号),交易账户(资金账户),交易密码,通讯密码,ErrInfo
我在代码这里已经写得很通俗易懂了,我就不详细讲这个接口咯。
2)查询账户各种数据的接口(这里以查询账户资金信息为例)
public int ReqQryTradingAccount