查看: 3209|回复: 17
打印 上一主题 下一主题

[其它] 一些易盛函数的误区,只发现这些,其他的慢慢来

[复制链接]
跳转到指定楼层
1
发表于 2012-5-24 19:01:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先是
1.currentbar,本意“当前公式应用商品当前Bar的索引值,第一个Bar返回值为0,以下其他Bar递增 ”请不要理解为从当天开始,这是从品种上市之日起计算,我不知道设计的时候怎么考虑的,但是希望大家不要有无去。如果要用今天的第一个算起,就用 BarsSinceToday;

2.HighestFC,本意“该函数计算指定周期内的数值型序列值的最高值,返回值为浮点数。” 不要用来计算N周期内最高值,如果计算用 Highest;

评分

1

查看全部评分






2
发表于 2012-5-24 21:14:53 | 只看该作者
不懂帮顶
3
发表于 2012-5-24 22:12:50 | 只看该作者
{:soso_e113:}
4
发表于 2012-5-24 22:41:49 | 只看该作者
{:soso_e181:}楼主是编程方面的高手
5
发表于 2012-5-25 12:02:38 | 只看该作者
//--------------------------------------------------------------
// 简称: HighestFC
// 名称: 快速计算最高
// 类型: 用户函数
// 输出: Numeric
//--------------------------------------------------------------
Params
        NumericSeries Price(1);
        Numeric Length(10);
Vars
        Numeric HighestValue;
        Numeric ExtremesBar;
Begin
        HighestValue = Extremes(Price, Length, True, ExtremesBar);       
        Return HighestValue;
End
6
发表于 2012-5-25 12:02:49 | 只看该作者
//--------------------------------------------------------------
// 简称: Extremes
// 名称: 求极值
// 类型: 用户函数
// 输出: Numeric
//--------------------------------------------------------------
Params
        NumericSeries Price;
        Numeric Length;
        Bool bMax;       
        NumericRef ExtremeBar;       
Vars
        NumericSeries MyVal;
        NumericSeries MyBar;
        Numeric i;
Begin
        MyVal = Price;
        MyBar = 0;
       
        If ( CurrentBar <= Length - 1 || MyBar[1] == Length - 1)
        {
                for i = 1 to Length - 1
                {
                        If (bMax )
                        {
                                If ( Price[i] > MyVal)
                                {
                                        MyVal = Price[i];
                                        MyBar = i;
                                }
                        }Else
                        {
                                If ( Price[i] < MyVal)
                                {
                                        MyVal = Price[i];
                                        MyBar = i;
                                }
                        }
                }       
        }Else
        {
                If ( bMax )
                {
                        If ( Price >= MyVal[1])
                        {
                                MyVal = Price;
                                MyBar = 0;
                        }Else
                        {
                                MyVal = MyVal[1];
                                MyBar = MyBar[1] + 1;
                        }
                }Else
                {
                        If ( Price <= MyVal[1])
                        {
                                MyVal = Price;
                                MyBar = 0;
                        }Else
                        {
                                MyVal = MyVal[1];
                                MyBar = MyBar[1] + 1;
                        }
                }
        }       
        ExtremeBar = MyBar;
        Return MyVal;
End
7
发表于 2012-5-25 12:03:08 | 只看该作者
//--------------------------------------------------------------
// 简称: Highest
// 名称: 求最高
// 类型: 用户函数
// 输出: Numeric
//--------------------------------------------------------------
Params
        NumericSeries Price(0);
        Numeric Length(5);
Vars
        Numeric HighestValue;
        Numeric i;
Begin                       
        HighestValue = Price;               
        for i=1 to Length - 1
    {
                If(Price[i] > HighestValue)
                        HighestValue = Price[i];
        }
        Return HighestValue;
End
8
发表于 2012-5-25 12:03:53 | 只看该作者
这两个函数的作用是不一样的
9
发表于 2012-5-25 12:05:15 | 只看该作者
Highest用于数值计算比较简单

点评

但是,我看见两个函数的说明和用法一样,但是我在实践中使用两个函数来计算,N周期内的最高值highest(H,N)是正确的,但是highestFC(H,N),计算出来的是错误的。  发表于 2012-5-25 12:40
嗯  发表于 2012-5-25 12:38
10
发表于 2012-5-25 15:08:07 | 只看该作者
初级炒单 发表于 2012-5-25 12:05
Highest用于数值计算比较简单

一个的参数是序列
一个的参数是数组

HighestFC主要是在图表上用的
Highest是纯数组计算

点评

嗯,看来是没有用对前者,不过highest已经可以满足使用了  发表于 2012-5-25 15:43

评分

1

查看全部评分

11
发表于 2012-5-29 13:47:05 | 只看该作者
HigestFC和Highest都是计算N周期的最高值。功能相同。但是HigestFC的算法效率高,执行速度快,所以叫做xxxxFC,FC就是(Fast Caluate快速计算的意思)。
HigestFC函数以前版本曾经有Bug,所以计算结果和Highest不一致,但该Bug已经修改,可能你的客户端版本较低,到www.esunny.com.cn下载最新版本试试

点评

了解了  发表于 2012-5-29 15:14
12
发表于 2012-5-31 14:12:43 | 只看该作者
经过测试,HighestFC确实有点问题。已经修复了。最近两天会部署到升级服务器上,谢谢批评指正

点评

嗯  发表于 2012-5-31 14:49
13
发表于 2012-6-10 08:57:49 | 只看该作者
{:soso_e163:}
14
发表于 2012-6-27 11:47:42 | 只看该作者
{:soso_e100:}
15
发表于 2012-7-2 15:13:21 | 只看该作者
学习!消化ing,新手,记得头发晕
16
发表于 2013-5-13 15:29:57 | 只看该作者
来学习的~~~楼主辛苦了!
17
发表于 2013-6-21 13:06:19 | 只看该作者
学习了,谢谢!
18
发表于 2014-7-29 13:34:56 | 只看该作者
楼主是高手
回复 支持 反对

使用道具 举报

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

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号