以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- [求助]黄金的报价小数点后第五位总有误差导致信号出问题~ (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=167085) |
-- 作者:bbking -- 发布时间:2018/12/14 9:57:25 -- [求助]黄金的报价小数点后第五位总有误差导致信号出问题~ 2018-12-14 09:30:16.937 xn=280.85001 2018-12-14 09:30:16.937 hold=1.00000 2018-12-14 09:30:16.937 numbertrade=1.00000 2018-12-14 09:30:16.937 bkl=280.89999 2018-12-14 09:30:16.937 skl=280.29999 2018-12-14 09:30:16.937 price=280.85000 这是黄金的debugout一些结果~ 小数点后第五位造成了我信号的误差~应该怎么解决?
[此贴子已经被作者于2018/12/14 9:57:45编辑过]
|
-- 作者:bbking -- 发布时间:2018/12/14 10:05:08 -- 我感觉这个数值是随机在我指标上加减0.00001~导致信号不是大于就是小于~根本没法相等~本来没触发的信号变成了触发~ 几年前问过你们~说是浮点小数误差~当时我还在交易股指~这个东西影响不是太大~ 但现在交易黄金了~发现这东西频繁造成信号误差根本无法忽略
|
-- 作者:bbking -- 发布时间:2018/12/14 10:07:24 -- 这是后台DEBUGFILE出来的数据~ 图表上加载shift+q根本看不出来问题~
|
-- 作者:banzhuan -- 发布时间:2018/12/14 10:09:11 -- 因为从交易所过来的行情数据本来就带有小数位的,您保留2位小数试试呢,看下信号是否会产生偏差 |
-- 作者:bbking -- 发布时间:2018/12/14 10:15:00 -- 那等于我所有价格数据都得intpart(dynainfo(7)*100)/100这样操作了 |
-- 作者:bbking -- 发布时间:2018/12/14 10:27:25 -- 股指小数点后是一位数 黄金是两位数 债券是三位数 全部都有误差~ |
-- 作者:banzhuan -- 发布时间:2018/12/14 10:40:44 -- 这个只能用函数调整一下了,没办法 |
-- 作者:bbking -- 发布时间:2018/12/14 13:39:14 -- xn:=dynainfo(7); //--------后台调试部分 FILEPATH:=\'C:\\debug\\\'&str1&\'.TXT\'; DEBUGFILE(FILEPATH,\'=======\',0); //--------动态函数~orderbook DEBUGFILE(FILEPATH,\'xn=%.5f\',xn); DEBUGFILE(FILEPATH,\'xn1=%.5f\',round(xn*10000)/10000); 你们试试上面的调试代码吧~if1812 t1903 au1906几个合约上~ xn1还是有误差~消除不了~你们是否还有其他办法? |
-- 作者:banzhuan -- 发布时间:2018/12/14 13:44:16 -- 您试试下面的方法 xn:dynainfo(7),PRECISION2;//保留2位小数 xn:dynainfo(7),PRECISION3;//保留3位小数 或者 xn:ROUNDS(dynainfo(7),3 ); [此贴子已经被作者于2018/12/14 13:45:55编辑过]
|
-- 作者:bbking -- 发布时间:2018/12/14 13:49:07 -- 没用~麻烦你帮忙一起调试一下看看能否找到合适的解决方案 |