以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  公式测试中,无法用DEBUGFILE函数输出日志么?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=167618)

--  作者:m1978xz
--  发布时间:2019/1/10 12:42:29
--  公式测试中,无法用DEBUGFILE函数输出日志么?
比如下边公式的红色部分:

//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//作者 Z7C9

//定义参数
H11:=HIGH;
L11:=LOW;
A:=IFELSE(HIGH>=REF(HIGH,1)&&HIGH>=REF(HIGH,2)&&HIGH>=REF(HIGH,3) &&HIGH>=REF(HIGH,4)&&HIGH>=REF(HIGH,5),LOW,0);
B:=IFELSE(LOW<=REF(LOW,1)&&LOW<=REF(LOW,2)&&LOW<=REF(LOW,3) &&LOW<=REF(LOW,4)&&LOW<=REF(LOW,5),HIGH,888888);
P1:=IFELSE(A>REF(L11,1),REF(L11,1),0);
P2:=IFELSE(A>REF(L11,2)&&A<=REF(L11,1),REF(L,2),0);
P3:=IFELSE(A>REF(L11,3)&&A<=REF(L11,1)&&A<=REF(L11,2),REF(L11,3),0);
P4:=IFELSE(A>REF(L11,4)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3),REF(L11,4),0);
P5:=IFELSE(A>REF(L11,5)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4),REF(L11,5),0);
P6:=IFELSE(A>REF(L11,6)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4)&&A<=REF(L11,5),REF(L11,6),0);
P7:=IFELSE(A>REF(L11,7)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4)&&A<=REF(L11,5)&&A<=REF(L11,6),REF(L11,7),0);
P8:=IFELSE(A>REF(L11,8)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4)&&A<=REF(L11,5)&&A<=REF(L11,6)&&A<=REF(L11,7),REF(L11,8),0);
P9:=IFELSE(A>REF(L11,9)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4)&&A<=REF(L11,5)&&A<=REF(L11,6)&&A<=REF(L11,7)&&A<=REF(L11,8),REF(L11,9),0);
P10:=IFELSE(A>REF(L11,10)&&A<=REF(L11,1)&&A<=REF(L11,2)&&A<=REF(L11,3)&&A<=REF(L11,4)&&A<=REF(L11,5)&&A<=REF(L11,6)&&A<=REF(L11,7)&&A<=REF(L11,8)&&A<=REF(L11,9),REF(L11,10),0);
AA:=P1+P2+P3+P4+P5+P6+P7+P8+P9+P10;
PP1:=IFELSE(AA>REF(L11,1),REF(L11,1),0);
PP2:=IFELSE(AA>REF(L11,2)&&AA<=REF(L11,1),REF(L11,2),0);
PP3:=IFELSE(AA>REF(L11,3)&&AA<=REF(L11,1)&&AA<=REF(L11,2),REF(L11,3),0);
PP4:=IFELSE(AA>REF(L11,4)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3),REF(L11,4),0);
PP5:=IFELSE(AA>REF(L11,5)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4),REF(L11,5),0);
PP6:=IFELSE(AA>REF(L11,6)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4)&&AA<=REF(L11,5),REF(L11,6),0);
PP7:=IFELSE(AA>REF(L11,7)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4)&&AA<=REF(L11,5)&&AA<=REF(L11,6),REF(L11,7),0);
PP8:=IFELSE(AA>REF(L11,8)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4)&&AA<=REF(L11,5)&&AA<=REF(L11,6)&&AA<=REF(L11,7),REF(L11,8),0);
PP9:=IFELSE(AA>REF(L11,9)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4)&&AA<=REF(L11,5)&&AA<=REF(L11,6)&&AA<=REF(L11,7)&&AA<=REF(L11,8),REF(L11,9),0);
PP10:=IFELSE(AA>REF(L11,10)&&AA<=REF(L11,1)&&AA<=REF(L11,2)&&AA<=REF(L11,3)&&AA<=REF(L11,4)&&AA<=REF(L11,5)&&AA<=REF(L11,6)&&AA<=REF(L11,7)&&AA<=REF(L11,8)&&AA<=REF(L11,9),REF(L11,10),0);
AAA:=PP1+PP2+PP3+PP4+PP5+PP6+PP7+PP8+PP9+PP10;
C11:=VALUEWHEN(AAA>0,AAA);
T1:=IFELSE(B<REF(H11,1),REF(H11,1),0);
T2:=IFELSE(B<REF(H11,2)&&B>=REF(H11,1),REF(H11,2),0);
T3:=IFELSE(B<REF(H11,3)&&B>=REF(H11,1)&&B>=REF(H11,2),REF(H11,3),0);
T4:=IFELSE(B<REF(H11,4)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3),REF(H11,4),0);
T5:=IFELSE(B<REF(H11,5)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4),REF(H11,5),0);
T6:=IFELSE(B<REF(H11,6)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4)&&B>=REF(H11,5),REF(H11,6),0);
T7:=IFELSE(B<REF(H11,7)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4)&&B>=REF(H11,5)&&B>=REF(H11,6),REF(H11,7),0);
T8:=IFELSE(B<REF(H11,8)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4)&&B>=REF(H11,5)&&B>=REF(H11,6)&&B>=REF(H11,7),REF(H11,8),0);
T9:=IFELSE(B<REF(H11,9)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4)&&B>=REF(H11,5)&&B>=REF(H11,6)&&B>=REF(H11,7)&&B>=REF(H11,8),REF(H11,9),0);
T10:=IFELSE(B<REF(H11,10)&&B>=REF(H11,1)&&B>=REF(H11,2)&&B>=REF(H11,3)&&B>=REF(H11,4)&&B>=REF(H11,5)&&B>=REF(H11,6)&&B>=REF(H11,7)&&B>=REF(H11,8)&&B>=REF(H11,9),REF(H11,10),0);
BB:=IFELSE((T1+T2+T3+T4+T5+T6+T7+T8+T9+T10)=0,888888,T1+T2+T3+T4+T5+T6+T7+T8+T9+T10);
TT1:=IFELSE(BB<REF(H11,1),REF(H11,1),0);
TT2:=IFELSE(BB<REF(H11,2)&&BB>=REF(H11,1),REF(H11,2),0);
TT3:=IFELSE(BB<REF(H11,3)&&BB>=REF(H11,1)&&BB>=REF(H11,2),REF(H11,3),0);
TT4:=IFELSE(BB<REF(H11,4)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3),REF(H11,4),0);
TT5:=IFELSE(BB<REF(H11,5)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4),REF(H11,5),0);
TT6:=IFELSE(BB<REF(H11,6)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4)&&BB>=REF(H11,5),REF(H11,6),0);
TT7:=IFELSE(BB<REF(H11,7)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4)&&BB>=REF(H11,5)&&BB>=REF(H11,6),REF(H11,7),0);
TT8:=IFELSE(BB<REF(H11,8)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4)&&BB>=REF(H11,5)&&BB>=REF(H11,6)&&BB>=REF(H11,7),REF(H11,8),0);
TT9:=IFELSE(BB<REF(H11,9)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4)&&BB>=REF(H11,5)&&BB>=REF(H11,6)&&BB>=REF(H11,7)&&BB>=REF(H11,8),REF(H11,9),0);
TT10:=IFELSE(BB<REF(H11,10)&&BB>=REF(H11,1)&&BB>=REF(H11,2)&&BB>=REF(H11,3)&&BB>=REF(H11,4)&&BB>=REF(H11,5)&&BB>=REF(H11,6)&&BB>=REF(H11,7)&&BB>=REF(H11,8)&&BB>=REF(H11,9),REF(H11,10),0);
BBB:=TT1+TT2+TT3+TT4+TT5+TT6+TT7+TT8+TT9+TT10;
D:=VALUEWHEN(BBB>0,BBB);
UD:=IFELSE(CLOSE>D&&REF(CLOSE,1)<=D,1,IFELSE(CLOSE<C11&&REF(CLOSE,1)>=C11,-3,0));
K:=VALUEWHEN(UD<>0,UD);
G:=IFELSE(K=1,C11,D),COLORRED;
G1:=VALUEWHEN(ISLASTBAR,G);
TMP:=-K;
ttt:G;


