开拓者期货期权程序化系统交易论坛

标题: 实盘A_SendOrder提交之后没有信号,求助!!急,最近几天常出现此类问题 [打印本页]

作者: cliff    时间: 2013-2-21 16:49:04     标题: 实盘A_SendOrder提交之后没有信号,求助!!急,最近几天常出现此类问题

今天早上实盘账号用A_SendOrder 连续开出三次空单,分别是9点15,9点30分,appendfile日志如下
SendOrder = sell entry 1 2687 201302210.091500 开空单
SendOrder = sell entry 1 2677 201302210.091500 开空单
SendOrder = sell entry 1 2667 201302210.093000 开空单
可以没有反应,查看F7,和ctporder没有任何信息。

重启后,一切恢复正常,请问版主这是什么问题?
作者: cliff    时间: 2013-2-21 16:50:51

另外我查看了一下下单时间和相应时间交易情况,此时间段没有滑点,不存在提交了单子交易不成功的情况。
作者: cliff    时间: 2013-2-21 16:50:57

另外我查看了一下下单时间和相应时间交易情况,此时间段没有滑点,不存在提交了单子交易不成功的情况。
作者: cliff    时间: 2013-2-21 16:52:14

代码如下:


If(A_TotalPosition == 0 And GetGlobalVar(1) <= times)//空仓情况
{
                If(Time < 0.1459)
                {
                        If(High>=BuyPosition And BuyPosition > CutPosition)
                        {
                                        A_SendOrder(Enum_Buy,Enum_Entry,lots,Max(Open,BuyPosition)+i_offset);
                                        fileappend("c:\\1.txt","SendOrder = buy entry "+Text(lots)+" "+Text(Max(Open,BuyPosition)+i_offset)+" "+Text(Date)+Text(Time)+" 开多单"+ "currenttime"+ Text(CurrentTime));
                                        ordertimes = GetGlobalVar(1) + 1;
                                        SetGlobalVar(1,ordertimes);
                                        SetGlobalVar(0,GetGlobalVar(0)+1);
                                        Return;
                        }
                        If(Low<=SellPosition And SellPosition < CutPosition)
                        {
                                        A_SendOrder(Enum_Sell,Enum_Entry,lots,Min(Open,SellPosition)-i_offset);
                                        fileappend("c:\\1.txt","SendOrder = sell entry "+Text(lots)+" "+Text(Min(Open,SellPosition)-i_offset)+" "+Text(Date)+Text(Time)+" 开空单"+ "currenttime"+ Text(CurrentTime));                                        
                                        ordertimes = GetGlobalVar(1) + 1;
                                        SetGlobalVar(1,ordertimes);
                                        SetGlobalVar(0,GetGlobalVar(0)-1);
                                        Return;
                        }
                }
}
作者: cliff    时间: 2013-2-21 17:31:11

另外请问OrderRef 这个是什么意思,我在论坛里面和帮助都查不到资料!
作者: TRANS-AM    时间: 2013-2-21 18:31:15

重启后恢复正常,那就可能是网络或者是系统的问题了
作者: cliff    时间: 2013-2-21 19:09:18

这个现象已经好几次了,每次都是重启恢复,问题不到触发点,我也不知道这个系统到底是正常还是不正常的状态呢,非常影响心情啊!
作者: 小米    时间: 2013-2-22 10:24:19

看一下autotrade里的sorder的记录是什么?
这里看到,9:15有两单 ,9:30有一单 。但是你没有讲明问题是什么?何为正常?何为不正常?
作者: cliff    时间: 2013-2-22 10:47:42

autotrade里的sorder的记录是什么?
里面没有20120221.log这个记录

我自己记录的日志,的确是发送了几个指令
SendOrder = sell entry 1 2687 201302210.091500 开空单
SendOrder = sell entry 1 2677 201302210.091500 开空单
SendOrder = sell entry 1 2667 201302210.093000 开空单
作者: 小米    时间: 2013-2-22 13:42:13

cliff 发表于 2013-2-22 10:47
autotrade里的sorder的记录是什么?
里面没有20120221.log这个记录

我前面表述有误,是找安装目录下的sorder文件下,里面的日期文件。

你现在这几个指令怎么了?问题是啥?能描述一下不??
作者: cliff    时间: 2013-2-22 15:28:18

星期四早上实盘账号用A_SendOrder 连续开出三次空单,分别是9点15,9点30分,结果3次都没有成交,也见委托单
查看了F7,和ctporder没有任何信息提示和日志

我的程序自己记录的日志,一切正常说明的确有发出该指令,如下:
SendOrder = sell entry 1 2687 20130221 0.091500 开空单
SendOrder = sell entry 1 2677 20130221 0.091500 开空单
SendOrder = sell entry 1 2667 20130221 0.093000 开空单

当时软件的情况是能够正常的看行情,收取数据,说明网络连接也没有问题。

9点35分,重启了tb软件,测试,一切恢复正常。类似的情况在本周二也发生一次,在上周五也发生过一次,当时以为是程序逻辑问题。目前看,程序逻辑是没有问题。
作者: 小米    时间: 2013-2-22 16:39:37

cliff 发表于 2013-2-22 15:28
星期四早上实盘账号用A_SendOrder 连续开出三次空单,分别是9点15,9点30分,结果3次都没有成交,也见委托单 ...


是指发三交单不应该,是吗? 应该发几次是合理的?
三次单有二个在同一分钟,另一个隔了15分钟,如果不符合你的交易需求的,需要从公式里查呀。。
作者: cliff    时间: 2013-2-22 21:05:42

三次发交易单符合程序的逻辑。9点15分出现了1次卖出信号,发出了2次sendorder指令。9点30分出现了卖出信号,也发出了sendorder指令。

问题是sendorder了之后,系统好像没执行,一点反应都没有呢,查F7也没内容,查日志也没内容,但是重启tb后一切恢复正常。

在9点15到9点30之间,我曾怀疑是委托单提交了没有交易成功,因此打开了其他的交易软件,查看是否有委托单在委托状态,发现没有任何委托单和委托记录。

TB会不会因为我在前一天晚上重新编译过程序,会导致第二天不执行A_sendorder程序?
作者: 小米    时间: 2013-2-22 23:13:00

TB重启后,我测试了一下,一切恢复正常,并在ctporder里面出现了交易日志

20130221T093513 send order: 21826558 IF1303 卖开 1 2666.00 [A_SendOrder] [OrderRef=2]
20130221T095113 send order: 21826558 IF1303 买平 1 2667.40 [帐户管理 - 快速平仓] [OrderRef=3]



你好象发跟错贴子,后面的内容发到其它贴子里了。呵呵

找到问题了就好。再观察吧。
作者: cliff    时间: 2013-2-26 09:34:14

没找到问题啊,只是重启后又恢复正常了。

非常担心下次又出现发出指令,没响应的情况。
作者: 小米    时间: 2013-2-26 22:27:36

cliff 发表于 2013-2-22 21:05
三次发交易单符合程序的逻辑。9点15分出现了1次卖出信号,发出了2次sendorder指令。9点30分出现了卖出信号 ...

a_sendorder是不会生成交易日志的,只有从sorder里查发单 记录。
你自己写的日志是9点15以及30分共三次记录。但sorder里是的时间明显与之不符。
可能关键需要查看一下你的交易日志是满足某条件后就写的还是在确定有发单 后写的?这点很重要。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2