cnjiang 发表于 2018-9-2 16:08:28

公式编译时的bug

本帖最后由 cnjiang 于 2018-9-2 16:17 编辑

如果自编的函数名称首字符为下划线_xx,公式引用函数时编译报错:“函数【xx】没有被声明”,如果把函数名称下划线去掉,编译能成功。

程序文件:TradeBlazer.exe
软件名称:交易开拓者平台
版本:  5.5.4.3
更新:  2018-08-09

文件名:BarEx.dll
版本:  5.5.4.3
更新:  2018-08-09

文件名:BaseCtrl.dll
版本:  5.5.0.0
更新:  2018-07-03

文件名:DataFeed.dll
版本:  5.5.4.3
更新:  2018-08-09

在tbplus8.0 ( 8.1.5.0) 编译成功

hlp0410 发表于 2018-9-3 10:23:56

公式名称不能出现字母、数字、下划线以外的其他字符;

cnjiang 发表于 2018-9-3 20:12:33

hlp0410 发表于 2018-9-3 10:23 static/image/common/back.gif
公式名称不能出现字母、数字、下划线以外的其他字符;

没出现其它字符啊,就是下划线加字母;老版本的TB、TBPlus都能正确编译下划线开始函数_xx,新版本不行了是BUG么

hlp0410 发表于 2018-9-4 08:42:48

cnjiang 发表于 2018-9-3 20:12 static/image/common/back.gif
没出现其它字符啊,就是下划线加字母;老版本的TB、TBPlus都能正确编译下划线开始函数_xx,新版本不行了是 ...

我这边试过5543的版本上下划线开头的公式和用户函数都是可以正常编译的
您试试将公式名称重新输入

cnjiang 发表于 2018-9-11 18:35:10

编写带下划线的函数_test1,编写公式mytest1调用函数_test1,结果报错函数没有被声明

//------------------------------------------------------------------------
// 简称: _test1
// 名称: test1
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------

Params
        Numeric Price(10);
Vars
        Numeric Num;
Begin
        Num = Price + Close;
        Return Num;
End

//------------------------------------------------------------------------
// 编译版本        GS2015.12.25



//------------------------------------------------------------------------
// 简称: mytest1
// 名称:
// 类别: 公式应用
// 类型: 用户应用
//------------------------------------------------------------------------

Params


Vars
        NumericSeries Line1;

Begin
        Line1 = _test1(10);

        PlotNumeric("Line1",Line1);


End

----------------------------------------------------

函数没有被声明
页: [1]
查看完整版本: 公式编译时的bug