以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于市价委托的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=79238)

--  作者:wsanle
--  发布时间:2015/6/1 13:53:28
--  关于市价委托的问题
王峰老师:我通过方正证券极速交易系统,同样用Call Order.Sell(1,holding,0,0,Code,Market,Account,0)指令平仓,在通过MarketData_ReportNotify(ReportData)检测信号后自动发出平仓指令,发出的下单指令记录是:2015-06-01 13:16:29.232    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户XXXXXX Formula 1,因为其中开平2是平今,所以股票成交不了,我通过单条手工指令下单指令记录是:2015-06-01 13:31:23.554    【下单】603883 价0.000000 量2000 买卖1 类型1 开平1 账户XXXXXX Formula 1,又变成了开平1,所以股票成交了,我想请教王峰老师,为什么发出同样一条平仓指令Call Order.Sell(1,holding,0,0,Code,Market,Account,0),只是发出的方式不同,会有平今仓和平昨仓之分,怎么才能限制是平昨仓,即开平类型为1而不是2?谢谢!
--  作者:王锋
--  发布时间:2015/6/1 13:56:00
--  

要看具体怎么个不成交,建议你把日志贴全一些,这样我们也好去分析一下

[此贴子已经被作者于2015/6/1 13:56:11编辑过]

--  作者:wsanle
--  发布时间:2015/6/1 14:29:41
--  
2015-06-01 11:29:57.399    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户31327510 Formula 1
2015-06-01 11:29:57.399    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 11:30:01.845    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 11:30:01.861    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 13:16:29.232    【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1

2015-06-01 13:31:23.554    【下单】603883 价0.000000 量2000 买卖1 类型1 开平1 账户xxxxxx Formula 1
2015-06-01 13:31:23.601    【指令】收到回报指令 ID = 51
2015-06-01 13:31:23.632    【回报】xxxxxx : 603883 - 已报单 2000 价格:0.00 平 卖
2015-06-01 13:31:24.178    【指令】收到成交回报指令 ORDERID = 51
2015-06-01 13:31:24.178    【回报】xxxxxx : 603883 - 已成交 1000 价格:90.39 平 卖
2015-06-01 13:31:24.178    【指令】收到成交回报指令 ORDERID = 51
2015-06-01 13:31:24.194    【回报】xxxxxx : 603883 - 已成交 1000 价格:90.39 平 卖
2015-06-01 13:31:24.194    【回报】xxxxxx : 603883 - 全部成交 2000

前5笔委托是程序化运行时止损自动发出的指令,第6笔委托是我发现没有成交后,手动按钮发出的。
自动止损止盈程序:
Sub MarketData_ReportNotify(ReportData)                                              
    NEWPRICE = ReportData.NewPrice 
    Market=ReportData.MarketName
    Code=ReportData.Label  
    Holding=Document.GetExtData(Market+"_"+Code+"_"+"持仓数量")  
    HoldingPrice=Document.GetExtData(Market+"_"+Code+"_"+"持仓价格")  
    StopwinPrice=Document.GetExtData(Market+"_"+Code+"_"+"移动止损") 
    StopMovePrice=Document.GetExtData(Market+"_"+Code+"_"+"目标止盈")
    FristLossPrice=Document.GetExtData(Market+"_"+Code+"_"+"初始止损")
    Account=Document.GetExtString(Market+"_"+Code+"_"+"持仓账户")                                               
IF Holding>0 THEN   
   If FristLossPrice>0 AND NewPrice<=FristLossPrice  AND OnlyKey<>-1 Then                                     \'初始止损   
      Call Order.Sell(1,Holding,0,0,Code,Market,Account,0)    
      OnlyKey=-1
      EXIT SUB
   End If                                                                     
   If StopwinPrice>0 AND NewPrice<=StopwinPrice  AND OnlyKey<>-1 Then                        \'移动止盈   
      Call order.Sell(1,Holding,0,0,Code,Market,Account,0)                       
      OnlyKey=-1
      EXIT SUB
   END IF
   If StopMovePrice>0 AND NewPrice>StopMovePrice AND StopMovePrice>HoldingPrice AND OnlyKey<>-1 Then          \'目标止盈                                                  
      Call order.Sell(1,Holding,0,0,Code,Market,Account,0)                        
      OnlyKey=-1 
      EXIT SUB
   END IF  
END IF
End Sub

手动平仓按钮程序:
\'------------------------------------------------------------------------------------------------平仓
Sub BuySell_CommandButton2_Click()
     Set GridA = Buy.GetGridByName("Main") 
     MARKET=GridA.Market 
     Code=GridA.StockLabel                     
     Account=BuySell_ComboBox1.Text
     maxholding=Csng(BuySell_TextBox13.Value)                  
     IF maxholding>0 THEN                      
        Call Order.Sell(1,maxholding,0,0,Code,Market,Account,0)
     END IF    
