我使用带有Win 7 Home Premium的Excel 2010
我上次在15年前使用过业余的VBA。
当我打开Excel文件时,我收到了VBA消息:
Procedure declaration does not match description of event or procedure having the same name.
以下是编辑器中突出显示的行:
Private Sub m_TWSControl_orderStatus(ByVal id As Long, ByVal status As String, ByVal filled As Long, ByVal remaining As Long, ByVal avgFillPrice As Double, ByVal permId As Long, ByVal parentId As Long, ByVal lastFillPrice As Double, ByVal clientId As Long, ByVal whyHeld As String)
我很感激任何建议。
(@Robin评论后添加)
'-----------------------------
' orders events
'-----------------------------
Private Sub m_TWSControl_orderStatus(ByVal id As Long, ByVal status As String, ByVal filled As Long, ByVal remaining As Long, ByVal avgFillPrice As Double, ByVal permId As Long, ByVal parentId As Long, ByVal lastFillPrice As Double, ByVal clientId As Long, ByVal whyHeld As String)
On Error Resume Next
objTWSControl.m_TWSControl.reqIds (1001)
Dim symbol As String
symbol = ThisWorkbook.Sheets(SHEET_NAME_TRADING).UpdateOrderStatus(id, status, filled, remaining, avgFillPrice, parentId, lastFillPrice)
'add to Order Log
Call ThisWorkbook.Sheets(SHEET_NAME_ORDERLOG).LogOrderStatus(symbol, id, status, filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld)
On Error Resume Next
End Sub
这些代码都不是我写的。我是初级水平的。该代码于6月22日从TradingGeeks网站购买并下载。我花了这么多时间试图超越上面显示的第一个编译器错误。
(由于skkakkar的评论而进一步补充)
这是架构。 IB Excel Trader(IBET)与IB Trader Workstation(TWS)进行对话。这两个都在我的笔记本电脑上运行。
TWS是通过互联网与IB服务器通信的客户端。我目前使用交易平台手动输入交易,并收到交易确认。我需要为每个安全提交一笔交易 - 这是一个耗时的过程。
IBET应该允许我为交易输入一个Excel行。然后我复制并粘贴那一行数十次。我对每个安全性和每个限价(如果有的话)的每一行进行了细微的更改。然后我只需点击一下鼠标即可提交数十笔交易。这是一个好主意。