以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  后台撤单重发异常求解  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=15363)

--  作者:hqf123
--  发布时间:2012/8/21 14:57:16
--  后台撤单重发异常求解

globalvariable:mm1=0,MM2=0,MM3=0,MM4=0,mm10=0,MM20=0,MM30=0,MM40=0,MM=0;

IF (MOD(TIME/100,10)=1 OR MOD(TIME/100,10)=5) THEN MM:=1;
IF (MOD(TIME/100,10)=3 OR MOD(TIME/100,10)=7) THEN MM:=-1;

DK:=MM=1 AND REF(MM,1)<>1;
KK:=MM=-1 AND REF(MM,1)<>-1;
 
if not(islastbar) then exit;

TSELL(KK,3,LMT,DYNAINFO(54));
IF (KK AND MM20<>BARPOS) THEN
BEGIN
 MM2:=TIMETOT0(CURRENTTIME);
 MM20:=BARPOS;
END;
TSELLSHORT(DK,3,LMT,DYNAINFO(55));
IF (KK AND MM40<>BARPOS) THEN
BEGIN
 MM4:=TIMETOT0(CURRENTTIME);
 MM40:=BARPOS;
END;

TBUY(DK,3,LMT,DYNAINFO(55));
IF (DK AND MM10<>BARPOS) THEN
BEGIN
 MM1:=TIMETOT0(CURRENTTIME);
 MM10:=BARPOS;
END;

TBUYSHORT(KK,3,LMT,DYNAINFO(54));
IF (KK AND MM30<>BARPOS) THEN
BEGIN
 MM30:=BARPOS;
 MM3:=TIMETOT0(CURRENTTIME);
END;

