金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2194|回复: 6

有没有更好的办法解决c++的if语句嵌套太深

[复制链接]

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
发表于 2021-6-21 11:48 | 显示全部楼层 |阅读模式
老师您好:
如图所示,我C++代码里面需要多个if嵌套计算开仓,大约几百个到上千个语句吧,导致if嵌套太深C++无法编译,我按图上方法解决了,但是感觉这样解决运行速度可能会降低,有没有更好的办法解决这个问题呢?序列模式输出开平仓信号。


补充内容 (2021-6-21 11:50):
上面图上的那行绿字说错了,我还是编译成了一个DLL,只是下面开始了一个新的if语句,图上比较清楚,我不大会表达
捕获.PNG
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-21 14:00 | 显示全部楼层
请稍等,这边咨询下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-21 16:09 | 显示全部楼层
替代goto的方法是是使用do{.........}while (FALSE).中间如果达到条件需要使用goto时,用break;代替。把原来放到goto标志处的代码放到while(false)之后
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-21 16:13 | 显示全部楼层
本帖最后由 资深技术05 于 2021-6-21 16:29 编辑

减少if嵌套是逻辑问题,需要整理下思路,看有没有更简洁的表述方式.比如采用分类和封装的方式。用到成百上千的逻辑判断十分容易出现错误。
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-21 18:41 | 显示全部楼层
谢谢老师指点。我这个可能只能使用if了。是这样的,我所有开仓信号(开多开空包括个别处理等)使用了同一个数组,这样节约内存,其它的方案也考虑过,如果使用多个数组那是可以解决问题的,只是那样内存会很大。
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-22 17:08 | 显示全部楼层
嗯嗯,写程序尽量简单,不要复杂,越复杂越容易出错,能用一个数组不要用两个。根据你的表述我感觉你的判断分支真是太多了,一定要想办法简化。
我说的分类和封装的含义是把同一类的判断可以写成一个函数,可以把你的数组作为参数传递进去,简化判断。
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-22 18:56 | 显示全部楼层
谢谢老师关心指导,我每行都是一个单独的开仓或平仓逻辑,每上下相邻二行都可以单独成为一个策略,最多上下4行的逻辑是关联的。所以无论有多少行,都不会有逻辑紊乱。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 13:19 , Processed in 0.177728 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表