设为首页收藏本站

 找回密码
 注册
楼主: 前线小卒
打印 上一主题 下一主题

求助ATR的表达 [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
1#
发表于 2007-10-17 13:03:23 |显示全部楼层
直接用AvgTrueRange(Length)就可以,
您也可以定义一个变量:
Vars
    Numeric ATRValue;
Begin
    ATRValue = AvgTrueRange(14);
...
End

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2007-10-17 15:16:06 |显示全部楼层
原帖由 前线小卒 于 2007-10-17 14:07 发表
Params
        Numeric Length(13);
               
      
Vars
        Numeric ATRValue;
                Numeric Value1;
        Numeric Value2;
                 Numeric Value3;
         
               
                  
Begin
                ATRValue = AvgTrueRange(Length);
        Val ...

  1. Params
  2.         Numeric Length(13);
  3. Vars
  4.         NumericSeries ATRValue;
  5.         NumericSeries Value1;
  6.         NumericSeries Value2;
  7. Begin
  8.         ATRValue = AvgTrueRange(Length);
  9.         Value1 = Close[1]-ATRValue[1];
  10.         Value2 = Highest(Value1,Length);
  11.         PlotNumeric("ls",Value2[1]);
  12. End
复制代码

[ 本帖最后由 nopain 于 2007-10-17 15:23 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2007-10-17 18:00:24 |显示全部楼层
原帖由 前线小卒 于 2007-10-17 16:16 发表
还没懂,下次我什么情况下用 Numeric,什么情况下用NumericSeries?


简单的来说内,您需要用value[nOffset]这样回溯数据就需要定义为NumericSeries.
另外一种情况是作为参数传入,比如例子中的Highest,它的第一个参数需要是NumericSeries类型,所以Value1也必须是序列型

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2007-10-18 09:00:10 |显示全部楼层
原帖由 hugingco 于 2007-10-18 08:48 发表
版主,初次编写tb,对于参数的调用有些问题。下面编了个求前10bar的收盘价的斜率,其中调用的情况请说明:
//------------------------------------------------------------------------
// 简称: try
// 名称:
// 类别:  ...


FileAppend是输出信息到文件,您的目的应该是要在图上显示吧?
您这样的需求只需这么些就可以了!
  1. Params
  2.     Numeric Length(10);
  3. Begin
  4.     PlotNumeric("斜率",LinearRegSlope(Close,Length));
  5. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2007-10-18 09:54:56 |显示全部楼层
FileAppend函数是往文件追加内容!
公式执行时,开始是全部执行,后面行情更新时,只执行最后1个Bar,所以最后一个Bar的数据会一直追加到文件中!

TB不支持数组的操作!
如果您想取前几日的斜率,要这样写!

  1. Params
  2.     Numeric Length(10);
  3. Vars
  4.     NumericSeries LRS;
  5.     Numeric preLRS1;    // 前一日的LRS
  6.     Numeric preLRS2;    // 前二日的LRS
  7. Begin
  8.     LRS = LinearRegSlope(Close,Length);
  9.     preLRS1 = LRS[1];
  10.     preLRS2 =  LRS[2];
  11. ....
  12.     PlotNumeric("斜率",LRS);
  13. End
复制代码

[ 本帖最后由 nopain 于 2007-10-18 09:58 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2007-10-18 11:26:37 |显示全部楼层
+号用成全角的了!
修改后如下:

  1. FileAppend("d:\\a.log",Text(day)+" "+TEXT(LRS)+" "+text((LRS+PRELRS2+PRELRS1)/3));
复制代码

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-14 15:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部