以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- dll计算准确性 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=15478) |
|||||||||||||||||||||||||||||||||||||||
-- 作者:方文潮 -- 发布时间:2012/8/27 22:08:25 -- dll计算准确性 计算股指1M周期上的5日收盘价均线,用DLL算的跟直接ma(c,5)算的结果不完全一致,
具体看上面第2列和第3列的数据。请问为什么有这样的差距 ![]() |
|||||||||||||||||||||||||||||||||||||||
-- 作者:王锋 -- 发布时间:2012/8/27 22:23:31 -- 小数浮点上的计算误差,你都改成DOUBLE模式的浮点数,应该就一样了 |
|||||||||||||||||||||||||||||||||||||||
-- 作者:方文潮 -- 发布时间:2012/8/28 15:39:22 -- 是把头文件StockFunc.h里的float定义改成double定义吗?我这样试了下,出现的结果差距更大或者是编译的dll金字塔识别不了。 |
|||||||||||||||||||||||||||||||||||||||
-- 作者:王锋 -- 发布时间:2012/8/28 16:43:30 -- 不是让你改头文件结构,而是让你将中间的计算变量,改成DOUBLE试试,浮点数的计算误差每台计算机都存在,这是基本的程序员应该都知道的 |
|||||||||||||||||||||||||||||||||||||||
-- 作者:方文潮 -- 发布时间:2012/8/28 20:35:33 -- 中间变量改成double型的依然有误差!我知道有浮点运算会产生误差,但我是用同一台机子dll(5日收盘价均线)与ma(c,5)来测试的,差距在小数点第4、5位, 那这个差距就很大了,因为金字塔定义的float类型的误差在小数点第7位,用这样的dll编成对应的模型会导致开平仓点的不同。这个差距是不是还有其他的 原因呢?
|