公式编译时的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 static/image/common/back.gif
公式名称不能出现字母、数字、下划线以外的其他字符;
没出现其它字符啊,就是下划线加字母;老版本的TB、TBPlus都能正确编译下划线开始函数_xx,新版本不行了是BUG么 cnjiang 发表于 2018-9-3 20:12 static/image/common/back.gif
没出现其它字符啊,就是下划线加字母;老版本的TB、TBPlus都能正确编译下划线开始函数_xx,新版本不行了是 ...
我这边试过5543的版本上下划线开头的公式和用户函数都是可以正常编译的
您试试将公式名称重新输入 编写带下划线的函数_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]