//TMP>0,SPK;
//TMP<=0,BPK;
IF HOLDING=0 THEN BEGIN   //若持仓为0
 IF TMP<=0 THEN           //且TMP<=0
  BUY(1,1,LIMITR,CLOSE);  //开多单
  if islastbar then begin
DEBUGFILE(\'e:\\待处理\\零散\\期货\\变量报告\\t1.txt\',\'当前最新价为%.2f\',CLOSE);
end
END
IF HOLDING=0 THEN BEGIN   //若持仓为0
 IF TMP>0 THEN            //且TMP>0
  BUYSHORT(1,1,LIMITR,CLOSE);  //开空单 
END
IF HOLDING>0 THEN BEGIN   //若持有多单
 IF TMP>0 THEN BEGIN      //且TMP>0
  SELL(1,HOLDING,LIMITR,CLOSE);   //平多单
  BUYSHORT(1,1,LIMITR,CLOSE);    //开空单
 END
END
IF HOLDING<0 THEN BEGIN    //若持有空单
 IF TMP<=0 THEN BEGIN      //且TMP<=0
  SELLSHORT(1,HOLDING,LIMITR,CLOSE);  //平空单
  BUY(1,1,LIMITR,CLOSE);    //开多单
 END
END
 
 //其他  
次数:TOTALTRADE,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
连亏:MAXSEQLOSS,LINETHICK0;
连赢:MAXSEQWIN,LINETHICK0;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

比如用甲醇连续的5分钟测试一个月的,之后这个t1.txt里边还是空的。

--  作者:FireScript
--  发布时间:2019/1/10 13:13:41
--  
DEBUGFILE只在最后一个周期也就是当前最新K上奏效。


--  作者:m1978xz
--  发布时间:2019/1/10 13:20:35
--  
也就说没法在公式测评中使用吧?
那要想在公式测评中实现类似功能,请问能用其他函数实现么?

--  作者:FireScript
--  发布时间:2019/1/10 13:25:16
--  
试下DEBUGFILE2

这2个函数略有区别,这个可以在每个K输出。

--  作者:m1978xz
--  发布时间:2019/1/10 13:31:39
--  
好的,谢谢版主回复。
--  作者:m1978xz
--  发布时间:2019/1/10 13:38:14
--  
还是不行啊。
--  作者:m1978xz
--  发布时间:2019/1/10 13:41:50
--  

版主~搞定啦,我把下边这2行去掉就行。看来DEBUGFILE2和这个不兼容啊。

if islastbar then begin

end


--  作者:FireScript
--  发布时间:2019/1/10 13:52:07
--  
 是的,你不能加islastbar的。
--  作者:m1978xz
--  发布时间:2019/1/10 13:55:46
--  
可我之后仔细一看,t1.txt里边记录的并不是公式测试中的时段的值变化。而是今天下午 开盘后的(内容 如下)
还是没实现我的需求,这个有解决方法么?另外我怎么设置它记录一次就停止啊.

2019-01-10 13:39:55.299    当前最新价为1896.83
2019-01-10 13:39:55.299    当前最新价为1886.63
2019-01-10 13:39:55.299    当前最新价为1879.20
2019-01-10 13:39:55.299    当前最新价为1882.91
2019-01-10 13:39:55.299    当前最新价为1911.68
2019-01-10 13:39:55.299    当前最新价为1948.80
2019-01-10 13:39:55.299    当前最新价为1940.45
2019-01-10 13:39:55.299    当前最新价为1940.45
2019-01-10 13:39:55.299    当前最新价为1940.45
2019-01-10 13:39:55.314    当前最新价为1940.45
2019-01-10 13:39:55.314    当前最新价为1940.45
2019-01-10 13:39:55.314    当前最新价为1940.45
2019-01-10 13:39:55.314    当前最新价为2036.03
2019-01-10 13:39:55.314    当前最新价为2076.87
2019-01-10 13:39:55.314    当前最新价为2091.71
2019-01-10 13:39:55.314    当前最新价为2075.01
2019-01-10 13:39:55.346    当前最新价为2075.01
2019-01-10 13:39:55.346    当前最新价为2096.35
2019-01-10 13:39:55.346    当前最新价为2117.70
2019-01-10 13:39:55.346    当前最新价为2113.99
2019-01-10 13:39:55.346    当前最新价为2092.64
2019-01-10 13:39:55.346    当前最新价为2078.72
2019-01-10 13:39:55.346    当前最新价为2089.86
2019-01-10 13:39:55.346    当前最新价为2131.62
2019-01-10 13:39:55.346    当前最新价为2172.45
2019-01-10 13:39:58.457    当前最新价为1896.83
2019-01-10 13:39:58.457    当前最新价为1886.63
2019-01-10 13:39:58.457    当前最新价为1879.20
2019-01-10 13:39:58.457    当前最新价为1882.91
2019-01-10 13:39:58.457    当前最新价为1911.68
2019-01-10 13:39:58.457    当前最新价为1948.80
2019-01-10 13:39:58.457    当前最新价为1940.45
2019-01-10 13:39:58.457    当前最新价为1940.45
2019-01-10 13:39:58.457    当前最新价为1940.45
2019-01-10 13:39:58.457    当前最新价为1940.45
2019-01-10 13:39:58.457    当前最新价为1940.45
2019-01-10 13:39:58.473    当前最新价为1940.45
2019-01-10 13:39:58.473    当前最新价为2036.03
2019-01-10 13:39:58.473    当前最新价为2076.87
2019-01-10 13:39:58.473    当前最新价为2091.71
2019-01-10 13:39:58.473    当前最新价为2075.01
2019-01-10 13:39:58.473    当前最新价为2075.01
2019-01-10 13:39:58.473    当前最新价为2096.35
2019-01-10 13:39:58.473    当前最新价为2117.70
2019-01-10 13:39:58.473    当前最新价为2113.99
2019-01-10 13:39:58.473    当前最新价为2092.64
2019-01-10 13:39:58.473    当前最新价为2078.72
2019-01-10 13:39:58.473    当前最新价为2089.86
2019-01-10 13:39:58.473    当前最新价为2131.62
2019-01-10 13:39:58.473    当前最新价为2172.45
2019-01-10 13:40:09.843    当前最新价为2468.52
2019-01-10 13:40:09.843    当前最新价为2444.21
2019-01-10 13:40:09.843    当前最新价为2409.77
2019-01-10 13:40:09.843    当前最新价为2420.91
2019-01-10 13:40:09.859    当前最新价为2420.91
2019-01-10 13:40:09.859    当前最新价为2418.88
2019-01-10 13:40:09.859    当前最新价为2420.91

--  作者:FireScript
--  发布时间:2019/1/10 14:03:30
--  
 记录里的时间肯定是当前最新时间啊。但是那个值,是之前每个K上的值。你想把历史时间也输出的话,需要自行构建包含历史K线时间的字符串,然后输出。