金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 102889

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

[复制链接]

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-1 13:10 | 显示全部楼层
老师,这个就是上面代码生成的DLL,我刚才忘记上传了,可以看到均线也是不稳定的,就不用写周期测试了


补充内容 (2021-7-1 13:24):
老师一个月前,您在这个帖子里面告诉我的上面的定义方法请老师帮忙看看为什么C++这样写金字塔会自动关闭
https://www.weistock.com/bbs/forum.php?mod=viewthread&tid=159
(出处: 金字塔决策交易系统)

StockFunc.zip

34.64 KB, 下载次数: 2490

回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-1 15:14 | 显示全部楼层
老师不好意思,前面粘贴到网页上的代码丢失了[i]我这里放文本文件里再传给您,那个编译好的DLL是对的

新建文本文档.txt

3.29 KB, 下载次数: 2343

回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-1 15:27 | 显示全部楼层
老师您看看,我刷新K线得到不同的结果
捕获0.PNG
捕获1.PNG
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-7-2 11:17 | 显示全部楼层
这最后一个txt里面的编译出来这样,没看到是有啥问题啊
截图202107021117129234..png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-3 16:00 | 显示全部楼层
老师您好,这个线确实是有问题的,不断变换品种或周期,或者变换加载K线数量,可以看到有时候只有一根均线有数据,有时候2根,有时候3根数据都正常。所以信号还是不稳定的。
昨天我又测试了一天,知道怎么解决了。就是不能用数组解决,不使用数组一切都解决了。使用可以随机提取任意位置的变量或容器都可以。
谢谢老师了。

补充内容 (2021-7-3 16:22):
这个问题应该有可能是这样:指定大小的数组或链表,它需要不断去开辟一块新的连续内存并且把前面的较小内存空间的数据复制到比较大的内存块里面,在复制的过程中丢失了数据(有可能是被其它较小的内存块给占用了.

补充内容 (2021-7-3 16:25):
也就是说,只要是可以加下标的数组或链表,都会出现同类错误——容器不会出现错误,但是内存占用比较多,最好不用容器。

补充内容 (2021-7-4 09:05):
老师,因为我程序需要提取前面周期数据,还是有问题,等等发老师看看吧
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-4 09:10 | 显示全部楼层
老师您辛苦了。我使用文本文件里的方法,可以实现信号不闪烁,但是我怎么也无法在C++里面得到前面周期的数据,麻烦老师指导一下吧,先谢谢了。
这里我使用最简单的数据收盘价,如果采用这个*yxzq输出上周期收盘价,也就是我赋给这个yxzq当前周期和前面周期数据,然后我想在C++里面实现从yxzq里面得到前面周期数据,应该怎么办呢?


补充内容 (2021-7-4 09:13):
麻烦老师给一段代码吧,这里我确实不会

补充内容 (2021-7-4 09:16):
我不大会表述,我的意思是怎么得到yxzq里面的前面周期的数据

补充内容 (2021-7-4 09:18):
我不是要*yxzq=pData->m_pData[i-1].m_fClose;这种写法,我是要*yxzq=pData->m_pData.m_fClose;这样赋值完成以后再从yxzq里面提取前面数据

补充内容 (2021-7-4 14:13):
老师,我不清楚我这样做那个new有没有把指针连接起来形成一个连续的指针链表,因为我使用指针加减1操作无法得到前面的数据,请老师分析一下吧

新建文本文档.txt

602 Bytes, 下载次数: 3579

回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-5 07:44 | 显示全部楼层
老师:      您看看我使用附件这样循环,也没有捕捉到yxzq的前面数据;我使用*(yxzq-3)这种也不能捕捉到前面的数据;这个yxzq没有下标,但是它好像支持下标,只是下标也不能得到有效数据;是不是意味着我这样仅仅是得到了一个单个的float数据呢?
      另外,我测试了C++的6个容器。使用容器的情况下,只要你给容器进行了类似float a new float[pData->m_nNumData+1]初始赋值,就会出现前面使用new数组同样的错误,要么金字塔自动关闭,要么数据不稳定;但是,使用容器情况下,不给容器大小赋初值,容器数据就是稳定的,并且支持下标操作获得前面数据。
     综合以上二点,我想咱们一定有一个办法可以在金字塔不自动关闭、数据稳定情况下获得对计算得到的数据的随机取值,也就是随机取前面第N个K线的数据,只是还没有想到好的办法。直接使用容器的话内存比自己定义的会大不少。希望老师帮忙想想办法吧。



补充内容 (2021-7-5 07:50):
更正:float a new float[pData->m_nNumData+1]初始赋值应该是:float a =new float[pData->m_nNumData+1]初始赋值

新建文本文档.txt

646 Bytes, 下载次数: 3707

回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-7-5 09:12 | 显示全部楼层
dll相关开发,这边要开发有时间时候帮您看看了
如果目前您问题已经搞定,只是自己相关用法不明白为何有问题的话,等等空了联系这边专人看下了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2021-7-5 09:40 | 显示全部楼层
谢谢老师,等有时间了帮我看看吧。我使用容器是可以搞定,只是想搞得更好一些
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 13:46 , Processed in 0.247474 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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