IF TISREMAIN(0)>0 THEN
BEGIN
 if (TISREMAIN(2)>0 AND TIMETOT0(CURRENTTIME)-MM2>10) THEN//超过10s,市价追单
 BEGIN
   NN:=TREMAINQTY(2,\'801616\',STKNAME);
   TCANCELEX(TRUE,2,\'801616\',STKNAME);
   TSELL(TRUE,NN,MKT);
 END;
 if (TISREMAIN(4)>0 AND TIMETOT0(CURRENTTIME)-MM4>10) THEN//超过10s,市价追单
 BEGIN
   NN:=TREMAINQTY(4,\'801616\',STKNAME);
   TCANCELEX(TRUE,4,\'801616\',STKNAME);
   TSELLSHORT(TRUE,NN,MKT);
 END;
 if (TISREMAIN(1)>0 AND TIMETOT0(CURRENTTIME)-MM1>10) THEN//超过10s,市价追单
 BEGIN
   NN:=TREMAINQTY(1,\'801616\',STKNAME);
   TCANCELEX(TRUE,1,\'801616\',STKNAME);
   TBUY(TRUE,NN,MKT);
 END;
 if (TISREMAIN(3)>0 AND TIMETOT0(CURRENTTIME)-MM3>10) THEN//超过10s,市价追单
 BEGIN
   NN:=TREMAINQTY(3,\'801616\',STKNAME);
   TCANCELEX(TRUE,3,\'801616\',STKNAME);
   TBUYSHORT(TRUE,NN,MKT);
 END;
END;
简单的1,5多单,3,7分钟空仓,转势进单

用涨跌停形成挂单,10s后进行撤单再重发试验

 

撤单是成功的,但是发单的时候就只发开仓的单,平仓的单没有补发,后台的预警里面是有发平仓单动作的,求解~~~~~~···

 

账户中都是有持仓的

 


--  作者:hqf123
--  发布时间:2012/8/21 14:58:08
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

--  作者:王锋
--  发布时间:2012/8/21 17:50:29
--  请教如何运行自定义数据

楼主看你的后台代码这么多,没有一句调试代码。

建议你仔细看看 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4中后台的调试技巧,使用DEBUGFILE输出关键的变量,自行调试看看到底问题出在什么位置。


--  作者:hqf123
--  发布时间:2012/8/22 9:10:34
--  

我有试过用debugfile输出,在那个撤单的位置把方向和手数读取输出,是没有问题的


--  作者:王锋
--  发布时间:2012/8/22 9:12:45
--  

将增加DEBUFILE后的代码,及你经过运行调试后的记录日志发过来我们帮你分析看看


--  作者:hqf123
--  发布时间:2012/8/22 9:27:30
--  

--  作者:hqf123
--  发布时间:2012/8/22 10:12:57
--  
globalvariable:mm1=0,MM2=0,MM3=0,MM4=0,mm10=0,MM20=0,MM30=0,MM40=0,MM=0;

IF (MOD(TIME/100,10)=1 OR MOD(TIME/100,10)=5) THEN MM:=1;
IF (MOD(TIME/100,10)=3 OR MOD(TIME/100,10)=7) THEN MM:=-1;

DK:=MM=1 AND REF(MM,1)<>1;
KK:=MM=-1 AND REF(MM,1)<>-1;

if not(islastbar) then exit;

TSELL(KK,3,LMT,DYNAINFO(54));
IF (KK AND MM20<>BARPOS) THEN 
BEGIN
MM2:=TIMETOT0(CURRENTTIME);
MM20:=BARPOS;
END;
TSELLSHORT(DK,3,LMT,DYNAINFO(55));
IF (KK AND MM40<>BARPOS) THEN 
BEGIN
MM4:=TIMETOT0(CURRENTTIME);
MM40:=BARPOS;
END;

TBUY(DK,3,LMT,DYNAINFO(55));
IF (DK AND MM10<>BARPOS) THEN 
BEGIN
MM1:=TIMETOT0(CURRENTTIME);
MM10:=BARPOS;
END;

TBUYSHORT(KK,3,LMT,DYNAINFO(54));
IF (KK AND MM30<>BARPOS) THEN
BEGIN
MM30:=BARPOS;
MM3:=TIMETOT0(CURRENTTIME);
END;

{
DebugFile(\'e:\\20120821.TXT\',\'1:\'&NUMTOSTR(TIMETOT0(CURRENTTIME)-MM1,0),0);
DebugFile(\'e:\\20120821.TXT\',\'2:\'&NUMTOSTR(TIMETOT0(CURRENTTIME)-MM2,0),0);
DebugFile(\'e:\\20120821.TXT\',\'3:\'&NUMTOSTR(TIMETOT0(CURRENTTIME)-MM3,0),0);
DebugFile(\'e:\\20120821.TXT\',\'4:\'&NUMTOSTR(TIMETOT0(CURRENTTIME)-MM4,0),0);}
IF TISREMAIN(0)>0 THEN
BEGIN
if (TISREMAIN(2)>0 AND TIMETOT0(CURRENTTIME)-MM2>10) THEN//超过10s,市价追单
BEGIN
NN:=TREMAINQTY(2,\'801616\',STKNAME);
DebugFile(\'e:\\20120821.TXT\',\'追单 \'&STKLABEL&\'DP:\'&numtostr(NN,0),0);
TCANCELEX(TRUE,2,\'801616\',STKNAME);
TSELL(TRUE,NN,MKT);
MM2:=TIMETOT0(CURRENTTIME);
END;
if (TISREMAIN(4)>0 AND TIMETOT0(CURRENTTIME)-MM4>10) THEN//超过10s,市价追单
BEGIN
NN:=TREMAINQTY(4,\'801616\',STKNAME);
DebugFile(\'e:\\20120821.TXT\',\'追单 \'&STKLABEL&\'KP:\'&numtostr(NN,0),0);
TCANCELEX(TRUE,4,\'801616\',STKNAME);
TSELLSHORT(TRUE,NN,MKT);
MM4:=TIMETOT0(CURRENTTIME);
END;
if (TISREMAIN(1)>0 AND TIMETOT0(CURRENTTIME)-MM1>10) THEN//超过10s,市价追单
BEGIN
NN:=TREMAINQTY(1,\'801616\',STKNAME);
DebugFile(\'e:\\20120821.TXT\',\'追单 \'&STKLABEL&\'DK:\'&numtostr(NN,0),0);
TCANCELEX(TRUE,1,\'801616\',STKNAME);
TBUY(TRUE,NN,MKT);
MM1:=TIMETOT0(CURRENTTIME);
END;
if (TISREMAIN(3)>0 AND TIMETOT0(CURRENTTIME)-MM3>10) THEN//超过10s,市价追单
BEGIN
NN:=TREMAINQTY(3,\'801616\',STKNAME);
DebugFile(\'e:\\20120821.TXT\',\'追单 \'&STKLABEL&\'KK:\'&numtostr(NN,0),0);
TCANCELEX(TRUE,3,\'801616\',STKNAME);
TBUYSHORT(TRUE,NN,MKT);
MM3:=TIMETOT0(CURRENTTIME);
END;
END;
 
10:06平多空,转势做空的指令
 
跟踪到的文件输出
2012-08-22 10:06:11.650    追单 IF00DP:3
2012-08-22 10:06:11.666    追单 IF00KK:3
 
下单日志记录:
012-08-22 10:05:57.557    【后台】IF00 运行结束
2012-08-22 10:05:58.557    【后台】IF00 运行结束
2012-08-22 10:05:59.635    【后台】IF00 运行结束
2012-08-22 10:06:00.557    【后台】IF00 TSell 出现信号
2012-08-22 10:06:00.557    【后台】IF00 TSell 已成功触发下单操作 价格:2556.000000 数量:3 类型:0 账户: 品种:IF00
2012-08-22 10:06:00.557    【后台】实际账户持仓 3
2012-08-22 10:06:00.557    【后台】下单已发送
2012-08-22 10:06:00.588    【后台】IF00 TBuyShort 出现信号
2012-08-22 10:06:00.588    【后台】IF00 TBuyShort 已成功触发下单操作 价格:2556.000000 数量:3 类型:0 账户: 品种:IF00
2012-08-22 10:06:00.588    【后台】下单已发送
2012-08-22 10:06:00.604    【后台】IF00 运行结束
2012-08-22 10:06:00.604    【下单】IF09 价2556.000000 量3 买卖1 类型0 开平1 账户801616 Formula 1
2012-08-22 10:06:00.604    【下单】IF09 价2556.000000 量3 买卖1 类型0 开平0 账户801616 Formula 1
2012-08-22 10:06:00.604    当前尚有未处理完事件 - 6021
2012-08-22 10:06:00.822    【平仓委托计量】0 - 3
2012-08-22 10:06:00.822    【回报】801616 : IF09 - 正在申报 3 价格:2556.00 平仓 卖出
2012-08-22 10:06:00.869    【回报】801616 : IF09 - 正在申报 3 价格:2556.00 开仓 卖出
2012-08-22 10:06:01.572    【后台】IF00 运行结束
2012-08-22 10:06:02.729    【后台】IF00 运行结束
2012-08-22 10:06:03.557    【后台】IF00 运行结束
2012-08-22 10:06:04.572    【后台】IF00 运行结束
2012-08-22 10:06:05.682    【后台】IF00 运行结束
2012-08-22 10:06:06.557    【后台】IF00 运行结束
2012-08-22 10:06:07.557    【后台】IF00 运行结束
2012-08-22 10:06:08.697    【后台】IF00 运行结束
2012-08-22 10:06:09.557    【后台】IF00 运行结束
2012-08-22 10:06:10.572    【后台】IF00 运行结束
2012-08-22 10:06:11.650    【后台】IF00 TCANCELEX 出现信号 类型:2 帐号:801616
2012-08-22 10:06:11.666    【后台】IF00 TSell 出现信号
2012-08-22 10:06:11.666    【后台】IF00 TSell 已成功触发下单操作 价格:0.000000 数量:3 类型:1 账户: 品种:IF00
2012-08-22 10:06:11.666    【后台】实际账户持仓 0
2012-08-22 10:06:11.697    【后台】IF00 TCANCELEX 出现信号 类型:3 帐号:801616
2012-08-22 10:06:11.697    【后台】IF00 TBuyShort 出现信号
2012-08-22 10:06:11.697    【后台】IF00 TBuyShort 已成功触发下单操作 价格:0.000000 数量:3 类型:1 账户: 品种:IF00
2012-08-22 10:06:11.713    【后台】下单已发送
2012-08-22 10:06:11.760    【后台】IF00 运行结束
2012-08-22 10:06:11.760    【下单】IF09 价0.000000 量3 买卖1 类型1 开平0 账户801616 Formula 1
2012-08-22 10:06:11.775    当前尚有未处理完事件 - 6022
2012-08-22 10:06:11.932    【回报】801616 : 撤单已经递交
2012-08-22 10:06:11.979    【回报】801616 : IF1209     已经撤单 量:3
2012-08-22 10:06:11.979    【回报】801616 : 撤单已经递交
2012-08-22 10:06:12.010    【回报】801616 : IF1209     已经撤单 量:3
2012-08-22 10:06:12.041    【回报】801616 : IF09 - 正在申报 3 价格:2317.60 开仓 卖出
2012-08-22 10:06:12.307    【回报】801616 : IF09 全部成交 3 价格:2318.4 开 卖
2012-08-22 10:06:12.588    【后台】IF00 运行结束
2012-08-22 10:06:13.572    【后台】IF00 运行结束

--  作者:hqf123
--  发布时间:2012/8/22 10:13:52
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

--  作者:王锋
--  发布时间:2012/8/22 10:38:16
--  老师能不能介绍一下画线预警功能
你的语法有问题,金字塔的IF THEN语句, IF后面的条件是不加括号的,试试去掉
--  作者:hqf123
--  发布时间:2012/8/22 10:50:20
--