using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace CsDoc
{
internal class Program
{
///
/// 连接通达信扩展行情服务器
///
/// 服务器IP,可在券商通达信软件登录界面“通讯设置”按钮内查得
/// 服务器端口
/// 登录账号
/// 登录密码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返回 ConnectionID, 失败返回-1
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
public static extern int TdxExHq_Connect(string IP, int Port, string Account, string Password, StringBuilder Result, StringBuilder ErrInfo);
///
/// 断开同服务器的连接
///
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
public static extern void TdxExHq_Disconnect(int ConnectionID);
///
/// 获取扩展行情中支持的各个市场的市场代码
///
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxExHq_GetMarkets(int ConnectionID, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取所有期货合约的总数
///
/// 此API执行返回后,Result内保存了返回的合约总数。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxExHq_GetInstrumentCount(int ConnectionID, ref int Result, StringBuilder ErrInfo);
///
/// 获取指定范围的期货合约的代码
///
// 合约范围的开始位置, 由TdxExHq_GetInstrumentCount返回信息中确定
/// 合约的数目, 由TdxExHq_GetInstrumentCount返回信息中获取
/// 此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxExHq_GetInstrumentInfo(int ConnectionID, int Start, 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>
/// 市场代码
/// 证券代码
/// 范围的开始位置,最后一条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 TdxExHq_GetInstrumentBars(int ConnectionID, byte Category, byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取分时数据
///
/// 市场代码,
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxExHq_GetMinuteTimeData(int ConnectionID, byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取指定范围内的分时成交数据
///
/// 市场代码
/// 证券代码
/// 范围的开始位置,最后一条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 TdxExHq_GetTransactionData(int ConnectionID, byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取合约的五档报价数据
///
/// 市场代码
/// 证券代码
/// 此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过\n字符分割,列数据之间通过\t分隔。一般要分配1024*1024字节的空间。出错时为空字符串。
/// 此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。
/// 成功返货true, 失败返回false
[DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool TdxExHq_GetInstrumentQuote(int ConnectionID, byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取历史分时成交指定范围内的数据
///
/// 市场代码,
/// 证券代码
/// 范围的开始位置,最后一条K线位置是0, 前一条是1, 依此类推
/// 范围的大小,API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目
/// 日期, 比如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 TdxExHq_GetHistoryTransactionData(int ConnectionID, byte Market, string Zqdm, int date, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
///
/// 获取历史分时数据
///
/// 市场代码
/// 证券代码
/// 日期, 比如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 TdxExHq_GetHistoryMinuteTimeData(int ConnectionID, byte Market, string Zqdm, int date, StringBuilder Result, StringBuilder ErrInfo);
static void Main(string[] args)
{
StringBuilder Result = new StringBuilder(1024);
StringBuilder ErrInfo = new StringBuilder(1024);
int ConnectionID = TdxExHq_Connect("1.2.3.4", 7727, "account", "password", Result, ErrInfo);
bool bool1 = TdxExHq_GetInstrumentInfo(ConnectionID, 0, 100, Result, ErrInfo);
TdxExHq_Disconnect(ConnectionID);
}
}
}