zoukankan      html  css  js  c++  java
  • 股票代码2

    通达信扩展行情接口, 提供的数据主要为期货、期权、三板和港股行情数据

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    
    namespace TdxExHqDemo
    {
        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);
                short Count = 80;
    
                //连接服务器
                bool bool1 = TdxExHq_Connect("111.111.111.111", 7721, Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);//连接失败
                    return;
                }
                Console.WriteLine(Result);
    
    
                int InstrumentCount = 0;
                bool1 = TdxExHq_GetInstrumentCount(ref InstrumentCount, ErrInfo);
                Console.WriteLine(InstrumentCount);
    
    
    
    
                bool1 = TdxExHq_GetInstrumentInfo(0, 511, Result, ErrInfo);//Count最大511
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return ;
                }
                Console.WriteLine(Result);
    
    
    
                Count = 50;
                bool1 = TdxExHq_GetInstrumentBars(0, 47, "IFL0", 0, ref Count, Result, ErrInfo);// 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线
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
                bool1 = TdxExHq_GetMinuteTimeData(47, "IFL0", Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
    
                bool1 = TdxExHq_GetTransactionData(47, "IFL0", 0, ref Count, Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
                //获取五档报价数据
                bool1 = TdxExHq_GetInstrumentQuote(47, "IFL0", Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
    
                bool1 = TdxExHq_GetHistoryTransactionData(47, "IFL0", 20140919, 0, ref Count, Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
    
    
                bool1 = TdxExHq_GetHistoryMinuteTimeData(47, "IFL0", 20140827, Result, ErrInfo);
                if (!bool1)
                {
                    Console.WriteLine(ErrInfo);
                    return;
                }
                Console.WriteLine(Result);
    
    
                TdxExHq_Disconnect();
    
    
    
                Console.WriteLine("结束");
            }
    
            /// <summary>
            ///  连接通达信扩展行情服务器,服务器地址可在券商软件登录界面中的通讯设置中查得
            /// </summary>
            /// <param name="IP">服务器IP</param>
            /// <param name="Port">服务器端口</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_Connect(string IP, int Port, StringBuilder Result, StringBuilder ErrInfo);
    
    
            /// <summary>
            /// 断开同服务器的连接
            /// </summary>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern void TdxExHq_Disconnect();
    
    
            /// <summary>
            ///  获取扩展行情中支持的各个市场的市场代码
            /// </summary>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetMarkets(StringBuilder Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            ///  获取所有期货合约的总数
            /// </summary>
            /// <param name="Result">此API执行返回后,Result内保存了返回的合约总数。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetInstrumentCount(ref int Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            ///  获取指定范围的期货合约的代码
            /// </summary>
            // <param name="Start">合约范围的开始位置, 由TdxExHq_GetInstrumentCount返回信息中确定</param>
            /// <param name="Count">合约的数目, 由TdxExHq_GetInstrumentCount返回信息中获取</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据,出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetInstrumentInfo(int Start, short Count, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            /// 获取合约的K线数据
            /// </summary>
            /// <param name="Category">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>
            /// <param name="Market">市场代码</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Start">K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推</param>
            /// <param name="Count">API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目, 最大值800</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetInstrumentBars(byte Category, byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
    
            /// <summary>
            /// 获取分时数据
            /// </summary>
            /// <param name="Market">市场代码,</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetMinuteTimeData(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            /// 获取分时成交数据
            /// </summary>
            /// <param name="Market">市场代码</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Start">K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推</param>
            /// <param name="Count">API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetTransactionData(byte Market, string Zqdm, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            /// 获取合约的五档报价数据
            /// </summary>
            /// <param name="Market">市场代码</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetInstrumentQuote(byte Market, string Zqdm, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
            /// <summary>
            /// 获取历史分时成交数据
            /// </summary>
            /// <param name="Market">市场代码,</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Start">K线开始位置,最后一条K线位置是0, 前一条是1, 依此类推</param>
            /// <param name="Count">API执行前,表示用户要请求的K线数目, API执行后,保存了实际返回的K线数目</param>
            /// <param name="Date">日期, 比如2014年1月1日为整数20140101</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetHistoryTransactionData(byte Market, string Zqdm, int date, int Start, ref short Count, StringBuilder Result, StringBuilder ErrInfo);
    
    
    
    
            /// <summary>
            /// 获取历史分时数据
            /// </summary>
            /// <param name="Market">市场代码</param>
            /// <param name="Zqdm">证券代码</param>
            /// <param name="Date">日期, 比如2014年1月1日为整数20140101</param>
            /// <param name="Result">此API执行返回后,Result内保存了返回的查询数据, 形式为表格数据,行数据之间通过
    字符分割,列数据之间通过	分隔。一般要分配1024*1024字节的空间。出错时为空字符串。</param>
            /// <param name="ErrInfo">此API执行返回后,如果出错,保存了错误信息说明。一般要分配256字节的空间。没出错时为空字符串。</param>
            /// <returns>成功返货true, 失败返回false</returns>
            [DllImport("TdxHqApi.dll", CharSet = CharSet.Ansi)]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool TdxExHq_GetHistoryMinuteTimeData(byte Market, string Zqdm, int date, StringBuilder Result, StringBuilder ErrInfo);
        }
    }
    
  • 相关阅读:
    创建型模式
    创建、修改、删除表总结
    分页式存储管理及地址转换(网易笔试题)
    二进制、十进制、十六进制相互转换
    转 String,StringBuffer与StringBuilder的区别??
    IDEA 修改某个Module名称
    IDEA Git 修改后的文件无法Commit
    git git push某一次的commit记录
    git merge 结果是 git merge Already up-to-date. 该怎么解决?
    火币网API文档——REST 行情、交易API简介
  • 原文地址:https://www.cnblogs.com/zeroone/p/4604135.html
Copyright © 2011-2022 走看看