neo_cn的tradestation中文教程

Discussion in 'TradeStation' started by neo_cn, Sep 9, 2008.

  1. 十分感谢neo老师,我节后会去联系他们的。
    PS:俺正好在深圳
     
  2. 期待更新。。
     
  3. coming soon
     
  4. 看完了neo兄的这个帖子,记得最深的就是那个“半自动”。记得上次在期货公司,被问到程序化交易,我说:我现在是半自动的交易,我喜欢看盘,盘面的走势的变化会带来很多乐趣,如果都是全自动程序化了,那我不就变成一个程序员而非交易员了嘛,呵呵!

    不过,我的半自动还停留在初级水平,我用的是飞狐,然后导导文华的数据,是文本格式的,我主要是做中长线,短线很少做。请问neo兄,ts导入的数据格式有讲究吗?另外,ts能否用同一品种的所有期货合约的数据编制一个对应的指数呢?
     
  5. neo老师 您好!
    我还停留在开户的第一步那里,由于我的资金太少,所以很难开立您这种bakerage customer帐号
    但是 TS 上面还可以开立subscripition customer账户中的Optional Platform Features
    但是下面又分出了两种服务,我昏!

    1.RadarScreen® Custom Real-Time Scanning $59.95/month

    是不是只能看行情,不能显示图表?

    2. OptionStation® Custom Real-Time Options Analysis $59.95/month

    是不是只能看图表,不能显示行情?

    老师 我只想看看行情,点击雷达窗口后能显示基本图形就够了,不知道应该开立什么账户?

    在中国用VISA可以支付TS的费用吗?如果只是开立以上两种账户,还需要护照和银行账户吗?
     
  6. 期待更新!! 耐心等待!!
     
  7. 影响深刻。期待ing
     
  8. 请教neo_cn兄,如何正确将TS8.3导出的5分钟数据顺利导入2000i,我是通过2000i的3rd Party Directory Symbol List项往下一步一步导入的,但试了好几次都没成功,最后都是显示No data available for the selected data range.

    万分感谢!
     

  9. 如提示内容暗示的,你应选择与你的数据文件中具有的相应的日期范围的数据。
     
  10. 谢谢memo163,是时间设定和Value的设置问题,反正就是花时间挨个选项试,现在已解决。不麻烦neo_cn兄了。
     
  11. 期待继续!!!
     
  12. neo,中文什么时候可以编写出来呢?
     
  13. 期待中
     
  14. 期待ing ……
     
  15. 9月29日
    第一个easy language程序

    easy language可以调动几乎所有的tradestation平台资源和功能,可以生成指标、策略、扫描和交易系统等等。
    但是根据我对ts的认识,我认为我们应该从这些之外开始,从数据统计开始。

    所以我们的第一个程序将是这样的:这个程序的功能是对某个特定的图表数据进行统计,将以下信息在图标上以数字的形式返回给我们的眼睛,这些数据是当前图标有多少根k线,多少是阳线,多少是阴线,阴阳的比例各占多少,在当前图表上,每根k线的涨幅之和的累积是多少?

    继续此帖

    1 当前图标有多少根k线
    这个指标简单,重要的是思路:当我们面临一个问题的时候,解决问题的思路。比如说我们在进行蓝球赛你拿到了球,球赛是以分数记输赢,因此得分是关键目标,因此,拿到球的你应该根据自己所处的位置,队友所处的的位置,你和队友面临的防守等因素作出判断,是你自己带球突破上篮,还是传给有更好机会的队友。在编程世界里,软件的工业化已经很发达,因此只要是大家都会遇到的问题,大家都会会存在的需求,在一个成熟的软件中应该早已经存在解决方法。所以,我在们tradestation里面面临一个问题的时候,首先要想这个问题是我独有的,还是已经大家都会遇到的,如果是大家都会遇到的,那么就应该选去看一看tradestation平台的easylaguage里面是不是已经给出相应的解决方案。
    那么,针对要查看当前图表有多少根k线这个基本问题的时候,我们要先去查看easylaguage的文档,而文档用我们专业的描述实际上应该叫做专家系统,熟练使用一个成熟软件的帮助文档就相当于有一个专家团队在你身边一样。
    文章最初级的应用是在帮助文档的索引和搜索中输入简单的关键词,因为当前我们要查看图表中的k线数,因此关键词可以归纳为bar(价格线/条) number(数量) count(计数)
     
  16. 很容易我们可以找到barnumber函数
    他的说明如下
    BarNumber (Function)
    Disclaimer

    The BarNumber series function assigns a reference number to each bar after MaxBarsBack is satisfied.

    Syntax
    BarNumber

    Returns (Integer)
    A positive numeric reference value for each bar on the chart.

    Parameters
    None

    Remarks
    MaxBarsBack is the minimum number of referenced historical bars required at the beginning of a chart to begin calculating trading strategies, analysis techniques, and functions. For example, a 10-bar moving average would require a MaxBarsBack setting of 9 to calculate, which is 9 historical bars and the current bar.

    Since BarNumber is based on MaxBarsBack, if there are 500 bars in a chart, with a MaxBarsBack setting of 50, the next bar after the 50th bar on the chart moving left to right, will be BarNumber = 1. The last bar on the chart (most recent) will be BarNumber = 451.

    BarNumber is often used to identify a particular bar or number of bars because of some special occurrence or situation that you want to test or factor into your analysis.

    The BarNumber function is similar to the reserved word CurrentBar. However, CurrentBar does not allow previous bar references: BarNumber[5](of five bars ago) is correct, however, Currentbar[5] is incorrect and does not work.

    Examples
    Assigns the BarNumber for each bar to Value1, then plots Value1:

    Value1 = BarNumber;

    Plot1(Value1, "BarNum");

    Assigns the BarNumber to Value1 when Condition1 is true, and assigns the number of bars since Condition1 occurred to Value2:

    if Condition1 then
    Value1 = BarNumber;
    if BarNumber > Value1 then
    Value2 = CurrentBar – Value1;

    我们可以看到在这个帮助系统里面,对每一个函数,都给出了拼写,参数定义,注意事项和使用实例

    ok现在我们知道barnumber代表了当前图表中的k线数-maxbarback(这个运算运算向前引用的k线数)
    所以barnumber+maxbarback就可以得出当前图表中的k线数
    那么下一个问题是如何把这个数字显示出来,在tradestation中,有足够的方式来显示信息,可以是文字,也可以是图形和线条,对于当前的例子,我们希望他返回的是一个数字,因此我们还需要去找在ts中如何显示数字。
     
  17. 除了使用帮助系统,还有一个更方便的工具,ts辞典,当你打开或者新建一个easylanguage文档,你可以看到工具栏上的这个图标,点击之后打开辞典,可以看着常用的分类来查看,按照例子的情况,我们要查看text_drawing分类。
     
  18. 很快我们可以根据英文字面意思找到text_new()方法,并且通过文档了解他的拼写规则
    ID = Text_New(Date, Time, Low, "Key");

    所以我们的程序就是这样子
    value1=barnumber+maxbarsback;//这是将我们要求的的结果赋值给value1,以便于后面的引用
    id=text_new(date,time,value1,"barnumber");
    我们把这段代码放进编译器看看,我们要在ts菜单file-new-window-easylanguage-indicator或者默认的左侧快捷工具栏
     
  19. 但是编译会出错“word not recognized be easylanguage” 原因是id没有事先声明,在easylanguage里面value1 condition1是特殊的变量,不需要声明就可以使用,其他任何变量需要事先声明
    而且数据类型的转换需要显式执行,也就是不需要用转换语句而不能希望编译器帮你转换执行的意思。
    因此修改过的程序如下
    var:id(-1),str("");//事先定义两个变量id代表画出的字符的编号默认值为-1,str为字符型参数默认值为空格。

    value1=barnumber+maxbarsback;//这是将我们要求的的结果赋值给value1,以便于后面的引用
    str=numtostr(value1,0);//numtostr是将数字转化为字符串,0是保留小数点后0位。
    id=text_new(date,time,close,str);//在收盘价上画出k线数。
    编译成功
    打开一个图表显示行情,然后插入这个indicator,效果如下
     
  20. 2145这个数就是当前打开的图表中的k线数,这里面有一个重点,就是正如大家所看到的,easylanguage程序在默认状态下是每一根k线运算一次!

    程序虽小,但是涉及到了参数声明,如何找到所需函数,如何在图表中显示
    下面我们再进一步
    统计一下这2000多k线中,阴线和阳线的数量

    我们只需做一点点修改


    var:id(-1),idyang(-1),idyin(-1),str(""),stryang(""),stryin("");//事先定义两个变量id代表画出的字符的编号默认值为-1,str为字符型参数默认值为空格。 增加了几个变量

    value1=barnumber+maxbarsback;//这是将我们要求的的结果赋值给value1,以便于后面的引用
    if close>open then value2=value2+1 else value3=value3+1;//根据收盘价与开盘价的比较累加阳线和阴线的数量,
    str=numtostr(value1,0);//numtostr是将数字转化为字符串,0是保留小数点后0位。
    id=text_new(date,time,(high+low)/2,str);//在收盘价上画出k线数。
    idyang=text_new(date,time,high,numtostr(value2,0));//在最高价显示阳线数量
    text_setcolor(idyang,red);//设置阳线数量为红色
    idyin=text_new(date,time,low,numtostr(value3,0));//在最低价显示阳线数量
    text_setcolor(idyin,green);//设置阴线数量为绿色,便于查看