WLD数据接口开发资料

Discussion in 'Wealth-Lab Developer' started by hylt, Jun 17, 2006.

  1. Wealth-Lab Developer Real-time Data Adapter API
    http://www.wealth-lab.com/cgi-bin/WealthLab.DLL/kbase?id=26
    http://www.wealth-lab.de/articles-advancedprogramming-Real-Time Data Adapter API.htm

    基于开源软件的金融计算
    http://www.hylt.net/wiki/wiki.html

    数畅接口规范及实例
    http://www.4b8.com/sccp.htm
    http://www.4b8.net/4b8/type.asp?typeID=35

    股票数据专家编程手记
    浏览版
    http://bigwisdom.diy.myrice.com/info/sjjg/index.htm
    下载版
    http://bigwisdom.diy.myrice.com

    通视VBI股票接收卡资料
    http://www.tongshi.com/xzzx.html

    通视实时服务器源码
    http://www.hylt.net/club/viewtopic.php?t=5328

    分析家行情接口规范
    http://download.fxj.com.cn/default.asp?classid=5

    通达信数据存储格式
    http://bbs.macd.cn/viewthread.php?tid=933900

    深圳证券交易所数据接口规范
    http://www.szse.cn/main/rules/Catalog_1045.aspx

    上证所信息网络有限公司
    http://www.sseinfonet.com

    上海证券通信有限责任公司
    http://www.stocom.net

    香港中国投资信息有限公司
    http://www.ciis.com.hk

    上海证券信息有限公司(早期较有影响,原由上交所和上证报合资,后改为上证报独资,上证所取消其行情经营授权)
    http://www.stockinfo.com.cn

    深圳证券通信有限公司
    http://www.ssscc.com.cn

    中国证券业协会信息技术委员会
    http://www.siita.org.cn

    C#实现COM接口的编程原理介绍和WEALTHLAB插件DEMO
    http://www.hylt.net/club/viewtopic.php?t=5378

    WLD插件开发相关资源
    http://www.hylt.net/club/viewtopic.php?t=5353

    MedVed QuoteTracker Streaming API
    http://www.quotetracker.com/help/QTStreamingAPI.shtml

    Public Files For Wealth-Lab Developer
    http://www.wldaddon.spb.ru
    有多个接口程序,包括DDE。

    上海期货信息技术有限公司
    http://www.sfit.com.cn
     
  2. WLD插件开发路线图(tom_sh)

    这是一篇写给交易员看的文章,目的是帮助他/她成为一个服务于自身操作的交易程序开发者。这篇文章的内容不适合程序员/商业软件开发组织,因为开发出来的东西仅供一个人使用。虽然交易员也可以聘请程序员代为开发,但如果自己没有开发实践,交易员就不知道交易程序提供的可能性边界在哪里,他/她的交易理念的潜力因此远远没有得到充分发挥。
    插件程序开发可以尝试以下的路线:

    第一步,掌握交易员对交易平台的真实需求。开发任何一个插件都要立足于一种基本交易平台类型并考虑如何扩展这个平台以满足自身的特定需求。当前众多的交易平台有以下几种主要应用类型:
    * 第一、看盘平台。内幕信息和盘口分析驱动交易决策,典型用户群体为大户室成员,对数据源质量敏感性高,对界面、图表和指标计算功能敏感性低,典型软件有钱龙及其仿制品、早期的宏汇;
    * 第二、技术分析平台。技术分析信号驱动交易决策,其基本特征是K线数据的线性计算或模式识别,典型用户群体为MACD成员,对界面、图表和指标计算功能敏感性高,对数据源质量敏感性相对低,典型软件有分析家、飞狐、同花顺、通达信、TS2000;
    * 第三、头寸/风险管理平台。不同于其他平台之处在于该平台的核心管理对象为头寸/风险决策,而非交易决策。典型软件为MECHANICA。此外,体现系统交易思想的WLD、trading blox builder、TS/RINA、QD等是技术分析平台和头寸/风险管理平台的一个综合,本身还不能成为一个独立的平台类型。
    * 第四、统计分析平台。统计分析信号驱动交易决策,统计数据覆盖面比技术分析型要宽,例如可能包括盘口数据、横截面数据和基本面数据。典型用户群体为对冲基金,对数据源质量敏感性非常高,有特殊的界面、图表和指标计算功能要求,软件平台定制为主,常用的开发工具包括C、JAVA、MATLAB、专用数据库;
    * 第五、做市/套利平台。套利分析驱动交易决策,典型用户群体为银行交易室,对数据源质量敏感性非常高,对界面、图表和指标计算功能敏感性低,典型软件有X_Trader。

    由于是自行开发程序,以上五种平台的基本和扩展功能从技术上均能实现于一体。但交易平台的使用者一般有明确的交易理念和模式,不会盲目照单全收所有这些功能。更大的可能是以某一平台为基础,开发实现一些特殊功能。例如,宏汇NSD特有的股线谱就是在看盘平台的基础功能上扩展出来的新功能。飞狐对干支八卦的支持也是如此。因此任何平台插件项目的开发,都是开发者认同一种基本交易模式和理念(平台已提供),并在此基础上作出了新方法扩展(自行开发)。

    第二步,了解WLD平台和C#工具的基本功能和特点。WLD是一个基于K线数据的交易系统设计、执行和评价的综合性平台,既有技术分析的基础功能,又有系统交易工具集。前者主要体现为WLD具备基本的图表、指标和报价功能。后者体现为WLD有多种实验/工作模式,包括盘后扫描、实时(分钟级)扫描、模拟测试、系统评比、模拟测试、指标评估、系统优化、交易管理、帐户管理等。WLD有全面而丰富的交易脚本语言,可以程序化实现上述系统交易的各种职能。WLD提供五种编程接口,函盖了行情数据、自动交易、定制图表和定制计算等职能,并与交易脚本语言连通,基本上可以满足交易员的所有可能的编程需求。

    C#是一个方便全面的工具集,在COM接口、网络通信等方面开发效率较高,便于初学者使用。对于不具备专业程序开发训练的交易员来说,是一个比较恰当的入口。

    第三步,熟悉数据源及其技术特点。需要了解存在哪些种类的数据源可以服务于交易系统开发及其技术特点。下面以实时行情数据为例讲解,关于中国证券市场数据情况将另文详细讨论。实时行情数据的来源是各交易所,其中证券交易所发送定时更新的汇总数据,期货交易所发送逐笔成交和汇总数据,两者技术选择上的差异与证券期货种类数量相差悬殊有关,与证券领域的井底之蛙心态、期货领域的外向型视野也有关。证交所通过卫星和专线向接收基站每分钟循环发送10-14次的汇总行情DBF文件,这个DBF文件包括当时最新的开高低收量额(累计数据)及五档买卖盘口数据(最新数据),深交所还包括交易主机的累计撮合笔数。一台行情接收专用电脑通过交易所提供的专用软件从数据采集卡读取最新的DBF文件,然后写到局域网硬盘上。另一台电脑循环(例如每0.1秒一次)读取局域网硬盘上的DBF文件,如发现其中有记录的某个字段发生数据变化,则认定该证券产生了新的行情数据,则一方面在历史行情库中写入该行情记录,另一方面将该行情向局域网内广播。局域网上的行情分析软件于是既能即时接收到最新行情,也能在以后访问历史行情库获得历史行情记录。与此同时,局域网上还可能存在其他行情使用者,这里面包括券商自身的网上行情主站,或者商业化的DATAFEED主站,如数畅、倚天金融等、或者电视台的图文电视广播站。从交易所发送行情到DBF落地写盘(交易所做完DBF库行情后就再也不向流式信息技术转移了,所以你们会看到1995年有过327国债期货结算风波,而2004年还可以再来一次国债回购结算风波),这一点任何行情用户都没有特别速度优势,因为接收机硬件、软件和渠道都是交易所提供的,能做到的差别不过在接收电脑系统的硬件上,例如用高速硬盘、高速CPU等。但从DBF到行情广播这一阶段(业内称为转码),以及从行情广播到最终用户接收,采用的技术手段将大大影响最终用户的接收情况。例如,转码机的软、硬件配置可以影响每分钟是4笔(网上行情主站通常配置)还是10笔以上刷新(营业部本地配置)。又如电视台转播股票图文信号首先需要把DBF文件中的数据取出生成特殊格式的数据文件,然后再广播出去,而接收软件则需要把这个文件解码提取行情数据供本地行情软件使用,这就增加了中间环节,所以图文行情落后营业部5-8秒是正常的。另外用户端接收软件技术也有影响,部分软件(如天网)接收行情采用的是定时轮询而非事件触发推播的技术,因此软件配置直接关系到接收效果(对于大用户量的网上行情客户端,行情主站一般不会提供很高频率的轮询)。这样,同样是通视兼容接口,搭建在天网技术上的HELLOWORLD接收质量就远不能与搭建在自有技术之上的数畅、倚天金融相比。因此如果做基于盘口信息的系统,就应该选择商业化的数据接口或把系统搭建在营业部内,但如果做基于分钟以上频率的K线数据,HELLOWORLD就完全可以胜任。

    除了数据质量以外,数据信息含义也是需要掌握的。前面说过,证交所发送的实时行情信息是汇总累计数据(SNAPSHOT),而非逐笔数据(STREAMING OR TICK BY TICK)。此外,历史上曾经把实时行情信息分为K线行情库和盘口库发送的时期(包括现在某种程度上)还存在着最新成交数据与盘口数据不同步的情况,做盘口分析系统的对这些不可不知。

    第四步,明确交易程序的数据结构、基础算法和交易平台的控制流转机理。

    明确了功能开发目标和基本数据以后,下一步很自然地过渡到算法(包括数据结构)上来。证券分析软件通常需要处理海量数据,对资源的占用较大,有历史测试功能的平台的数据处理尤为甚之,需要花相当大的精力来设计高效率的算法。例如,有的程序在数据存储格式上把基本数据转换成整形数据以节省硬盘空间,有的采用缓存技术来处理历史数据的装载,有的采用内存虚拟硬盘技术来提高实时数据的I/O,有的采用内存映射技术在相关独立程序间共享数据。开发者还需要考虑数据库技术和二进制文件技术在保存和管理数据上的不同适应对象,要不要实现存盘数据的ISERIALIZATION接口,数据序列选择ARRAY还是HASHTABLE来保存,如何在高速的行情更新、数据存储及相关计算中保证同步。

    交易程序的基础算法就是交易系统的本身,它是交易理念的数学计算和表达过程。开发者一般遵循:经验观察-手工试算-建模(EXCEL、MATLAB)-高级语言编码的程序,完成基础算法的定型。

    交易平台的控制流转机理决定了基础算法以何种技术实现形式组装入交易平台。对于WLD和众多的技术分析平台,其流转机理是FOR循环,变量为证券代码或时间序数,FOR循环之上可以人工控制或定时控制每一次计算过程。而QD采用了事件触发机制,MATLAB则运用了矩阵计算机制,这都显著有别于FOR循环。

    第五步,编码实现基础平台与插件扩展功能的整合。

    整合包含了基础交易平台的内建功能与扩展功能的协作与配合,例如内建的函数需要的特殊数据必须借助插件获取或委托计算,又如下单插件与行情插件之间的数据联系通道等。通过整合实现交易决策、执行、控制的流程化和自动化,清晰定义交易环节的过程事件,把交易理念明确为具体的条文。这些就是编码需要实现的目标。

    WLD插件功能设计

    本节描述可以通过WLD插件实现的普通和特殊功能,征求志愿者添砖加瓦,理想人选有HYLT、思迷思、YOYO2000等。

    中国证券市场数据采集与行情接收

    中国证券市场数据总览
    动态行情数据采集和管理
    动态行情数据采集的基本思路
    C#开发基于通视驱动行情接收的基本方法
    历史交易数据采集和管理:分析家分笔数据文件*.PRP的读取C#测试源码
    基本面数据采集和管理
    上市公司财务数据
    上市公司行为数据
    宏观/行业/商品数据
    横截面数据采集和管理
    传言/评论数据采集和管理

    通视驱动行情接收

    通视驱动下动态行情的接收均通过一个WINDOWS窗口来进行。这个窗口可以显示,也可以隐形。在C#中最低层次的窗口实现类是USERCONTROL,其他从CONTROL衍生的类,包括FORM都可以做接收窗口。行情接收程序把这个窗口的句柄作为一个入口参数传递给通视驱动的启动函数,通视驱动被启动后就进入循环更新行情和数据的状态。通视驱动一旦收到行情更新或其他数据信息,就会向接收窗口发送规定格式的WINDOWS MESSAGE。接收窗口的消息处理函数受消息事件驱动而触发,从消息中提取包含动态行情或其他数据的数据结构指针,从而将指针指向的数据采集出来。

    通视驱动一般发送包括动态行情在内的多种数据,不同服务商的驱动提供的数据类型可能是不同的。分笔行情、信息地雷、分时当日历史、日K线历史、F10、交易所信息、除权/财务等是常见的数据类型。

    分笔行情数据来自交易所广播发送的DBF行情文件,是实时日K线数据和报价数据的综合体,即包含了时开高低收量额的当日汇总数据,以及最新五档盘口价量数据。分笔行情数据不提供分笔成交的每笔交易量,必须通过相临两笔数据的汇总成交量差额来推导。但这个推导数据并不精确,因为交易所行情发布采用的是定时更新传递DBF文件方式,而不是采用流技术做逐笔成交数据更新。因此推导出的一笔成交可能是若干笔(定时期间)成交的汇总数。上交所一般每分钟更新10-14次,深交所一般每分钟更新10次。

    根据沪深交易所的行情发布方式,从逐笔成交数据归并到更低频率的K线数据并不一定准确可靠,尤其是K线的高低数据。经常可以在普通的行情分析软件内发现瞬间的最高/最低价并没有在分时图上出现,而日K线上已经反应出来。
     
  3. 好文章!特别是关于数据的那一块。tom_sh能否说说如果我在家里通过宽带用数畅的接口,相比于营业部的延时大概会是多少秒?能否控制在5秒以内?
     
  4. 好文章,讲解得很详细!
     
  5. zwz

    zwz

    受益匪浅!
     
  6. 在百度上,搜索 "matlab 金融计算",看到了海洋论坛的链接。

    也期待在海洋论坛里可见更多 "matlab 金融计算" 相关。
     
  7. "
    当前众多的交易平台有以下几种主要应用类型:

    * 第一、看盘平台。内幕信息和盘口分析驱动交易决策,典型用户群体为大户室成员,对数据源质量敏感性高,对界面、图表和指标计算功能敏感性低,典型软件有钱龙及其仿制品、早期的宏汇;

    * 第二、技术分析平台。技术分析信号驱动交易决策,其基本特征是K线数据的线性计算或模式识别,典型用户群体为MACD成员,对界面、图表和指标计算功能敏感性高,对数据源质量敏感性相对低,典型软件有分析家、飞狐、同花顺、通达信、TS2000;

    * 第三、头寸/风险管理平台。不同于其他平台之处在于该平台的核心管理对象为头寸/风险决策,而非交易决策。典型软件为MECHANICA。此外,体现系统交易思想的WLD、trading blox builder、TS/RINA、QD等是技术分析平台和头寸/风险管理平台的一个综合,本身还不能成为一个独立的平台类型。

    * 第四、统计分析平台。统计分析信号驱动交易决策,统计数据覆盖面比技术分析型要宽,例如可能包括盘口数据、横截面数据和基本面数据。典型用户群体为对冲基金,对数据源质量敏感性非常高,有特殊的界面、图表和指标计算功能要求,软件平台定制为主,常用的开发工具包括C、JAVA、MATLAB、专用数据库;

    * 第五、做市/套利平台。套利分析驱动交易决策,典型用户群体为银行交易室,对数据源质量敏感性非常高,对界面、图表和指标计算功能敏感性低,典型软件有X_Trader。
    "



    "
    交易程序的基础算法和交易平台的控制流转机理:

    交易程序的基础算法就是交易系统的本身,它是交易理念的数学计算和表达过程。开发者一般遵循:经验观察-手工试算-建模(EXCEL、MATLAB)-高级语言编码的程序,完成基础算法的定型。

    交易平台的控制流转机理决定了基础算法以何种技术实现形式组装入交易平台。对于WLD和众多的技术分析平台,其流转机理是FOR循环,变量为证券代码或时间序数,FOR循环之上可以人工控制或定时控制每一次计算过程。而QD采用了事件触发机制,MATLAB则运用了矩阵计算机制,这都显著有别于FOR循环。
    "



    顶一下。
     
  8. "
    * 第五、做市/套利平台。套利分析驱动交易决策,典型用户群体为银行交易室,对数据源质量敏感性非常高,对界面、图表和指标计算功能敏感性低,典型软件有X_Trader。
    "

    可以推荐一些 "做市/套利平台" 相关的网站 和 专业机构交易相关的论坛/网站吗?
     
  9. CFA第三级读本中有关于BEST EXECUTION的内容,建议从这里(包括作者的网站)起步了解机构交易的情况。
     
  10. 谢谢。
     
  11. 能给个链接吗
     
  12. 吐血了..完全看不懂..
     
  13. 有DBF行情文件转通视规范的软件或资料吗?
     
  14. 吐血了..完全看不懂..