以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 高级功能研发区 (http://222.73.7.161/bbs/list.asp?boardid=5) ---- PEL数据库操作问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=175442) |
-- 作者:分析者 -- 发布时间:2020/4/9 22:30:42 -- PEL数据库操作问题 请问,如下PEL语句在语法上应该没问题,但是,为何只有最后一条else if DATATYPE=4 后面的语句才可以正确执行,而如果把这条删除,则else if DATATYPE=6 then后面的也可以正确执行,反正就是只能正确执行最后一条else if 语句
|
-- 作者:yukizzc -- 发布时间:2020/4/10 9:14:54 -- 你在每个if里面加上一个不同的debugfile,看下是否有执行 |
-- 作者:分析者 -- 发布时间:2020/4/10 14:40:21 -- 回复:(yukizzc)你在每个if里面加上一个不同的debug... 老师,按照您说的方法测试了,发现应该执行的代码是执行了的,不应该执行的代码没有执行,但就是读取出的数据不正确,只要不用IF语句,只写一条读数据库语句就是正确的。 |
-- 作者:分析者 -- 发布时间:2020/4/10 16:08:39 -- 老师,可否尽快帮我分析解决下吧,我着急推进哦,谢谢! |
-- 作者:分析者 -- 发布时间:2020/4/11 11:41:11 -- 老师,这个问题能答复吗? |
-- 作者:无为剑 -- 发布时间:2020/4/11 12:26:25 -- DBTABLE在你的公式中只能使用一条的,没法像你这样使用的。 你这个需求PEL是无法满足的,建议你改用VBA
|
-- 作者:分析者 -- 发布时间:2020/4/12 10:36:47 -- 回复:(无为剑)DBTABLE在你的公式中只能使用一条的,... 金字塔指导老师好,你们可否优化一下这点呢?我发现其实是IF语句的问题,不该执行的代码执行了。 我用了个折衷的土办法解决了,同时写多个指标,都叠加到图上,每个指标仅限在某个周期下显示,方法很土,反正凑合用。 但,如果金字塔优化IF语句就好了
|
-- 作者:分析者 -- 发布时间:2020/4/12 10:43:24 -- if DATATYPE!=4 THEN exit; if DATATYPE=4 then BEGIN WARNING_DISABLE:4 ; runmode:1;//序列模式 DATABASE(\'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\JZTdb1.mdb\'); DBREADTYPE(1); DBTABLE(\'Select * From @Code@ Order By StockDate\') ; 收盘价:DBVALUE(\'stockclose\'); end 例如上述代码,不论在任何周期,计算其他语句没有执行,但数据库语句都是执行了的,这个金字塔PEL语句的BUG
|
-- 作者:无为剑 -- 发布时间:2020/4/12 15:04:20 -- 这不是BUG,是数据库的 DATABASE(\'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\JZTdb1.mdb\'); DBTABLE(\'Select * From @Code@ Order By StockDate\') ; 在你的公式编译时就已经内置到PEL中了,这2个语句是不会通过公式运行来改变加载的,你不可以将这2个当作函数来用,你就理解为2个设置就行了。 金字塔这么设计的原则是PEL作为基础语言给大家使用,简单实用是PEL的设计原则
|
-- 作者:分析者 -- 发布时间:2020/4/13 9:20:29 -- 金字塔可以优化这点吗?我现在要写至少5个PEL指标同时加载,确实麻烦,也不美观,而这个需求也是重要的,建议能尽快优化。 |