全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
关于分支条件判断语句结构与执行效率的问题
2021-10-25 20:36

第一种判断结构

If(B1 && B2 && B3)  //开多判断
{
}
If(B4 && B5 && B6)  //开空判断
{
}
If(BB1 && BB2 && BB3)  //止损与平多判断
{
}
If(BB4 && BB5 && BB6)  //止损与平空判断
{
}

 

第二种判断结构

If(B1 && B2 && B3)  //开多判断
{
}Else IF(B4 && B5 && B6)  //开空判断
{
}
If(BB1 && BB2 && BB3)  //止损和平多判断
{
}Else IF(BB4 && BB5 && BB6)  //止损与平空判断
{
}

按理说,第二种分支结构执行效率会更高,但实际测试中,两种结构所需时间并无太大差别,甚至第一种耗时还稍微短一点。

下图是在hc888合约做参数优化所需时间的对比(其它所有设置都一样,就是代码里的分支判断结构有所不同,)

那么怎么才能更加明确直观的看到这两种分支结构导致的效率差别呢?

cai446449

可以在代码的首尾输出系统时间,,然后做一个相减操作然后输出,可以看看代码运行了多长时间,不过如果不是太多代码应该差别不大的

2021-10-26 09:05
JLPZ_WXKJ
@cai446449

CurrentTime函数输出的时间颗粒度只能精确到秒

策略代码总共只有100行不到,实际测试后发现代码首行输出的时间与代码末行输出的时间完全没有差别。

怎么输出颗粒度更细的系统时间呢?

2021-10-26 20:04
tblaocai
@JLPZ_WXKJ

后面版本会支持毫秒

2021-10-26 22:29
zc99617224
@tblaocai

俺也在等毫秒yes

2021-10-27 15:15
您未登录,请先 登录注册 后发表评论
顶部