设为首页收藏本站

 找回密码
 注册
查看: 3610|回复: 4
打印 上一主题 下一主题

我已开户,请帮忙写指标 [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
1#
发表于 2008-8-27 12:03:16 |显示全部楼层
您的需求是不是这样的:
你希望找到在1分钟线上找到最近5天的最高价出现的Bar.

可以这么来做,先计算对于当前Bar,最近5天应该是多少根1分钟K线。保存到一个序列变量MyLength里面,然后把Length传入HighestBar(High,MyLength); 就可以求出这个Bar的索引值。

问题的难点在于如何动态的求MyLength值,稍后我写一个函数给您吧。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2008-8-27 12:34:19 |显示全部楼层
函数BarIndexOfnDays
  1. Params
  2.         Numeric daysAgo(2);
  3. Vars
  4.         NumericSeries barCnt;
  5.         Numeric i;
  6.         Numeric j;
  7.         Numeric nIndex(0);
  8. Begin
  9.         If(Day != Day[1])
  10.         {
  11.                 barCnt = 1;
  12.         }Else
  13.         {
  14.                 barCnt = barCnt[1] + 1;
  15.         }
  16.                
  17.         If(daysAgo == 0)
  18.         {
  19.                 return barCnt;
  20.         }Else
  21.         {
  22.                 For i = 1 To daysAgo
  23.                 {
  24.                         If( i == 1)
  25.                         {       
  26.                                 j = 0;
  27.                         }Else
  28.                         {
  29.                                 j = j + BarCnt[j];                               
  30.                         }
  31.                         If (j > CurrentBar ) Return InvalidNumeric;
  32.                         nIndex = nIndex + BarCnt[j];
  33.                 }
  34.                 Return nIndex;
  35.         }
  36. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2008-8-27 12:34:55 |显示全部楼层
测试指标:

  1. Params
  2.         Numeric Length(3);
  3. Vars
  4.         Numeric MyIndex;
  5. Begin
  6.         MyIndex = BarIndexOfnDays(Length);
  7.         If(MyIndex!=InvalidNumeric)
  8.         {
  9.                 PlotNumeric("HighValuer",Highest(High,MyIndex));
  10.                 PlotNumeric("HighIndex",HighestBar(High,MyIndex));
  11.         }
  12. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2008-8-27 12:35:37 |显示全部楼层
这个函数计算很慢,因为用到大量的循环,特别是日期设置比较长的时候。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2008-8-27 15:10:01 |显示全部楼层
原帖由 thjyqr 于 2008-8-27 13:09 发表
return barCnt;不是只能用于函数编写吗


这不就是在函数中用嘛

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 06:08

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部