当我们拿到一个股票交易下单接口以后,该如何测试它的实用性呢?我们来讲一下这个问题。
首先我们要搞清楚,我们对于这个股票交易下单接口的需求到底是什么,我们是要求它可以用呢?还是要确定它是否稳定呢?或者说是想看看能否到达自己理想中的交易频次呢?我们在进行测试之前,一定都对测试的内容确定好,接下来我们就可以进行测试了。
其实方法也简单,直接把接口对接到我们的交易软件上使用就可以了,把对应的文件放在相应的目录中,然后进行调用即可。完场后我们就可以知道接口到底能不能用了,至于稳定性方面的问题,股票交易下单接口都是自动下单的,我们放在那里,运行一段时间就知道了。而交易频率方面,如果我们想做高频的话,建议先了解清楚该接口是否可以实现操作,然后执行测试即可。
这里就有一款相对稳定而且可以进行高频交易的下单接口https://gitee.com/metatradeapi,而且操作比并不复杂,可以实现单账户和多账号自动下单,下面是c#语言的部分代码举例,大家可以了解了解。
1. // ============================== MetaTrade.cs ==========================
2. using System.Runtime.InteropServices;
3. using System.Text;
4.
5. namespace MetaTradeDemo;
6.
7. /// <summary>
8. /// MetaTrade 接口
9. /// </summary>
10. public static class MetaTrade
11. {
12. /* ---------------------------------------------------------------------------------
13. * 简单说明:
14. * 1.此文件为 .Net 与 MetaTrade 接口混合调用的接口文件
15. * 2.通常不需要修改此文件内容, 除非你非常了解 .Net 与 C++ 的调用规范
16. * 3.本接口在 .net6 下测试通过, .net6 为当前长期支持版本, 强烈建议您也使用这个版本
17. * ---------------------------------------------------------------------------------
18. */
19.
20. /// <summary>
21. /// 初始化接口
22. /// 调用此方法将会检验授权, 并返回授权的账户数量
23. /// 建议在程序启动时, 调用此方法, 以便再进行后续操作
24. /// </summary>
25. /// <returns>已授权的账户数</returns>
26. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
27. public static extern int Init();
28.
29. /// <summary>
30. /// 反初始化接口
31. /// 建议在程序退出出调用些方法
32. /// </summary>
33. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
34. public static extern void Deinit();
35.
36. /// <summary>
37. /// 登录账户
38. /// </summary>
39. /// <param name="ip">服务端 Ip 地址</param>
40. /// <param name="port">端口号</param>
41. /// <param name="version">版本号, 默认为空</param>
42. /// <param name="yybId">营业部, 默认为零</param>
43. /// <param name="account">账号, 同授权账号</param>
44. /// <param name="tradeAccount">资金账号</param>
45. /// <param name="jyPassword">交易密码</param>
46. /// <param name="txPassword">通讯密码</param>
47. /// <param name="errorInfo">错误信息,一般要分配 256 字节的空间,出错时为非空字符串</param>
48. /// <returns>客户端 Id</returns>
49. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
50. public static extern int Logon(string ip, short port, string version, short yybId, string acco
unt, string tradeAccount, string jyPassword, string txPassword, StringBuilder errorInfo);
51.
52. /// <summary>
53. /// 注销账户
54. /// </summary>
55. /// <param name="clientId">客户端 Id</param>
56. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
57. public static extern void Logoff(int clientId);
58.
59. #region + QueryData / SendOrder / CancelOrder / GetQuote / Repay
60.
61. /// <summary>
62. /// 查询各种交易数据
63. /// </summary>
64. /// <param name="clientId">客户端 Id</param>
65. /// <param name="category">信息种类:0 资金,1 股份,2 当日委托,3 当日成交,4 可撤单,5 股东代码,6 融资
余额,7 融券余额,8 可融证券</param>
66. /// <param name="result">返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。</param>
67. /// <param name="errorInfo">错误信息,一般要分配 256 字节的空间,出错时为非空字符串</param>
68. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
69. public static extern void QueryData(int clientId, int category, StringBuilder result, StringBu
ilder errorInfo);
70.
71. /// <summary>
72. /// 委托下单
73. /// </summary>
74. /// <param name="clientId">客户端 Id</param>
75. /// <param name="category">委托种类:0 买入,1 卖出,2 融资买入,3 融券卖出,4 买券还券,5 卖券还款,6
现券还券</param>
76. /// <param name="entrustType">委托类型:0 上海限价委托;深圳限价委托,1 深圳对方最优价格,2 深圳本方最优价格,3 深圳即时成交剩余撤销,4 上海五档即成剩撤;深圳五档即成剩撤,5 深圳全额成交或撤销,6 上海五档即成转限
价</param>
77. /// <param name="gddm">股东代码</param>
78. /// <param name="zqdm">证券代码</param>
79. /// <param name="price">委托价格</param>
80. /// <param name="quantity">委托数量</param>
81. /// <param name="result">返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。</param>
82. /// <param name="errorInfo">错误信息,一般要分配 256 字节的空间,出错时为非空字符串</param>
83. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
84. public static extern void SendOrder(int clientId, int category, int entrustType, string gddm,
string zqdm, float price, int quantity, StringBuilder result, StringBuilder errorInfo);
85.
86. /// <summary>
87. /// 委托撤单
88. /// </summary>
89. /// <param name="clientId">客户端 Id</param>
90. /// <param name="exchangeId">交易所 Id:A1 上海,A0 深圳(部分券商是 2)</param>
91. /// <param name="entrustId">委托编号</param>
92. /// <param name="result">返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。</param>
93. /// <param name="errorInfo">错误信息,一般要分配 256 字节的空间,出错时为非空字符串</param>
94. [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)]
95. public static extern void CancelOrder(int clientId, string exchangeId, string entrustId, Strin
gBuilder result, StringBuilder errorInfo);