开拓者期货期权程序化系统交易论坛

标题: 编写10日最高价公式时候出错 [打印本页]

作者: hoppin    时间: 2013-3-30 23:28:52     标题: 编写10日最高价公式时候出错

Vars
        Numeric i;
        Numeric HHV;
Begin
    For i=1 To 9
        {
          HHV=Max(H,H[i]);
        }
        Return HHV;
        FileAppend("G:\\HHH.LOG",TEXT(HHV));
End

然后测试保存时显示说
“Return语句的返回值类型与公式定义的返回值类型不符”,想请问是怎么回事啊?谢谢!
作者: bahuang    时间: 2013-3-31 01:53:37

本帖最后由 bahuang 于 2013-3-31 02:30 编辑

新建函数时没选数值返回型
并且你这个输出的是往前数第10天和今天之中的一个最高价
直接等于max(h,h[9])
这么写

Begin
    HHV=H;
    For i=1 To 9
        {
          HHV=Max(HHV,H);
        }
        Return HHV;
        FileAppend("G:\\HHH.LOG",TEXT(HHV));
End
作者: bahuang    时间: 2013-3-31 02:33:07

我擦 大半夜灵异事件啊
我写HHV=Max(HHV,H[1]);
检查了好几遍,就是显示 HHV=Max(HHV,H);还是斜体的

作者: hoppin    时间: 2013-3-31 09:11:43

本帖最后由 hoppin 于 2013-3-31 09:15 编辑
bahuang 发表于 2013-3-31 02:33
我擦 大半夜灵异事件啊
我写HHV=Max(HHV,H[1]);
检查了好几遍,就是显示 HHV=Max(HHV,H);还是斜体的


谢谢你的辛苦回复!
我是新手,仔细看了你的回答,就想知道我的写法
For i=1 To 9
        {
          HHV=Max(H,H(i));
        }
        Return HHV;
这段,不是H(i)会自动从1循环到9吗,为什么你说直接等于max(h,h[9])呢?
被迫写H(i)这种写法,你懂得,我正常打字也被抽了,郁闷


作者: bahuang    时间: 2013-3-31 09:55:07

按照i从1到9执行一遍
当i=1
hhv=max(h,h【1】);
hhv取h,和h【1】最高价
当i=2
hhv又被赋值取h,h【2】最高
i=9取的就是h,h【9】的最高 是最终值
作者: hoppin    时间: 2013-3-31 10:46:18

bahuang 发表于 2013-3-31 09:55
按照i从1到9执行一遍
当i=1
hhv=max(h,h【1】);

谢谢这个看懂了,那请问你说的“新建函数时没选数值返回型”是什么回事?我新建用户函数或者公式时候,没有看到这个选项呀。。。
作者: bahuang    时间: 2013-3-31 10:58:16

新建函数--数值模板--数值型
你是为了学习研究还是为用?
TB自带求N天最高价函数,highest

作者: hoppin    时间: 2013-3-31 11:08:14

bahuang 发表于 2013-3-31 10:58
新建函数--数值模板--数值型
你是为了学习研究还是为用?
TB自带求N天最高价函数,highest

是为了研究的。我是在新建公式应用里面输入的,因为要用到FileAppend函数。不过新建里面模板只分为技术分析和交易策略,没有你说的数值型(我知道,你用的是用户函数,可是我如果直接在新建公式应用里面写,应该也是一样的是吧)




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2