以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  信达证券实盘交易下单问题求助  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=159277)

--  作者:youthto
--  发布时间:2017/11/6 21:49:57
--  信达证券实盘交易下单问题求助

问题描述:

同样的代码,是使用官方的案例修改的,实盘买单不成功,请问需要如何修改

 

代码片段如下:

手数 := 1000;

 

 //and c3 
 if (HOLDING=0) and date=CURRENTDATE then
 begin
  if  c1 and c2  and c4 and c5   then
  begin
   开多条件:=1;
   ORDER_TYPE:=\'ts1\';
   orderTop:=0;
  end
 end 
 
 //交易系统
 平多:SELL(平多条件,手数,MARKET);
 开多:BUY(开多条件,手数,MARKET);

 

在使用金字塔官方版,使用模拟账号时,可以触发买单,并且买入成功,   日志如下

 

2017-10-26 14:36:21.631    2017.10.26 14:36:21【图表】框架:CompagesMore 触发下单 BUY 品种 002315 下单K线 2017.10.26 14:36:00 公式:ts1 窗格ID:6 代码行:175
2017-10-26 14:36:21.632    【图表】模型下单 1000
2017-10-26 14:36:21.633    【图表】下单系数调整后 手数:1000
2017-10-26 14:36:21.633    【图表】直接下单
2017-10-26 14:36:21.636    【图表】002315 运行完毕
2017-10-26 14:36:21.637    【下单】002315 价0.000000 量1000 买卖0 类型1 开平0 账户60004661 Formula 1
2017-10-26 14:36:21.638    【下单】已提交,订单ID :143
2017-10-26 14:36:21.670    【指令】收到回报指令 ID = 143
2017-10-26 14:36:21.682    【回报】60004661 : 002315 - 已报单 1000 价格:28.67 开 买
2017-10-26 14:36:21.907    【指令】收到成交回报指令 ORDERID = 143
2017-10-26 14:36:21.923    【回报】60004661 : 002315 - 已成交 1000 价格:28.39 开 买
2017-10-26 14:36:21.924    【回报】60004661 : 002315 - 全部成交 1000
2017-10-26 14:36:22.127    【¥¥¥¥】开始持仓查询
2017-10-26 14:36:22.177    【¥¥¥¥】持仓查询结束

 

===================================================================================

 

但是使用信达版本,使用信达证券的实盘账号时,看到的日志和官方版不一样,并且下单不成功,日志如下

2017-11-06 10:36:23.633    【图表】300399 运行完毕
2017-11-06 10:37:24.474    【图表】300399 运行完毕
2017-11-06 10:38:50.664    【图表】300399 运行完毕
2017-11-06 10:39:10.884    【¥¥¥¥】开始持仓查询
2017-11-06 10:39:10.964    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:10.965    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:10.966    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:10.967    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:11.815    【¥¥¥¥】持仓查询结束
2017-11-06 10:39:11.959    【图表】300399 运行完毕
2017-11-06 10:39:11.977    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:11.978    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:11.979    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:11.980    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:12.412    【回报自处理】进入委托查询流程 参数:Times:0 Size:2
2017-11-06 10:39:12.413    【回报自处理】已发送柜台查询全部未成交合约
2017-11-06 10:39:12.865    【回报自处理】接收到查询委托信息 ID:3 VolumeTraded:0 PrvVolumeTraded:0 remaining:500 Status:3 EBuy:0 ESell:500
2017-11-06 10:39:12.867    【回报自处理】接收到查询委托信息 ID:4 VolumeTraded:0 PrvVolumeTraded:0 remaining:4300 Status:3 EBuy:0 ESell:4300
2017-11-06 10:39:12.993    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:12.994    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:12.995    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:12.996    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:14.016    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:14.017    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:14.018    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:14.018    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:15.022    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:15.022    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:15.023    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:15.023    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:16.031    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:16.032    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:16.032    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:16.033    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:17.047    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:17.052    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:17.053    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:17.054    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:18.071    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:18.084    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:18.085    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:18.085    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:18.432    【回报自处理】进入委托查询流程 参数:Times:0 Size:2
2017-11-06 10:39:18.434    【回报自处理】已发送柜台查询全部未成交合约
2017-11-06 10:39:18.914    【回报自处理】接收到查询委托信息 ID:3 VolumeTraded:0 PrvVolumeTraded:0 remaining:500 Status:3 EBuy:0 ESell:500
2017-11-06 10:39:18.916    【回报自处理】接收到查询委托信息 ID:4 VolumeTraded:0 PrvVolumeTraded:0 remaining:4300 Status:3 EBuy:0 ESell:4300
2017-11-06 10:39:19.077    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:19.079    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:19.080    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:19.082    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:20.100    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:20.101    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:20.101    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:20.102    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:21.140    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:21.141    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:21.142    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:21.143    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:22.116    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:22.116    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:22.117    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:22.118    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:23.138    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:23.139    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:23.140    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:23.141    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:24.147    【回报自处理】ID:3 OrderType:0 Aspect:1
2017-11-06 10:39:24.147    【回报自处理】ID:3 限价委托,查询ID处理
2017-11-06 10:39:24.148    【回报自处理】ID:4 OrderType:0 Aspect:1
2017-11-06 10:39:24.148    【回报自处理】ID:4 限价委托,查询ID处理
2017-11-06 10:39:24.455    【回报自处理】进入委托查询流程 参数:Times:0 Size:2
2017-11-06 10:39:24.456    【回报自处理】已发送柜台查询全部未成交合约
2017-11-06 10:39:24.921    【回报自处理】接收到查询委托信息 ID:3 VolumeTraded:0 PrvVolumeTraded:0 remaining:500 Status:3 EBuy:0 ESell:500
2017-11-06 10:39:24.923    【回报自处理】接收到查询委托信息 ID:4 VolumeTraded:0 PrvVolumeTraded:0 remaining:4300 Status:3 EBuy:0 ESell:4300


