以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  求助关于marketdata.STKINDI和超时撤单的编写  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=144526)

--  作者:dylanchan265
--  发布时间:2016/12/12 15:50:15
--  求助关于marketdata.STKINDI和超时撤单的编写
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
--  发布时间:2016/12/12 16:26:30
--  
第一个问题已经查找到解决办法了,继续求问第二题。。HELP
--  作者:yukizzc
--  发布时间:2016/12/12 16:51:37
--  

buyid是什么?

 

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

 

OrderInfo2 方法

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


--  作者:dylanchan265
--  发布时间:2016/12/12 17:03:17
--  
buyid是一个全局变量,记录该单的orderid,然后再计时器中用来撤单。
我试试看~十分感谢!

--  作者:dylanchan265
--  发布时间:2016/12/12 17:07:44
--  
如果用orderinfo2获取未完成合约,那合约时间如何获取呀?
--  作者:yukizzc
--  发布时间:2016/12/12 17:28:26
--  

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

 

 

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