重奖 - 开发WLD 6.1 a股数据接口

Discussion in 'Wealth-Lab Developer' started by startx, Jun 22, 2011.

  1. 在海洋部落呆了很长时间,一直在寻找WLD 5.0以后的a股数据接口,可是满世界找也没有。
    听说“重赏之下必有勇夫”,这里都是交易员,我相信如果提供的重赏只是钱的话恐怕高手不会感兴趣。所以我的重赏全部是交易知识方面的内容,包括:
    1,WLD 所有正版用户可以看到以及下载的内容,只要你提出想要的,我就和你共享发给你。一年为限。如果有缘成为朋友,共享期延长。
    2,如果你有WLD的问题,我作为正版用户直接和他们的技术人员交流获得你的答案;包括开发接口过程中的问题。限期一年,如果真是高手,我愿意长期支持你。
    3,12期的Technical Analysis of STOCKS & COMMODITIES Magazine。如果你想到某些曾经在该杂志上出现过的指标或文章,告诉我,只要有,我就会给你。
    比如这个月登的一篇关于WLD的文章和源码:
    WEALTH-LAB: COLOR-BASED SYSTEM
    In his article in this issue, author Edgar Kraut presents a simple system that consists of two rules for taking long positions. Formally, it does not share traits of classic swing-trading systems (as the author states in the article) except for its sensitive 1% trailing stop, so with its trend condition rule and a volume confirmation rule seeking to identify and hold a rising stock for a short period of time, we would rather classify it as pure momentum trading.

    Our C# version of the system allows Wealth-Lab 6 users to easily change the lookback and exit parameters by dragging the parameter sliders in the lower-left corner of Wealth-Lab’s main workspace. We replaced the default trailing exit with a combination of a profit target and a stop-loss, and made the system exit on red and orange bars. For traders willing to tweak the rules further, here’s a very simple trend-identification idea of the same kind to go along with the volume confirmation rule:

    Bullish trend starts after x consecutive closes above the trailing close from y days ago,
    Bearish trend starts after x consecutive closes below the trailing close from y days ago.

    C# Code:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Drawing;
    using WealthLab;
    using WealthLab.Indicators;

    namespace WealthLab.Strategies
    {
    public class ColorBased : WealthScript
    {
    private StrategyParameter paramLookback;
    private StrategyParameter paramSL;
    private StrategyParameter paramPT;

    public ColorBased()
    {
    paramLookback = CreateParameter("Lookback", 20, 2, 100, 1);
    paramSL = CreateParameter("Stop %", 4, 1, 10, 1);
    paramPT = CreateParameter("Target %", 4, 1, 20, 1);
    }

    private Color color( int bar, int lookback )
    {
    Color c = Color.Transparent;

    if( Bars.Count > lookback )
    {
    int b = bar-lookback;

    bool green = (Close[bar] > Close) && (Volume[bar] > Volume);
    bool blue = (Close[bar] > Close) && (Volume[bar] <= Volume);
    bool orange = (Close[bar] < Close) && (Volume[bar] < Volume);
    bool red = (Close[bar] < Close) && (Volume[bar] >= Volume);

    if( green ) c = Color.Green;
    if( blue ) c = Color.Blue;
    if( orange ) c = Color.Orange;
    if( red ) c = Color.Red;
    }

    return c;
    }

    protected override void Execute()
    {
    int lookback = paramLookback.ValueInt;
    double SL = paramSL.Value;
    double PT = paramPT.Value;

    for(int bar = lookback; bar < Bars.Count; bar++)
    {
    Color c = color(bar,lookback);
    SetSeriesBarColor( bar, Volume, c );
    SetBarColor( bar, c );

    if (IsLastPositionActive)
    {
    Position p = LastPosition;
    double Stop = p.EntryPrice * (1 - SL / 100.0d);
    double Target = p.EntryPrice * (1 + PT / 100.0d);

    if( c == Color.Red || c == Color.Orange )
    SellAtMarket(bar+1, p, c.ToString() );
    else
    if( !SellAtStop(bar + 1, p, Stop, "SL") )
    SellAtLimit(bar + 1, p, Target, "TP");
    }
    else
    {
    if( c == Color.Green || c == Color.Blue )
    BuyAtMarket( bar+1, c.ToString() );
    }
    }
    }
    }
    }



    A sample chart is shown in Figure 8.

    Figure 8: WEALTH-LAB, Color-Based System. This sample Wealth-Lab Developer 6.2 chart shows the color-based system applied to a daily chart of SPDR S&P 500 (SPY).

    之所以提供这个重赏,就是因为WLD到现在为止迟迟没有a股的接口。我所要的接口,至少具有以下功能:
    1,a股除权日线、5分钟线历史数据;
    2,a股实时更新数据:5分钟数据;
    3,接口支持WLD 5.4以后,最好WLD 6.1; 如果是支持5.4版本的,没关系,WLD的技术支持承诺帮助修改;
    4, 数据要求精确;
    如果具有以下功能就更好了:
    1,a股财务数据;
    2,a股板块数据;
    3,外汇日线和5分钟数据,也要历史数据和实时数据;
    接口最好用银江或者网际风,希望年费低点就好。
    最重要的是,提供源码。我希望将来WLD升级后,我还能继续用。
     
  2. 建议楼主找个专业程序员付费开发,可能效果比较好
    你的这个“重赏”对于做交易上道的人来说吸引力不大
    对于还在摸索中的,可能根本没有时间和心思做你的东西(自己的那点事都还忙不过来呢 :)
     
  3. 其实最好是交易员和程序员两者兼而有之的人最理想。我想过付费开发,但是要不就是天价(竟然有老兄开价20万)要不就是不理想。所以才跑到这里来悬赏了。
    楼上的老兄说我的“重赏”对交易上道的人来说吸引力不大。可我却以为,很多交易员都是在不断学习中不断提高,不学习不提高的人基本上交易生涯已经到了尽头。只要一个人想学习,我所提供的资料就是有价值的。当然要懂得这些资料价值的人才能够懂。
     
  4. 呵呵,楼上兄弟的想法有点理想化了。真正的交易员或者牛X的程序员都不太会缺钱的,他(她)如果需要你上面提供的这些东西多半就自己掏腰包了。做交易和写程序都好的只怕是更少,手上的资源只会更多,你说呢?

    所以,我说做交易好的人不会有时间和心思给你做接口,在摸索交易的人也不一定有心思给你做。以其这样,不如找个专业一点的程序员给你做,或者就是你自己动手(这也是可以的)。

    一点个人的想法罢了,不必太计较。nothing is impossible...
     
  5. 多谢espresso的热心。我也曾经研究过Amibroker。后来发现自己还是更喜欢WLD,所以成了WLD的忠实用户。
    我在这个论坛看到有人公布出来的通达信WLD接口源码,也看到过关于WLD接口的说明。开发静态的日线接口基本上问题不大,但是实时的数据接口却无从下手。这是第一个困难,但是估计在wealth-lab的帮助下,应该不是问题。
    第二个困难,我曾经以为不是困难,但是现在发现可能是很大的困难,那就是中国a股的数据接口。不知道为什么a股的数据接口API那么难提供。国外的datafeed,基本上只要是付费的,大都提供完整的API调用文档。即便datafeed不提供API,证券分析软件也会提供API,有机会获得各种数据。
    可是我发现国内证券软件都不提供API,只提供公式,极少可以通过编程把股票数据导出来的。唯一编程导出数据的软件,曾经用过dzhtools,在大智慧上可以使用,但是得到数据不全。尤其是大智慧不断升级,似乎不愿支持dzhtools。至于datafeed,我们的选择一般仅限于银江和网际风接口。但是这两个接口的API文件,在我看来,简陋得只有几页,像天书一样枯燥难懂,大部分是数据结构的定义,极少量的调用说明,绝对不能称作完整的API文档。我甚至怀疑这两个接口的API文档是盗版。因为我和这两个公司的人联系,他们基本上都是冷冰冰的,一问三不知,动则就是收钱。(没有为客户服务的信念,客户凭什么忠于他们的产品呢?希望这两个公司提高自己的服务水准。)
    所以现在的主要难点,就是要攻克这个接口的API。
    espresso提到的ab插件的开发者,如果他能解决第二个难点,那么他可能就直接使用这个接口了。可是他却使用了web行情获得实时数据,说明银江和网际风接口的困难他很有可能也没有解决。
    谢谢espresso的思路。
     
  6. 呵呵,国内a股就是鼓励小散们手工敲单做炮灰的,哪里会给你玩api。
    你可以还可以参考fathead的方法,他好像也是从dzh里面把数据读出来。
     
  7. 为什么要A股的实时数据呢?要这些实时数据也什么用啊?
     
  8. 银江和网际风接口很规范。看下通视接口就可以。
    有两个网际风,其中一个也叫金骄。它不开放股票api 但是开放期货api
    另外一个老网际风通视接口没问题。

    你要是c#都能下手了,不应该是问题。
     
  9. 楼上老兄应该是高手了,我看通视接口看得头大。所以才公布此贴。
     
  10. 我有几个开发wld 6.0的a股数据接口思路。
    1,根据银江、网际风或者数畅的接口标准,直接编程(需要知道WLD日线和实时接口);
    2,根据银江、网际风或者数畅的接口标准,将数据写入符合WLD接口标准的数据库;
    前两者都需要datafeed的接口,考虑到这些接口API的复杂,另外两个思路如下:
    3,直接将飞狐或者分析家的复权日线、5分钟线、板块和财务数据编程读取后,分别通过方案1、2实现;
    这一点需要飞狐或分析家的读取程序,目前还不太清楚,如果有人能提供帮助的信息,或者调用这些数据的信息。先谢谢了。
    4,以前曾经看到过在wld3或者wld4上面的数据接口,但是没有这个链接,应该可以转接到wld6,但是希望能有源码,就可以直接修改了。

    上面四种方案,第四种最简单,但是最不可靠。第3种应该是最好的方案。不知道大家有无意见?多谢。
     
  11. 楼主为什么非要实时接口呢? 退一步海阔天空, 用非实时的,比如收盘后就能得到5分钟数据和日线数据的应该也不影响你的工作吧.即使你用了银江的接口什么的,你觉得在交易时段其行情的速度就一定比大智慧等好?
    我觉得用非实时的数据做分析,然后用C语言在大智慧里编出指标,然后依照指标选股,通过AutoIt之类的软件操作下单软件是目前唯一可行的路子,fathead已经做了表率了.
    目前用WLD遇到的问题是效率和数据精度,尤其是对分时数据进行复权的问题,市面上你能找到的数据全部是有问题的,至于效率问题就不用说了,你对2000只股票日线选股就是一个很费时的工作,更不要说你对1分钟或者5分钟K线选股了.
    我下载过飞狐的5分钟复权数据,整个过程太漫长,而且中间还有明显的数据错误.我现在的策略是通过分笔数据和复权数据自己转换,大的计算需要自己编程序提高速度了,用WLD只能看看图形或者做简单的计算.
    分笔数据要弄到并不难,财务复权数据也不难.
     
  12. te

    delete
     
  13. 第12楼的兄弟,谢谢你的看法。顺便说说,你的名字很酷,俺灰常灰常喜欢。
    先说说实时接口。你说的没错,只是我个人的交易系统考虑3个TimeFrame,其中当日的30分钟数据是需要的。
    然后说说效率和数据精度。分时数据的复权,对我来说无需考虑,也从未考虑,我只要考虑1周的30分钟数据即可,所以兄弟的关心不是问题。另外对于2000只股票日线选股,那可能是所有人的噩梦。我每年通过自编的一个程序,选择出4只股票。在WLD里验证交易系统只需拿这四只股票验证就可以了。
    WLD的用处不只是看图或者简单的计算,它所拥有的模式判别、分仓操作、神经网络、以及指数功能,对于建立交易系统的兄弟来说,我个人认为是必须的。
    我现在临时用的是飞狐导出的日线复权数据,缺的就是30分钟数据。
     
  14. 楼主,飞狐也有下载5分钟数据的,你可以合成为30分钟的,是不是我的理解有误?
     
  15. 谢谢楼上兄弟提供的思路。没错,飞狐也有5分钟数据,不过有多长时间的呢?还有,每次都要转换成txt,然后再被wld读取,不够直接。
    我考虑直接从飞狐或者分析家读取日线和5分钟历史数据,不知当日的5分钟数据可否读取。正在研究编程读取这些数据,不知楼上的兄弟有没有建议?
     
  16. 你只要一周的数据,这个飞狐的数据网上就有,转出是TXT的,但是这个也就是点点鼠标就能完成的事情啊.当日的数据我想也能读取(我自己现在不用飞狐了,具体不清楚),而且,您就关注4只股票,这我觉得数据源是TXT还是其他什么格式的都问题不大,如果数据量大的话,这是一个严重的问题.
     
  17. 多谢楼上的兄弟。你给的信息很有用。我去网上找找。Have a great day! :)
     
  18. startx, 我也正在想办法导入A股数据。
    我是个程序员,刚接触wealth-lab,手上没有wealth-lab data provider的资料,网上找了一圈,也没点眉目。
    看wealth-lab wiki,他们提供下面开源的provider
    # Google Finance static/streaming intraday/daily data provider (open source)
    # DDE Streaming provider (open source)
    你是正版用户,应该可以下下来研究研究。
    我以前把大智慧、同花顺的数据导入过自己的程序里面,如果有wealth-lab data provider API,我可以开发了免费提供给大家。
    实时的网际风比较好,用过感觉不错,但是对他们数据来源的合法性有一点小担心。
    我的邮件ahupengcheng@gmail.com, 可联系.
     
  19. wealth-lab data provider的资料曾经公布过,应该是有人看过的,只是没人愿意贴出来