以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 后台测试的一个问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=162102) |
-- 作者:yin8jun -- 发布时间:2018/3/15 15:10:31 -- 后台测试的一个问题 后台测试鲁西化工,中国平安,金禾实业,发现zg值在三个票里不变,这是怎么回事?代码如下: zg:=zig(4,20); refzg1:=ref(zg,1); refzg2:=ref(zg,2); d1dian:=zg<refzg1 and refzg1>refzg2,noaxis; d0bars:=barslast(d1dian)+1; d0:=ref(refzg1,d0bars-1); d1:=if(sum(l/d0<=0.8,d0bars)=0,ref(d0,d0bars+1),d0); if islastbar then begin debugfile(\'D:\\test2\\TEST.TXT\',NUMTOSTR(YEAR*10000+MONTH*100+DAY,0)+\' :d1:%.2f\',d1); debugfile(\'D:\\test2\\TEST.TXT\',NUMTOSTR(YEAR*10000+MONTH*100+DAY,0)+\' :zg:%.2f\',zg); debugfile(\'D:\\test2\\TEST.TXT\',NUMTOSTR(YEAR*10000+MONTH*100+DAY,0)+\' :d0:%.2f\',d0); debugfile(\'D:\\test2\\TEST.TXT\',NUMTOSTR(YEAR*10000+MONTH*100+DAY,0)+\' :close:%.2f\',close); end 测试debug中的一段: ... 2018-03-15 15:03:52.003 20170424 :d1:-1.#R 2018-03-15 15:03:52.003 20170424 :zg:35.29 2018-03-15 15:03:52.003 20170424 :d0:-1.#R 2018-03-15 15:03:52.004 20170424 :close:35.46 2018-03-15 15:03:52.007 20170424 :d1:-1.#R 2018-03-15 15:03:52.007 20170424 :zg:35.29 2018-03-15 15:03:52.007 20170424 :d0:-1.#R 2018-03-15 15:03:52.007 20170424 :close:6.08 2018-03-15 15:03:52.007 20170424 :d1:-1.#R 2018-03-15 15:03:52.008 20170424 :zg:35.29 2018-03-15 15:03:52.008 20170424 :d0:-1.#R 2018-03-15 15:03:52.008 20170424 :close:18.72 2018-03-15 15:03:52.009 20170425 :d1:-1.#R 2018-03-15 15:03:52.009 20170425 :zg:35.41 2018-03-15 15:03:52.009 20170425 :d0:-1.#R 2018-03-15 15:03:52.009 20170425 :close:35.77 2018-03-15 15:03:52.010 20170425 :d1:-1.#R 2018-03-15 15:03:52.010 20170425 :zg:35.41 2018-03-15 15:03:52.010 20170425 :d0:-1.#R 2018-03-15 15:03:52.010 20170425 :close:6.34 2018-03-15 15:03:52.010 20170425 :d1:-1.#R 2018-03-15 15:03:52.011 20170425 :zg:35.41 2018-03-15 15:03:52.011 20170425 :d0:-1.#R 2018-03-15 15:03:52.011 20170425 :close:18.80 2018-03-15 15:03:52.012 20170426 :d1:-1.#R 2018-03-15 15:03:52.012 20170426 :zg:35.76 2018-03-15 15:03:52.012 20170426 :d0:-1.#R 2018-03-15 15:03:52.012 20170426 :close:36.78 2018-03-15 15:03:52.013 20170426 :d1:-1.#R 2018-03-15 15:03:52.013 20170426 :zg:35.76 2018-03-15 15:03:52.013 20170426 :d0:-1.#R 2018-03-15 15:03:52.013 20170426 :close:6.31 2018-03-15 15:03:52.013 20170426 :d1:-1.#R 2018-03-15 15:03:52.013 20170426 :zg:35.76 2018-03-15 15:03:52.014 20170426 :d0:-1.#R 2018-03-15 15:03:52.014 20170426 :close:19.08 ... |
-- 作者:FireScript -- 发布时间:2018/3/15 15:17:32 -- 你这个输出是一个非常短暂的时间内输出的结果。你输出更长时间的来看看。 这么短的时间可能比行情分笔来的间隔时间都短。 |
-- 作者:yin8jun -- 发布时间:2018/3/15 20:30:16 -- 上面输出是三天的,2017-04-24,5,6。看第二排的日期。第一排时间是后台测试的当地时间。你在你机器上跑一下看 |
-- 作者:FireScript -- 发布时间:2018/3/16 10:16:32 -- 你这个运行环境是怎么配置的。 比如运行周期,运行设置等。详细说明下。 |
-- 作者:yin8jun -- 发布时间:2018/3/16 22:01:36 -- 后台测试上面说的三只股票,时间为2014.1.1到2018.3.15,日线。K线走完。关闭不间断监控,分笔速率扫描。使用500根K线。 |
-- 作者:yin8jun -- 发布时间:2018/3/19 10:05:09 -- 请问发现问题没? |
-- 作者:FireScript -- 发布时间:2018/3/19 11:06:06 -- 本地做下测试,但是结果并没有显示值是一样的这种情况。而且zig我输出的值和你也不一样。 你加一行代码输出下品种 试下 DEBUGFILE(\'D:\\test2\\TEST.TXT\',STKNAME,1); |
-- 作者:yin8jun -- 发布时间:2018/4/20 14:10:19 -- 我加了你说的那行后测试如下,“20170714 :d1:-1.#R”。-1.#R这个值代表什么? 2018-04-20 14:03:18.397 鲁西化工 2018-04-20 14:03:18.411 20170713 :d1:37.88 2018-04-20 14:03:18.425 20170713 :zg:50.83 2018-04-20 14:03:18.445 20170713 :d0:52.50 2018-04-20 14:03:18.469 20170713 :close:51.63 2018-04-20 14:03:18.470 中国平安 2018-04-20 14:03:18.486 20170713 :d1:15.58 2018-04-20 14:03:18.501 20170713 :zg:21.27 2018-04-20 14:03:18.521 20170713 :d0:22.08 2018-04-20 14:03:18.547 20170713 :close:21.37 2018-04-20 14:03:18.547 金禾实业 2018-04-20 14:03:18.566 20170714 :d1:5.74 2018-04-20 14:03:18.579 20170714 :zg:6.92 2018-04-20 14:03:18.599 20170714 :d0:7.33 2018-04-20 14:03:18.625 20170714 :close:7.02 2018-04-20 14:03:18.626 鲁西化工 2018-04-20 14:03:18.643 20170714 :d1:-1.#R 2018-04-20 14:03:18.656 20170714 :zg:52.79 2018-04-20 14:03:18.675 20170714 :d0:-1.#R 2018-04-20 14:03:18.700 20170714 :close:52.77
|
-- 作者:FireScript -- 发布时间:2018/4/20 14:41:49 -- 那个一般是无效值的缘故。或者因为某些函数没有计算结果导致的。 [此贴子已经被作者于2018/4/20 14:42:08编辑过]
|
-- 作者:yin8jun -- 发布时间:2018/4/20 16:25:02 -- 把数据改为1000就没有这个了。但是放进策略里还是发现有其他的问题。后台精细化测试中国平安,贵州茅台,鲁西化工,金禾实业,日线,2014.1.1到现在。鲁西和金禾实业的输出数据还是错误的,如下: 2018-04-20 16:19:03.236 20170407 2018-04-20 16:19:03.236 鲁西化工 :d1:390.60 2018-04-20 16:19:03.237 鲁西化工 :zg:383.80 2018-04-20 16:19:03.237 鲁西化工 :d0:390.60 2018-04-20 16:19:03.237 鲁西化工 :close:6.00 2018-04-20 16:19:03.237 20170407 2018-04-20 16:19:03.237 金禾实业 :d1:390.60 2018-04-20 16:19:03.237 金禾实业 :zg:383.80 2018-04-20 16:19:03.238 金禾实业 :d0:390.60 2018-04-20 16:19:03.238 金禾实业 :close:19.58 2018-04-20 16:19:03.238 20170407 2018-04-20 16:19:03.238 中国平安 :d1:390.60 2018-04-20 16:19:03.238 中国平安 :zg:383.80 2018-04-20 16:19:03.238 中国平安 :d0:390.60 2018-04-20 16:19:03.239 中国平安 :close:35.88 2018-04-20 16:19:03.245 20170410 2018-04-20 16:19:03.245 贵州茅台 :d1:243.77 2018-04-20 16:19:03.245 贵州茅台 :zg:382.22 2018-04-20 16:19:03.246 贵州茅台 :d0:390.60 2018-04-20 16:19:03.246 贵州茅台 :close:383.41 2018-04-20 16:19:03.246 20170410 2018-04-20 16:19:03.246 鲁西化工 :d1:390.60 2018-04-20 16:19:03.246 鲁西化工 :zg:382.22 2018-04-20 16:19:03.247 鲁西化工 :d0:390.60 2018-04-20 16:19:03.247 鲁西化工 :close:5.96 2018-04-20 16:19:03.247 20170410 2018-04-20 16:19:03.247 金禾实业 :d1:390.60 2018-04-20 16:19:03.247 金禾实业 :zg:382.22 2018-04-20 16:19:03.247 金禾实业 :d0:390.60 2018-04-20 16:19:03.248 金禾实业 :close:19.64 代码如下: globalvariable:holdh=0; globalvariable:jycs=0; globalvariable:kscs=0; v1:=intpart(100000/open/100)*100; zg:=zig(4,20); zt:=(c+0.01)/ref(c,1)>=1.1; //zg refzg1:=ref(zg,1); refzg2:=ref(zg,2); d1dian:=zg<refzg1 and refzg1>refzg2,noaxis; d0bars:=barslast(d1dian)+1; d0:=ref(refzg1,d0bars-1); d1:=if(sum(l/d0<=0.8,d0bars)=0,ref(d0,d0bars+1),d0); d1bars:=if(sum(l/d0<=0.8,d0bars)=0,ref(d0bars,d0bars+1)+d0bars,d0bars); if cross(sum(l/d0<=0.8,d0bars),1) then kscs:=0; if cross(sum(l/d0<=0.8,d0bars),1) then jycs:=0; if d1dian then kscs:=0; ma120:=ma(c,120); kd:=d1=ref(d1,1) and c>d1 and llv(c,d1bars)/d1>=0.6 and c/d1<1.4,noaxis; kd2:=sum(zt,3)=0 and h>ref(hhv(h,30),1) and jycs<1 and TBUYHOLDINGEX(\'\',\'\',2)=0 and kscs<1; if kd2 and kd then begin tbuy(1,v1,lmt,close); holdh:=h; jycs:=jycs+1; end enp:=tenterprice; zs:=0.90; izhisun:=enp*zs; //止损 if TBUYHOLDINGEX(\'\',\'\',2)>0 and l/enp<=zs and tenterbars>0 then begin tsell(1,0,lmt,min(enp*zs,open),0,\'\',\'\'); end //止损ma120 if TBUYHOLDINGEX(\'\',\'\',2)>0 and c<ma120 and tenterbars>0 and c>enp then begin tsell(1,0,lmt,min(enp*zs,open),0,\'\',\'\'); if c<enp then kscs:=kscs+1; end //多回调:止损+移动止赢 huitiao:=holdh*0.2;//回调20%止损 if TBUYHOLDINGEX(\'\',\'\',2)>0 and tenterbars>0 then begin if (holdh-l)>=huitiao then begin if c<enp then kscs:=kscs+1; tsell(1,0,lmt,min(holdh-huitiao,open),0,\'\',\'\'); end end //最高浮动利润 if TBUYHOLDINGEX(\'\',\'\',2)>0 and tenterbars>0 then begin if high>holdh then holdh:=h; end if islastbar then begin rq:=stkname; DEBUGFILE(\'D:\\test2\\TEST.TXT\',NUMTOSTR(YEAR*10000+MONTH*100+DAY,0),1); debugfile(\'D:\\test2\\TEST.TXT\',rq+\' :d1:%.2f\',d1); debugfile(\'D:\\test2\\TEST.TXT\',rq+\' :zg:%.2f\',zg); debugfile(\'D:\\test2\\TEST.TXT\',rq+\' :d0:%.2f\',d0); debugfile(\'D:\\test2\\TEST.TXT\',rq+\' :close:%.2f\',close); end [此贴子已经被作者于2018/4/20 16:26:39编辑过]
|