以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  老师帮忙看下我的模型回测为什么没信号  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173619)

--  作者:jzt666
--  发布时间:2019/12/19 13:31:19
--  老师帮忙看下我的模型回测为什么没信号
后台程序化,我把动态行情函数都去掉了,为什么还是不能测试

GLOBALVARIABLE:方向=0;
GLOBALVARIABLE:INJC=0;
GLOBALVARIABLE:COIN=0;
GLOBALVARIABLE:BBJC=0;
GLOBALVARIABLE:SSJC=0;
N:=1;
BBZY:=30;
BBZS:=20;
SSZY:=30;
SSZS:=20;

账户1:\'\'; //为空时是当前账户
//品种1:\'HSI00\';
品种2:\'HHI00\';

昨收:CallStock(\'\', vtCLOSE, 6, -1);
最新:C;
差值:最新-昨收;
当前时间:=TIME();
开仓时间:(当前时间>=090000 and 当前时间<=110000);
平仓时间:(当前时间>=114500);
NEWJC : C-CallStock(品种2, vtCLOSE, -1, 0);

//主开多
if 差值>BBJC and 开仓时间 and COIN=0 then begin///////////0===BBJC
TBUY(1, N, MKT, 0, 0, 账户1);
TBUYSHORT(1, N, MKT, 0, 0, 账户1, 品种2);
方向:=1;
COIN:=1;
INJC:=C-CALLSTOCK(品种2, vtCLOSE, -1, 0);
end

//主平多
if COIN=1 and 方向=1 and (NEWJC>=(INJC+BBZY*MINDIFF) or NEWJC<=(INJC-BBZS*MINDIFF) or 平仓时间) then begin
TSELL(1, N, MKT, 0, 0, 账户1);
TSELLSHORT(1, N, MKT, 0, 0, 账户1, 品种2);
end

//主开空
if 差值<(SSJC*-1) and 开仓时间 and COIN=0 then begin//////0====SSJC
TBUYSHORT(1, N, MKT, 0, 0, 账户1);
TBUY(1, N, MKT, 0, 0, 账户1, 品种2);
方向:=0;
COIN:=1;
INJC:=C-CALLSTOCK(品种2, vtCLOSE, -1, 0);
end

//主平空
if COIN=1 and 方向=0 and (NEWJC<=(INJC-SSZY*MINDIFF) or NEWJC>=(INJC+SSZS*MINDIFF) or 平仓时间) then begin
TSELLSHORT(1, N, MKT, 0, 0, 账户1);
TSELL(1, N, MKT, 0, 0, 账户1, 品种2);
end


--  作者:yukizzc
--  发布时间:2019/12/19 13:49:25
--  
昨收:CallStock(stklabel, vtCLOSE, 6, -1);
这里不能省品种代码

TSELLSHORT(1, N, MKT, 0, 0, 账户1,品种1);
这种不也不要去省。
另外关注下条件,自己用debugfile输出下条件看下为何都不满足,你自己最高一个最简单,a品种价格大于b品种就开单,然后看下自己操作上有没有问题
如果没问题有测试结果,那说明你上面代码就是条件问题条件问题必须自己去输出看下