由 max1217 發表於 2010年 5月 31日, 23:44
請問API小天使大大:
有關程式碼裡頭的"下期貨單"部分,
如以下的程式碼,
1. varData(0 To 27)這個變數宣告,是代表varData總共需要28個參數輸入嗎?
2. 還是我只需要輸入目前程式碼裡頭列的這些變數就好了???
謝謝
Private Sub Command3_Click()
Dim Data As Variant
Dim varData() As Variant
Dim tmp As Long
'我把下單的資料寫死在這, 要下其他單, 只要依據此方法丟給STFY_API即可
'下期貨單
ReDim varData(0 To 27)
varData(ORDER_ARGS_ROCID) = m_RocId
varData(ORDER_ARGS_PASSWORD) = m_PassWord
varData(ORDER_ARGS_BRANCHID) = m_Branch
varData(ORDER_ARGS_CUSTID) = m_Account
'varData(ORDER_ARGS_AGENTID) = m_AgentId '此行資料無效! 2009/2/12改。
varData(ORDER_ARGS_SOURCE) = "IC" '來源別, IC指艾揚,勿改!無其他用途!
varData(ORDER_ARGS_ID) = "TXF"
varData(ORDER_ARGS_BS) = "B"
varData(ORDER_ARGS_ODTYPE) = "R"
varData(ORDER_ARGS_PRICE_FLAG) = "0"
tmp = 6200
varData(ORDER_ARGS_ODPRICE) = tmp * 1000 '委託價格需乘上1000, 末三位是小數位數
tmp = 1
varData(ORDER_ARGS_ODQTY) = tmp
varData(ORDER_ARGS_ODKEY) = "123456789" '此筆下單的key
'**** 只要每次下單有一個unique的key,開發人員以此為自定Key,就可以方便追蹤由程式所下的委託
varData(ORDER_ARGS_OPENCLOSE) = "O" '"O":Open新倉,"C":Close平倉,"9":Auto自動單
varData(ORDER_ARGS_MTH) = "200909"
varData(ORDER_ARGS_DAYTRADE) = "N" '"Y"當沖單,"N"非當沖,且為預設值
Data = varData
tmp = ICEGLOBALTRADEAPI1.PlaceFutOrder(Data)
'!!!! ICEGLOBALTRADEAPI1.PlaceFutOrder2 為 .NET使用
'請注意
'**** 此值若回傳1為成功的送出一筆單子,但不表示委託成功
'**** 是否委託成功,請參照ICEGLOBALTRADEAPI1_NewOrderReport及ICEGLOBALTRADEAPI1_ChgOrderReport的回報訊息
'**** 若一直回傳1,但委託一直無法成功,請開啟全球通查看回報的錯誤訊息為什麼!!
'**** 請先確定內容是否正確,勿一直不斷的測試!
'****
'**** 若此值回傳為一負值,如 -10,則表示 ORDER_ARGS_PRICE_FLAG(10) 這個值傳入錯誤,請參考交易的Const
Debug.Print "PlaceFutOrder:" & str(tmp)
End Sub