以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
你是拿后台输出的值是和图表对比了?这个函数计算是会受到计算起点影响的。你图表上计算的起点很可能和后台输出时的情况完全不一样。