以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 后台程序化zig函数出错 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=164504) |
-- 作者:yin8jun -- 发布时间:2018/7/20 10:55:53 -- 后台程序化zig函数出错 后台程序化中用到如下,kd=1加上别的条件时就开多 k3:=10; p1:ref(peak(4,k3,1),1); p2:peak(4,k3,2); p3:peak(4,k3,3); kd:=cross(h,p1); 交易股票,日线,运行200根bar。模拟了几周发现有如下问题: 1,每天在9:30时会错误成交一批股票。用如下输出 if islastbar then begin debugfile(\'D:\\test2\\TEST8.TXT\',NUMTOSTR(currenttime,0)+\' :p1:%.2f\'+stkname,p1); end 发现用的不是p1的价格,而是错误地把p2或者p3当作p1。 2,有时盘中比如10:30也会出现这种情况。 3,有时好几天开盘交易同一只错误的票,但是每次打开该票日线,数据都是全的。 已用股票池把股票刷新范围缩到50只,并且每日盘后下载数据。 请问是什么原因,是数据下载还是zig函数? |
-- 作者:yin8jun -- 发布时间:2018/7/20 10:58:42 -- 用了如下条件限制zig闪烁 t1:=ref(trough(4,k3,1),1);kd2:=h/t1>=1.1
|
-- 作者:无为剑 -- 发布时间:2018/7/20 11:20:19 -- zig函数属于未来函数,你是没法通过ref这种行为来控制闪烁的,这个闪烁与走完k线那种闪烁是不同的概念的 |
-- 作者:yin8jun -- 发布时间:2018/7/20 11:40:24 -- 用h/t1>=1.1防止p1的闪烁啊。问题是9:30时p1不对,其他时候又是对的。 |
-- 作者:yin8jun -- 发布时间:2018/7/20 12:01:02 -- 所以即使p1闪烁也只会闪到最近某个价,不会闪烁到p2,p3。 |
-- 作者:wenarm -- 发布时间:2018/7/20 14:58:11 -- peak函数作为未来函数,你所使用到的该函数的变量都会存在闪的可能, 另外你怎么那么判定使用的一定是p1的值,kd:=cross(h,p1);上面代码中最后一句使用的是p1参与计算.即使计算你错误,也不会用到你说的p2变量。 你自己用bebugfile吧其他的两个变量也抓出来对比。 另外,你上面代码执行过程中,你的判断的开仓错误的依据是什么?和图表k线图中的结果对比的?
|
-- 作者:yin8jun -- 发布时间:2018/7/23 16:21:16 -- 我对照了错误下单时的debugfile出来的p1值。发现要么是图表上的p2, 要么是图表上的p3。 |
-- 作者:yin8jun -- 发布时间:2018/7/23 16:26:40 -- 2018-07-23 09:30:13.575 93013 :p1:3.66红豆股份 2018-07-23 09:32:15.408 93215 :p1:9.48创意信息 2018-07-23 11:12:15.174 111215 :p1:9.48创意信息
|
-- 作者:yin8jun -- 发布时间:2018/7/23 16:27:20 -- 上面是今天两只票的错误p1值 |
-- 作者:FireScript -- 发布时间:2018/7/23 16:44:54 -- 你是拿后台输出的值是和图表对比了?这个函数计算是会受到计算起点影响的。你图表上计算的起点很可能和后台输出时的情况完全不一样。 |