设为首页收藏本站

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

编写了一个布尔型IIFBool自定义函数,但编译时出错 [复制链接]

Rank: 1

精华
0
UID
115519
积分
41
帖子
19
主题
11
阅读权限
10
注册时间
2013-2-13
最后登录
2020-5-22
跳转到指定楼层
1#
发表于 2020-5-20 17:21:57 |显示全部楼层 |倒序浏览
本帖最后由 tygk 于 2020-5-20 17:24 编辑

Vars
    BoolSeries a;
    BoolSeries b;
    BoolSeries c;
       
Begin
    if(a) {Return b;} else {Return c;}
End


编译时提示:
Return语句的返回值类型与公式定义的返回值类型不符。

这是什么原因?如何改进使其通过编译?

Rank: 1

精华
0
UID
115519
积分
41
帖子
19
主题
11
阅读权限
10
注册时间
2013-2-13
最后登录
2020-5-22
2#
发表于 2020-5-21 13:06:07 |显示全部楼层
Yuen_Lee 发表于 2020-5-21 12:51
返回值应是Bool型,不能为BoolSeries。要想得到b,c的返回值,可使用BoolRef b,c来定义。 ...

改为:

Vars
    Bool a;
        BoolRef b;
        BoolRef c;
       
Begin
    if(a) {Return b;} else {Return c;}
End

编译时,提示错误:无法识别的字符串:BoolRef

这是什么原因?

使用道具 举报

Rank: 1

精华
0
UID
115519
积分
41
帖子
19
主题
11
阅读权限
10
注册时间
2013-2-13
最后登录
2020-5-22
3#
发表于 2020-5-21 13:07:35 |显示全部楼层
Yuen_Lee 发表于 2020-5-21 12:51
返回值应是Bool型,不能为BoolSeries。要想得到b,c的返回值,可使用BoolRef b,c来定义。 ...

改为:

Vars
    Bool a;
        BoolRef b;
        BoolRef c;
       
Begin
    if(a) {Return b;} else {Return c;}
End

编译时,提示错误:无法识别的字符串:BoolRef

这是什么原因?

使用道具 举报

Rank: 1

精华
0
UID
115519
积分
41
帖子
19
主题
11
阅读权限
10
注册时间
2013-2-13
最后登录
2020-5-22
4#
发表于 2020-5-21 15:24:55 |显示全部楼层
Yuen_Lee 发表于 2020-5-21 13:23
下面这种形式:
Vars
    Bool a;




在实际策略中要用到这样一句:

iif( c>m30 , m30>m30[1] , true ) ;

应如何实现?

使用道具 举报

Rank: 1

精华
0
UID
115519
积分
41
帖子
19
主题
11
阅读权限
10
注册时间
2013-2-13
最后登录
2020-5-22
5#
发表于 2020-5-22 10:25:39 |显示全部楼层
小米 发表于 2020-5-22 09:56
这样写肯定不对的。。iif不是这样用的。
iifstring("c>30,“true”,“false”);  
if(c>m30,m30>m30[1],t ...

如果价格大于30日均线,则要求30日均线也向上,否则返回真。

在其它软件里,这种iif函数可以轻松实现。而在TB里,怎么也不能实现。说明TB的局限性很大。只好放弃TB软件了。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 12:25

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部