欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 如何在限定时间内不成交即撤单?、这个功能如何实现,求具体的代码??

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3861人关注过本帖树形打印复制链接

主题:如何在限定时间内不成交即撤单?、这个功能如何实现,求具体的代码??

帅哥哟,离线,有人找我吗?
啊东西
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
如何在限定时间内不成交即撤单?、这个功能如何实现,求具体的代码??  发帖心情 Post By:2014/11/20 19:15:32 [只看该作者]

 fglongorderid=Getlongpendingorder("FG06","ZQ")
fglongorderidtime=order.OrderInfoTime2(fglongorderid)
上面两行,我已经取得了未成交单子的单号和委托的时间,假如说我要委托后十秒钟不能成交就撤单,我该怎么写?


 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/11/21 10:21:51 [只看该作者]

 


Sub OrderCheDan()    '获取未成交单,指定秒数后撤单
   PendingCount=Order.OrderNum2
    For i=0 to PendingCount-1
    Call Order.OrderInfo2(i,OrderID,ConSign,Filled,Remaining,Action,OrderType,LmtPrice,Account,Kaiping,Code,Market)
   'application.MsgOut Cdate(time) & ",sAction:" & sAction & ",sKaiping:" & sKaiping & ",LmtPrice:" & LmtPrice & ",OrderID:" & OrderID
    OrdTime=right(Order.OrderInfoTime2(i),8)
    'application.MsgOut "OrdTime:"&OrdTime
    if Datediff("s",OrdTime,Cdate(time))>10 then     '大于10秒撤单
   Call Order.CancelOrder( OrderID)
   end if   
   
   Next
End Sub



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
啊东西
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
  发帖心情 Post By:2014/11/23 21:20:13 [只看该作者]

请教版主一下,如果是我要取得某一个品种的空头多仓或者空仓的未成交单子,请问这样子的写法对吗??
Function Getshortpendingorder(Scode,Smarket)  '获取未成交单
Dim Orderid   '订单Id
Dim Filled   '提交手数
Dim Remaining  '剩余手数
Dim Action   '买卖
Dim Ordertype  '订单类型
Dim Lmtprice  '委托价
Dim Account1   '账户
Dim Kaiping   '开平
Getshortpendingorder=0
Pendingcount=Order.Ordernum2
For i=0 To Pendingcount-1
    Call Order.Orderinfo2(i,Orderid,Consign,Filled,Remaining,Action,Ordertype,Lmtprice,Account1,Kaiping,Code,Market)
    If Code=Scode and action=1 and kaiping=0 Then
    
        GETshortPENDINGORDER=ORDERID
    End If
    if Code=Scode and action=0 and kaiping=2 then
        GETshortPENDINGORDER1=ORDERID
    end if
Next
End Function

 回到顶部
帅哥哟,离线,有人找我吗?
啊东西
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
  发帖心情 Post By:2014/11/23 21:21:40 [只看该作者]

写错了,应该是取得空头的开仓单子或者平仓单子?


 回到顶部
帅哥哟,离线,有人找我吗?
啊东西
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
  发帖心情 Post By:2014/11/23 21:28:36 [只看该作者]

请问你给的代码当中的 OrdTime=right(Order.OrderInfoTime2(i),8)是什么意思呢?

 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2014/11/24 8:44:16 [只看该作者]

OrdTime=right(Order.OrderInfoTime2(i),8)是订单的委托时间

另外,楼主需要了解一下自定义函数的格式,返回值都是以函数的名字作为变量返回的,比如

function aaa(var1,var2)

    '你的代码

    aaa=XXX     '这一行就是返回值,注意前面的aaa,就是函数的名称

end function


 回到顶部
帅哥哟,离线,有人找我吗?
啊东西
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
  发帖心情 Post By:2014/11/24 9:32:17 [只看该作者]

版主大哥,我的疑惑主要在于

OrdTime=right(Order.OrderInfoTime2(i),8)这个语句里面有这个right(  ,8)是不是因为是因为某些品种的交易时间因为在金字塔上经过修改,与实际时间不一致,所以会将时间前移8个小时,请问是不是这样?、



 回到顶部
帅哥哟,离线,有人找我吗?
啊东西
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:63 积分:0 威望:0 精华:0 注册:2014/8/15 10:20:25
  发帖心情 Post By:2014/11/24 9:34:49 [只看该作者]

小弟还有一个问题想请教一下大哥:金字塔VBA在一个项目当中的一个小模块当中,最多可以写多少行VBA代码??如果是使用专业机构版的多账户功能,在VBA的情况下,是不是最多可以登录15个账户??


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/11/24 16:26:57 [只看该作者]

以下是引用啊东西在2014/11/24 9:32:17的发言:
版主大哥,我的疑惑主要在于

OrdTime=right(Order.OrderInfoTime2(i),8)这个语句里面有这个right(  ,8)是不是因为是因为某些品种的交易时间因为在金字塔上经过修改,与实际时间不一致,所以会将时间前移8个小时,请问是不是这样?、


 

这里的主要意思应该是只取交易时间,因为这个返回的格式是 日期+时间 格式的



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/11/25 13:16:19 [只看该作者]

用户要学会基本的调试,例如OrdTime=right(Order.OrderInfoTime2(i),8)//你不知道为什么要用8这个参数

那么你可以直接输出相爱Order.OrderInfoTime2(i)的值,看看与ordtime的差别在那,相信你就明白了。学习就是多动手,别人讲透了就缺少了学习的乐趣



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部