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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 求助关于marketdata.STKINDI和超时撤单的编写

   

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


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

主题:求助关于marketdata.STKINDI和超时撤单的编写

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


加好友 发短信
等级:新手上路 帖子:11 积分:0 威望:0 精华:0 注册:2016/12/5 12:05:26
求助关于marketdata.STKINDI和超时撤单的编写  发帖心情 Post By:2016/12/12 15:50:15 [只看该作者]

1. 我想通过VBA实现在窗体的文本框中个输入PEL中MA这个公式的四个参数,赋值给P1,P2,P3,P4。
    然后用函数marketdata.STKINDI(codeid, marketid, "ma(P1,P2,P3,P4)",0,0)在VBA中接入PEL的公式信息。
    有没有什么改进的方式可以实现?求教。。。

2. 想实现在同时下多张单时(分开),同时监控各张单是否超时,如果超时就撤单。下面是我的代码,求帮忙看看,只能实现最后一张单的撤单,前面的不会撤单。。
    sub order_OrderStatusEx2(OrderID, Status, Filled, Remaining, Price, Code, Market, OrderType, Aspect, Kaiping, Account, AccountType)
    select case status
        case "Inactive"
            tradeflag = 1
            stopflag = 1
            trendmodel_listbox3.additem time()&"  本次委托无效!请检查!"
        case "Submitted"
            tordertime = now()
            buyid = orderid
            tradeflag = 0
            stopflag = 1
            trendmodel_listbox3.additem time()&"  订单已成功提交!"
            call application.SetTimer(id, 1000)
        case "Filled"
            trendmodel_listbox3.additem time()&"  订单已全部成交!成交价为:"&price
            tradeflag = 1
            stopflag = 0
            call displayaccountinfo()
        case "Cancelled"
            trendmodel_listbox3.additem time()&"  撤单成功!"
            tradeflag = 1
            stopflag = 0
    end select
end sub
sub application_timer(id)
    ms = datediff("s", cdate(tordertime), cdate(now()) )
    timeflag = ms - cancelcondition
    if timeflag>0 and tradeflag = 0 then
        trendmodel_listbox3.additem time()&"  委托超时!准备撤单!"
        call order.CancelOrder(buyid)
    end if
    call application.KillTimer(1)
    call application.SetTimer(1,1000)
end sub

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


加好友 发短信
等级:新手上路 帖子:11 积分:0 威望:0 精华:0 注册:2016/12/5 12:05:26
  发帖心情 Post By:2016/12/12 16:26:30 [只看该作者]

第一个问题已经查找到解决办法了,继续求问第二题。。HELP

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/12/12 16:51:37 [只看该作者]

buyid是什么?

 

利用循环对未成交单做遍历然后查找对应的未成交时间进行撤单就可以了

 

OrderInfo2 方法

取指定基于0索引的未成交(非IB外盘)合约信息


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


加好友 发短信
等级:新手上路 帖子:11 积分:0 威望:0 精华:0 注册:2016/12/5 12:05:26
  发帖心情 Post By:2016/12/12 17:03:17 [只看该作者]

buyid是一个全局变量,记录该单的orderid,然后再计时器中用来撤单。
我试试看~十分感谢!

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


加好友 发短信
等级:新手上路 帖子:11 积分:0 威望:0 精华:0 注册:2016/12/5 12:05:26
  发帖心情 Post By:2016/12/12 17:07:44 [只看该作者]

如果用orderinfo2获取未完成合约,那合约时间如何获取呀?

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/12/12 17:28:26 [只看该作者]

OrderInfoTime2       取指定基于0索引序号的非IB外盘帐户未成交合约报单时间,例如 Order.OrderInfoTime2(0) 表示取第一个未成交单的报单时间

 

 

order对象下面都有方法的,您找找未成交附近这类的使用都有


 回到顶部