--  作者:gxx978
--  发布时间:2017/11/7 8:43:07
--  

从使用信达版的交易日志中,未看到有信号执行的动作。你用的运行模式是走完K线还是固定时间间隔,运行的周期是多少?在交易记录中是否看到有信号的触发呢?


--  作者:客人
--  发布时间:2017/11/7 10:31:00
--  


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

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


我把代码简化成最简单的方式了


 


如图:


代码和相关的交易参数如图所示


运行周期是1分钟


 


日志如下


2017-11-07 10:11:53.090    【¥¥¥¥】开始持仓查询
2017-11-07 10:11:54.853    【¥¥¥¥】持仓查询结束
2017-11-07 10:16:12.988    【图表】300033 运行完毕
2017-11-07 10:17:09.772    【图表】300033 运行完毕
2017-11-07 10:18:10.613    【图表】300033 运行完毕
2017-11-07 10:20:09.978    【图表】300033 运行完毕
2017-11-07 10:21:16.863    【图表】300033 运行完毕
2017-11-07 10:22:12.632    【图表】300033 运行完毕
2017-11-07 10:23:13.473    【图表】300033 运行完毕
2017-11-07 10:24:17.355    【图表】300033 运行完毕
2017-11-07 10:25:10.083    【图表】300033 运行完毕
2017-11-07 10:26:13.240    【图表】300033 运行完毕
2017-11-07 10:26:52.640    【¥¥¥¥】开始持仓查询
2017-11-07 10:26:53.908    【¥¥¥¥】持仓查询结束
2017-11-07 10:27:10.771    【图表】300033 运行完毕
2017-11-07 10:28:09.634    【图表】300033 运行完毕
2017-11-07 10:29:10.403    【图表】300033 运行完毕


 


 


--  作者:youthto
--  发布时间:2017/11/7 10:31:40
--  

上面这个是我


--  作者:banzhuan
--  发布时间:2017/11/7 10:35:14
--  
你实盘的图表上并没有开仓信号啊?
--  作者:youthto
--  发布时间:2017/11/7 10:49:22
--  

把代码改成这样,居然成功了

 

 FILEPATH:=\'E:\\log\\test.txt\';
 stockcode:=stklabel;
 
 手数:=100;
 
 平多条件:=0;
 开多条件:=0;

 if (HOLDING=0) and date=CURRENTDATE and time=104000 then
 begin 
   开多条件:=1;
   ORDER_TYPE:=\'test1\';
   orderTop:=0;  
 end 
 
 平多:SELL(平多条件,手数,MARKET);
 开多:BUY(开多条件,手数,MARKET);
 
 if 开多条件 and ISLASTBAR then
 begin
  linestr:= ORDER_TYPE  & \':\' & stockcode  & \',\' & NUMTOSTR(time,0)  & \',\' & NUMTOSTR(c*100,0) ;
  DEBUGFILE2(FILEPATH,linestr,1,0);
 end

 

