http://chaoguwaigua.com/downloads/L2HqApiCSharp.txt
通达信L2行情接口, 包括普通行情接口所有功能, 并新增了十档行情, 逐笔成交,买卖队列和深圳逐笔委托(上海证券交易所不对外提供逐笔委托数据)这四个新功能.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace TdxHqApiDemo
{
class Program
{
static void Main(string[] args)
{
//DLL是32位的,因此必须把C#工程生成的目标平台从Any CPU改为X86,才能调用DLL;
//必须把TdxHqApi.dll复制到工程Debug或Release目录下;
//无论用什么语言编程,都必须仔细阅读VC版内的关于DLL导出函数的功能和参数含义说明,不仔细阅读完就提出问题者因时间精力所限,恕不解答。
StringBuilder Result = new StringBuilder(1024 * 1024);
StringBuilder ErrInfo = new StringBuilder(256);
bool bool1 = TdxL2Hq_Connect("61.152.107.173", 7707, Result, ErrInfo);
if (!bool1)
{
Console.WriteLine(ErrInfo.ToString());
return;
}
Console.WriteLine(Result.ToString());
byte[] Market = { 0, 1, 1, 0 };
string[] Zqdm = { "000001", "600030", "600000", "000750" };
short Count = 4;
bool1 = TdxL2Hq_GetSecurityQuotes10(Market, Zqdm, ref Count, Result, ErrInfo);
if (bool1)
{
Console.WriteLine(Result.ToString());
}
else
{
Console.WriteLine(ErrInfo.ToString());
}
TdxL2Hq_Disconnect();
}
///
/// 获取逐笔成交数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetDetailTransactionData (byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取深圳逐笔委托数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetDetailOrderData (byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 批量获取多个证券的十档报价数据
///
/// 市场代码, 0->深圳 1->上海, 第i个元素表示第i个证券的市场代码
/// 证券代码, Count个证券代码组成的数组
/// API执行前,表示用户要请求的证券数目,最大50, API执行后,保存了实际返回的数目
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetSecurityQuotes10 (byte[] Market, string[] Zqdm, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取买卖队列数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetBuySellQueue (byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 连接通达信行情服务器,服务器地址可在券商软件登录界面中的通讯设置中查得
///
/// 服务器IP
/// 服务器端口
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_Connect(string IP, int Port, StringBuilder Result, StringBuilder ErrInfo);
///
/// 断开同服务器的连接
///
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
public static extern void TdxL2Hq_Disconnect();
///
/// 获取市场内所有证券的数量
///
/// 市场代码, 0->深圳 1->上海
/// 此API执行返回后,Result内保存了返回的证券数量
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetSecurityCount(byte Market, ref short Result, StringBuilder ErrInfo);
///
/// 获取市场内从某个位置开始的1000支股票的股票代码
///
/// 市场代码, 0->深圳 1->上海
/// 股票开始位置,第一个股票是0, 第二个是1, 依此类推,位置信息依据TdxL2Hq_GetSecurityCount返回的证券总数确定
/// API执行后,保存了实际返回的股票数目,
/// 此API执行返回后,Result内保存了返回的证券代码信息,形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetSecurityList(byte Market, short Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取证券的K线数据
///
/// K线种类, 0->5分钟K线 1->15分钟K线 2->30分钟K线 3->1小时K线 4->日K线 5->周K线 6->月K线 7->1分钟 10->季K线 11->年K线< / param>
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目, 最大值800
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetSecurityBars(byte Category, byte Market, string Zqdm, short Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取指数的K线数据
///
/// K线种类, 0->5分钟K线 1->15分钟K线 2->30分钟K线 3->1小时K线 4->日K线 5->周K线 6->月K线 7->1分钟 8->1分钟K线 9->日K线 10->季K线 11->年K线< / param>
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目, 最大值800
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetIndexBars(byte Category, byte Market, string Zqdm, short Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取分时数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetMinuteTimeData(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取历史分时数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 日期, 比如2014年1月1日为整数20140101
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetHistoryMinuteTimeData(byte Market, string Zqdm, int Date, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取F10资料的分类
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
///
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetCompanyInfoCategory(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取F10资料的某一分类的内容
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 类目的文件名, 由TdxL2Hq_GetCompanyInfoCategory返回信息中获取
/// 类目的开始位置, 由TdxL2Hq_GetCompanyInfoCategory返回信息中获取
/// 类目的长度, 由TdxL2Hq_GetCompanyInfoCategory返回信息中获取
/// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetCompanyInfoContent(byte Market, string Zqdm, string FileName, int Start, int Length, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取除权除息信息
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetXDXRInfo(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取财务信息
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetFinanceInfo(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取分时成交数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的记录数目, API执行后,保存了实际返回的记录数目
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetTransactionData(byte Market, string Zqdm, short Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取历史分时成交数据
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// API执行前,表示用户要请求的记录数目, API执行后,保存了实际返回的记录数目
/// 日期, 比如2014年1月1日为整数20140101
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetHistoryTransactionData(byte Market, string Zqdm, short Start, ref short Count, int Date, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取五档报价
///
/// 市场代码, 0->深圳 1->上海
/// 证券代码
/// API执行前,表示证券代码的记录数目, API执行后,保存了实际返回的记录数目
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxL2Hq_GetSecurityQuotes(byte[] Market, string[] Zqdm, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
}
}