End SUB

--  作者:王锋
--  发布时间:2015/6/1 14:34:54
--  
2015-06-01 11:29:57.399 【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户31327510 Formula 1
2015-06-01 11:29:57.399 【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 11:30:01.845 【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 11:30:01.861 【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
2015-06-01 13:16:29.232 【下单】603883 价0.000000 量2000 买卖1 类型1 开平2 账户xxxxxx Formula 1
 
交易日志上就是这样,后面什么都没有了?

--  作者:wsanle
--  发布时间:2015/6/1 14:45:25
--  
是的,什么都没有!没有任何反应,我也查了方正证券的委托记录,方正极速系统中没有任何委托信息,我想是否是因为发出的平今委托,所以没有接收,股票是不能平今的,所以也没有回报,现在我的问题是为什么同样的指令会出现开平1和开平2的委托?
--  作者:王锋
--  发布时间:2015/6/1 14:53:16
--  

应该是系统将平仓单做调整了,下个版本我们已经修复该问题


--  作者:wsanle
--  发布时间:2015/6/1 15:03:19
--  
那我暂时只能手工平仓了吗?新版本什么时间出来啊!另外我上次请教王峰老师的那个交易COM接口老出错而只能退出系统的问题,可能是我在同一台机器中同时运行了通达信系统,但是在3.6Beta3版本之前没有发生这种情况,同样这个平仓的问题,在这个版本之前一直用的好好的,也没有问题,看来这个3.6Beta3板还是有些问题,请金字塔尽快出3.6正式版,已经有很久没有升级版本了,是不是公司员工都炒股票赚大钱去了啊!拜托赶快升级啊!
--  作者:王锋
--  发布时间:2015/6/1 15:06:43
--  
COM接口的问题前面已经回复你了,如果你这边问题总是出现,那么建议你同一台机器不要安装多个新老版本的金字塔,只运行一个就不会出问题,再次提醒,若问题没解决,卸载杀毒软件后重装试试
--  作者:wsanle
--  发布时间:2015/6/4 13:50:48
--  
王峰老师:昨天一只股票自动止损又没有发出指令,用手工平仓才发出指令,但查看交易记录,手工和自动发出的指令是一样的,为什么手动可以平仓,自动就不能平仓?另外,我今天在自动平仓程序中,将市价委托变为按跌停板的价格限价委托还是委托不了,只能用手工委托,我不明白您在6楼说“应该是系统将平仓单做调整了,下个版本我们已经修复该问题”,是什么意?请告诉我现在的最新版本是否需要在哪儿设置或有替代的方法,确实不知道您说的下一个版本什么时间可以出来,我持仓有多只股票,靠眼睛监控很吃力,希望老师告诉我还有什么方法可以知道委托,别方正证券系统接收?谢谢!

2015-06-03 11:04:30.708    【下单】000652 价0.000000 量15000 买卖1 类型1 开平2 账户XXXXXXX Formula 1
2015-06-03 11:13:56.369    【下单】000652 价0.000000 量15000 买卖1 类型1 开平2 账户XXXXXXX Formula 1
2015-06-03 11:13:56.400    【指令】收到回报指令 ID = 54
2015-06-03 11:13:56.431    【回报】XXXXXXX : 000652 - 已报单 15000 价格:0.00 平 卖
2015-06-03 11:13:56.728    【指令】收到成交回报指令 ORDERID = 54
2015-06-03 11:13:56.728    【回报】XXXXXXX: 000652 - 已成交 7000 价格:12.99 平 卖
2015-06-03 11:13:56.728    【指令】收到成交回报指令 ORDERID = 54
2015-06-03 11:13:56.728    【回报】XXXXXXX : 000652 - 已成交 5000 价格:12.99 平 卖
2015-06-03 11:13:56.728    【指令】收到成交回报指令 ORDERID = 54
2015-06-03 11:13:56.743    【回报】XXXXXXX : 000652 - 已成交 3000 价格:12.99 平 卖
2015-06-03 11:13:56.743    【回报】XXXXXXX : 000652 - 全部成交 15000

2015-06-04 13:03:23.581    【下单】600588 价62.75 量5000 买卖1 类型0 开平2 账户XXXXXX Formula 1

第一行是自动委托,第二行为手动委托,回报都一样,但自动委托没有反应,只能用手动委托才成功!
最后一行是用跌停板的价格自动问题,还是没有反应,方正证券极速交易系统可以接收什么指令,请老师解答,谢谢王峰老师!

--  作者:admin
--  发布时间:2015/6/4 14:35:27
--  
这个问题主要是期货和股票软件都是用相同的格式和规范,软件平仓时,VBA部分会做是否将平仓单转化为平今单。这个问题我们3.6正式版已经修复,近期几天就会发布的