==========================

开多条件赋了初始值0

在打印日志时加了ISLASTBAR

 

=============================

 

test1:300033,150000,5501
test1:300033,93100,5495
test1:300033,93200,5489
test1:300033,93300,5480
test1:300033,93400,5483
test1:300033,93500,5500
test1:300033,93600,5510
test1:300033,93700,5545
test1:300033,93800,5543
test1:300033,93900,5530
test1:300033,94000,5535
test1:300033,94100,5535
test1:300033,94200,5528
test1:300033,94300,5520
test1:300033,94400,5520
test1:300033,94500,5515
test1:300033,94600,5505
test1:300033,94700,5504
test1:300033,94800,5503
test1:300033,94900,5519
test1:300033,95000,5520
test1:300033,95100,5529
test1:300033,95200,5530
test1:300033,95300,5519
test1:300033,95400,5505
test1:300033,95500,5502
test1:300033,95600,5506
test1:300033,95700,5506
test1:300033,95800,5508
test1:300033,95900,5501
test1:300033,100000,5500
test1:300033,100100,5501
test1:300033,100200,5500
test1:300033,100300,5500
test1:300033,100400,5499
test1:300033,100500,5498
test1:300033,100600,5490
test1:300033,100700,5494
test1:300033,100800,5500
test1:300033,100900,5503
test1:300033,101000,5508
test1:300033,101100,5508
test1:300033,101200,5507
test1:300033,101300,5511
test1:300033,101400,5516
test1:300033,101500,5520
test1:300033,101600,5524
test1:300033,101700,5525
test1:300033,101800,5527
test1:300033,101900,5525
test1:300033,102000,5521
test1:300033,102100,5520
test1:300033,102200,5519
test1:300033,102300,5519
test1:300033,102400,5519
test1:300033,102500,5518
test1:300033,102600,5516
test1:300033,102700,5511
test1:300033,102800,5513
test1:300033,102900,5504
test1:300033,103000,5504
test1:300033,103100,5503
test1:300033,103200,5507
test1:300033,103300,5502
test1:300033,103400,5501
test1:300033,103500,5501
test1:300033,103600,5500
test1:300033,103700,5504
test1:300033,103800,5505
test1:300033,103900,5503
test1:300033,104000,5530
test1:300033,104000,5530
test1:300033,104000,5530
test1:300033,104000,5533
test1:300033,104000,5531
test1:300033,104000,5539
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5539
test1:300033,104000,5539
test1:300033,104000,5539
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5542
test1:300033,104000,5545
test1:300033,104000,5550
test1:300033,104000,5550
test1:300033,104000,5552
test1:300033,104000,5550

 

新问题,加了ISLASTBAR 条件之后,不是最后1K还是会打印日志,并且打印多次,这是什么原理?


--  作者:youthto
--  发布时间:2017/11/7 11:10:05
--  

 FILEPATH:=\'E:\\log\\test.txt\';

 

if 开多条件 and ISLASTBAR then
 begin
  linestr:= ORDER_TYPE  & \':\' & stockcode  & \',\' & NUMTOSTR(time,0)  & \',\' & NUMTOSTR(c*100,0) ;
  DEBUGFILE2(FILEPATH,linestr,1,0);
 end

 

 

管理员回答一下,     加入这个ISLASTBAR,是否最后1K才运行if里面的语句,如果不是,那么需要用什么?


--  作者:banzhuan
--  发布时间:2017/11/7 11:15:30
--  
您的需求是什么?要周期的最后一根K线才输出?
--  作者:youthto
--  发布时间:2017/11/7 11:18:54
--  

我的需求是不要出现一大堆无效输出

 

最后一个K线输出

并且符合其它条件

 

可以看到,代码里面里面的条件是

if 开多条件 and ISLASTBAR then

产生开多信号,并且是最后一根K线


--  作者:youthto
--  发布时间:2017/11/7 11:19:11
--  
日志里面东西太多,非常不利于判断问题