股票自动交易接口♝// public static bool IsX86() ↲ { ↲ var winX = IntPtr.Size * 8; ↲ if (winX != 32) ↲ { ↲ /* --------------------------------------------------------------------------------- ↲ * 因为接口是 32 位的,所以必须以 32 位的方式运行此程序,可在 ↲ * 【项目属性】-【生成】-【目标平台】中选择 x86 即可 ↲ * --------------------------------------------------------------------------------- ↲ */ ↲ Console.WriteLine($"此程序仅适用于 32 位平台,当前平台为 {winX} 位,程序即将结束。"); ↲ return false; ↲ } ↲ return true; ↲ } ↲ } ♝// #endregion ♝// public static void TestSendOrder(int clientId) ↲ { ↲ /* --------------------------------------------------------------------------------- ↲ * 测试委托买入,需要填入上面方法中查询到的深圳市场的股东代码 ↲ * --------------------------------------------------------------------------------- ↲ */ ♝// ↲ 跨账户委托下单 ↲ ↲客户端 Id↲委托种类:0 买入,1 卖出,2 融资买入,3 融券卖出,4 买券还券,5 卖券还款,6 现券还券↲委托类型:0 上海限价委托;深圳限价委托,1 深圳对方最优价格,2 深圳本方 最优价格,3 深圳即时成交剩余撤销,4 上海五档即成剩撤;深圳五档即成剩撤,5 深圳全额成交或撤销,6 上海五档即成转 限价↲股东代码↲证券代码↲委托价格↲委托数量↲操作数量↲返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。↲错误信息,一般要分配 256 字节的空间,出错时为非空字符串 ↲ [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)] ↲ public static extern void SendMultiAccountsOrders(int[] clientId, int[] category, int[] entru stType, string[] gddm, string[] zqdm, float[] price, int[] quantity, int count, IntPtr[] result, I ntPtr[] errorInfo); ♝// ↲ 查询各种交易数据 ↲ ↲客户端 Id↲信息种类:0 资金,1 股份,2 当日委托,3 当日成交,4 可撤单,5 股东代码,6 融资 余额,7 融券余额,8 可融证券↲返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。↲错误信息,一般要分配 256 字节的空间,出错时为非空字符串 ↲ [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)] ↲ public static extern void QueryData(int clientId, int category, StringBuilder result, StringBu ilder errorInfo); ↲↲↲ ↲ 委托下单 ↲ ↲客户端 Id↲委托种类:0 买入,1 卖出,2 融资买入,3 融券卖出,4 买券还券,5 卖券还款,6 现券还券↲委托类型:0 上海限价委托;深圳限价委托,1 深圳对方最优价格,2 深圳本方最 优价格,3 深圳即时成交剩余撤销,4 上海五档即成剩撤;深圳五档即成剩撤,5 深圳全额成交或撤销,6 上海五档即成转限 价↲股东代码↲证券代码↲委托价格↲委托数量↲返回信息,一般要分配 1024*1024 字节的空间,出错时为空字符串。↲错误信息,一般要分配 256 字节的空间,出错时为非空字符串 ↲ [DllImport("MetaTrade.dll", CharSet = CharSet.Ansi)] ↲ public static extern void SendOrder(int clientId, int category, int entrustType, string gddm, string zqdm, float price, int quantity, StringBuilder result, StringBuilder errorInfo);