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
第一个问题已经查找到解决办法了,继续求问第二题。。HELP
buyid是什么?
利用循环对未成交单做遍历然后查找对应的未成交时间进行撤单就可以了
OrderInfo2 方法
取指定基于0索引的未成交(非IB外盘)合约信息
buyid是一个全局变量,记录该单的orderid,然后再计时器中用来撤单。
我试试看~十分感谢!
如果用orderinfo2获取未完成合约,那合约时间如何获取呀?
OrderInfoTime2 取指定基于0索引序号的非IB外盘帐户未成交合约报单时间,例如 Order.OrderInfoTime2(0) 表示取第一个未成交单的报单时间
order对象下面都有方法的,您找找未成交附近这类的使用都有