金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 102889

好像PEL调用C++信号不稳定

[复制链接]

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-24 10:33 | 显示全部楼层
老师,我多次测试,测试出来DLL的极限大小基本上是190MB多一点,超过这个大小信号就不稳定;现在我是使用VS2012编译的,如果使用VS2019编译成最新框架,系统自带的那些函数编译后就200M以上(我记得不错的话2012编译出来不到40MB),所以我一直怀疑为什么VS2019编译成64位DLL就无法运行。这个DLL大小的限制是咱们金字塔本身限制的还是WIN10系统限制的呢?如果是咱们这边限制的,希望能修改一下。
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-24 11:11 | 显示全部楼层
上面说错了,190MB应该是190KB;40MB应该是40KB
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-24 22:58 | 显示全部楼层
和大小无关,我这个2015的系统默认那个直接编译出来都350kb了,默认这个5日均线输出都是有的啊。
截图202106242257249031..png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-25 18:46 | 显示全部楼层
老师,那具体原因可真不好找了,我编写的均线类的指标也都是正常的,不过我是另外编译了一个DLL
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-26 13:43 | 显示全部楼层
老师,VS2019编译StockFunc控件件,编译成86的是可以运行的,就是编译成64的不能运行;哪怕编译成32的在旧电脑上也是可以运行的。如果不是DLL大小问题,那就是字节对齐问题,因为想编译成最新框架的64w位DLL,必须手工修改字节对齐属性,但是所有属性都尝试过也不能运行的。
我自己编译的这个DLL,如果不是文件太大的问题,就有可能是else if语句太多了运行不稳定,我把else if 改if运行稳定了一些,我继续修改一下看看还有么有其它问题
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-28 20:00 | 显示全部楼层
老师您好,我每个指标都输出来看为什么会出现前面说的类似信号闪烁一样的问题,发现m3zds3这个周期存在闪烁,当然其它周期也会存在这种现象,所以导致了前面的信号时有时无,我把m3zds3这个信号的代码贴出来,放文本文件里了,请老师帮忙看看为什么会这样。您多次代开K线,变换周期再打开,就会发现m3zds3这个周期,很多时候不是我计算的那个周期,也正是因为这样,所以导致了信号不稳定,我应该怎么修改呢?这个问题已经很久了,我一直无法解决,老师也麻烦了,还请老师帮帮忙吧
捕获2.PNG

新建文本文档.txt

4.21 KB, 下载次数: 1379

回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-28 20:08 | 显示全部楼层
刚才这个图没有传上去,我现在补上,老师可以看到我输出的周期不一样
输出:sy:"JZT10JC@KDKKZQ"(148),NOAXIS;
我同时把完整的输出指标的DLL也附上,下面这些都是输出的周期,上露给出的C++m3zds3源码
m3zds3:="JZT10JC@KDKKZQ"(148);
m3zxx3:="JZT10JC@KDKKZQ"(149);
m3zds45:="JZT10JC@KDKKZQ"(150);
m3zxx45:="JZT10JC@KDKKZQ"(151);
m3zds67:="JZT10JC@KDKKZQ"(152);



补充内容 (2021-6-28 20:29):
老师如果靠我上面的C++代码无法找到问题,明天您可以要求我提交全部代码
捕获1.PNG

Jzt10jc.zip

45.16 KB, 下载次数: 1452

回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-6-28 20:48 | 显示全部楼层
老师您好,我继续测试,所有未发生数据转换的指标输出都不会发生上面的问题,现在我给老师一个均线数据老师可以看到,这个数据无论什么周期无论怎么刷新K线,数据都是固定的。
PEL输出方法:
ma51:"JZT10S@MA51J";
上面出现那种信号的,都是int 转float 输出的。现在的问题是,咱们金字塔接口只能输出float类型,我无法输出其它类型,而我需要的恰恰就是int(或BOOL类型,我为了避免出错,全部改为int类型计算的)。还望老师百忙之中想办法给我解决这个问题吧


补充内容 (2021-6-29 05:50):
ma1:"JZT10S@BZQMA"(5);
ma2:"JZT10S@BZQMA"(10);
ma3:"JZT10S@BZQMA"(20);
这样可以输出三条均线,可以看到有时候均线跟m3zds3计算的周期不一致

jzt10s.zip

32.87 KB, 下载次数: 1447

回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-29 15:06 | 显示全部楼层
编译出来的dll要和金字塔的位数一致。如果编译32位dll一定要在32位金字塔中引用,64位的DLL要在64位金字塔中使用,不能混用。
编译出来的dll也要看看他导出来的函数是否符合c函数的规范。这个要用微软自带的工具DEPENDS查看下。
在金字塔中引用dll公式时有时没的问题比较复杂,一般是由dll内部问题引起的,例如,错误引用内存等问题导致崩溃。建议加异常俘获,写日志等方式确定问题。
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-6-29 15:12 | 显示全部楼层
只要符合金字塔引用规范,都可以被金字塔引用,和dll大小无关
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 19:17 , Processed in 0.181905 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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