设为首页收藏本站

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

此函数应如何修改才能取得正确梁效果? [复制链接]

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
跳转到指定楼层
1#
发表于 2008-5-30 14:33:28 |只看该作者 |倒序浏览
// 简称: hhv
// 名称: 求N周期的最高值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
   NumericSeries Price(0);
   Numeric Length(5);
Vars
   Numeric highestValue(0);
   Numeric minDay;
   Numeric i;
Begin
   minDay = Min(CurrentBar,Length-1);
   for i=0 to minDay
   {
           highestValue=Max(highestValue,Price);
   }
   Return highestValue;
End
//------------------------------------------------------------------------




验证技术指标如下:
//------------------------------------------------------------------------
// 简称: yyxb
// 名称: 试试试
// 类别: 技术指标
// 类型: 振荡类
// 输出:数值型
//------------------------------------------------------------------------
Vars
Numeric aaa;
Begin
   aaa = hhv(high,5);
   FileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的5日最高价等于");
   FileAppend("c:\\a.log",Text(aaa));
End
//------------------------------------------------------------------------

下面是强麦(WS809)最近10日的公式使用结果,但完全不是正确的结果。
2008年5月19日的5日最高价等于
2038
2008年5月20日的5日最高价等于
2032
2008年5月21日的5日最高价等于
2033
2008年5月22日的5日最高价等于
1973
2008年5月23日的5日最高价等于
1948
2008年5月26日的5日最高价等于
1962
2008年5月27日的5日最高价等于
1971
2008年5月28日的5日最高价等于
1975
2008年5月29日的5日最高价等于
1969
2008年5月30日的5日最高价等于
1957

正确结果应是:
2008年5月19日的5日最高价等于
2038
2008年5月20日的5日最高价等于
2038
2008年5月21日的5日最高价等于
2038
2008年5月22日的5日最高价等于
2038
2008年5月23日的5日最高价等于
2038
2008年5月26日的5日最高价等于
2033
2008年5月27日的5日最高价等于
2033
2008年5月28日的5日最高价等于
1975
2008年5月29日的5日最高价等于
1975
2008年5月30日的5日最高价等于
1975

请问应如何修改?

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2008-5-30 16:10:27 |只看该作者
请直接使用Highest,不需要用HHV

使用道具 举报

Rank: 1

精华
0
UID
1690
积分
33
帖子
6
主题
0
阅读权限
10
注册时间
2008-5-30
最后登录
2008-7-18
3#
发表于 2008-5-30 17:16:28 |只看该作者
我也试了下Highest可得到准确的,但怎样只记录今天向后数5日内的,而前面的那些不需要

我看了下A.LOG,记录从三月四日开始,一直到今日

使用道具 举报

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
4#
发表于 2008-5-30 20:52:09 |只看该作者
原帖由 nopain 于 2008-5-30 16:10 发表
请直接使用Highest,不需要用HHV


谢谢!使用Highest可以达到我所需要的结果。

但是为提高BT编程水平,我想请教上面的函数公式错在那里?应如何修改?

使用道具 举报

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
5#
发表于 2008-5-30 21:14:49 |只看该作者
已解决,修改如下:
// 简称: hhv
// 名称: 求N周期的最高值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
   NumericSeries Price(0);
   Numeric Length(5);
Vars
   Numeric highestValue(0);
   Numeric minDay;
   Numeric i;
Begin
   minDay = Min(CurrentBar,Length-1);
   for i=0 to minDay
   {
           highestValue=Max(highestValue,Price[ i ]);
   }
   Return highestValue;
End
//------------------------------------------------------------------------

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2008-5-31 12:53:53 |只看该作者
因为里面的代码被论坛给强行转化了,就是斜体的部分。
  Price[ i ] 被转化成Price

使用道具 举报

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

bottom

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

GMT+8, 2024-5-21 12:30

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部