有用過群益API的大大知道怎麼解決這個問題嗎??
有用過群益API的大大知道怎麼解決這個問題嗎??這是群益下載的範例檔,我登入了,但他會出現那個錯誤訊息,求大大幫幫我吧
群益API 中 有一 SKQuoteLib.dll
將其放在跟範例檔 同一目錄內 (或是指定的路徑) acerman 發表於 13-3-13 12:08 static/image/common/back.gif
群益API 中 有一 SKQuoteLib.dll
將其放在跟範例檔 同一目錄內 (或是指定的路徑) ...
同一個路徑指的是??
acerman 發表於 13-3-13 12:08 static/image/common/back.gif
群益API 中 有一 SKQuoteLib.dll
將其放在跟範例檔 同一目錄內 (或是指定的路徑) ...
大大可以再說明白一點嗎?? 獨孤求勝 發表於 13-3-13 12:10 static/image/common/back.gif
大大可以再說明白一點嗎??
放在和excel範例檔同一個目錄
comewish 發表於 13-3-13 12:29 static/image/common/back.gif
放在和excel範例檔同一個目錄
大大謝謝你,成功了,但現在他不會接收報價ㄟ,要怎麼讓他接收報價
comewish 發表於 13-3-13 12:29 static/image/common/back.gif
放在和excel範例檔同一個目錄
Option Explicit
Declare Function SKQuoteLib_Initialize Lib "SKQuoteLib.dll" (ByVal strID As String, ByVal strPass As String) As Long
Declare Function SKQuoteLib_EnterMonitor Lib "SKQuoteLib.dll" () As Long
Declare Function SKQuoteLib_AttachConnectionCallBack Lib "SKQuoteLib.dll" (ByVal Func As Long) As Long
Declare Function SKQuoteLib_AttachQuoteCallBack Lib "SKQuoteLib.dll" (ByVal Func As Long) As Long
Declare Function SKQuoteLib_AttachTicksCallBack Lib "SKQuoteLib.dll" (ByVal Func As Long) As Long
Declare Function SKQuoteLib_AttachBest5CallBack Lib "SKQuoteLib.dll" (ByVal Func As Long) As Long
Declare Function SKQuoteLib_RequestStocks Lib "SKQuoteLib.dll" (ByRef Page As Integer, ByVal Stocks As String) As Long
Declare Function SKQuoteLib_RequestTicks Lib "SKQuoteLib.dll" (ByRef Page As Integer, ByVal Stock As String) As Long
Declare Function SKQuoteLib_GetStockByNo Lib "SKQuoteLib.dll" (ByVal strStockNo As String, ByRef Stock As TStock) As Long
Declare Function SKQuoteLib_GetStockByIndex Lib "SKQuoteLib.dll" (ByVal Market As Integer, ByVal Index As Integer, ByRef Stock As TStock) As Long
Declare Function SKQuoteLib_GetTick Lib "SKQuoteLib.dll" (ByVal Market As Integer, ByVal Index As Integer, ByVal Ptr As Long, ByRef Tick As TTick) As Long
Declare Function SKQuoteLib_GetBest5 Lib "SKQuoteLib.dll" (ByVal Market As Integer, ByVal Index As Integer, ByRef Best5 As TBest5) As Long
Type TStock
Stockidx As Integer
Decimal As Integer
TypeNo As Integer
MarketNo As Byte
StockNo As String * 20
StockName As String * 10
Open As Long
High As Long
Low As Long
Close As Long
TickQty As Long ' 單量
Ref As Long ' 昨收、參考價
Bid As Long ' 買價
Bc As Long ' 買量
Ask As Long ' 賣價
Ac As Long ' 賣量
TBc As Long ' 買盤量
TAc As Long ' 賣盤量
FutureOI As Long ' 期貨未平倉 OI
TQty As Long ' 單量
YQty As Long
Up As Long ' 漲停
Down As Long ' 跌停
End Type
Type TTick
Ptr As Long
Time As Long
Bid As Long
Ask As Long
Close As Long
Qty As Long
End Type
Type TBest5
Bid1 As Long
BidQty1 As Long
Bid2 As Long
BidQty2 As Long
Bid3 As Long
BidQty3 As Long
Bid4 As Long
BidQty4 As Long
Bid5 As Long
BidQty5 As Long
ExtendBid As Long
ExtendBidQty As Long
Ask1 As Long
AskQty1 As Long
Ask2 As Long
AskQty2 As Long
Ask3 As Long
AskQty3 As Long
Ask4 As Long
AskQty4 As Long
Ask5 As Long
AskQty5 As Long
ExtendAsk As Long
ExtendAskQty As Long
End Type
Public Function Login(ByVal AcNo As String, ByVal Pwd As String) As Integer
Dim Status As Long
Status = Status + SKQuoteLib_Initialize(AcNo, Pwd)
Status = Status + SKQuoteLib_AttachConnectionCallBack(AddressOf OnConnectionBack)
Status = Status + SKQuoteLib_AttachQuoteCallBack(AddressOf OnQuoteCallBack)
'Status = Status + SKQuoteLib_AttachTicksCallBack(AddressOf OnTicks)
'Status = Status + SKQuoteLib_AttachBest5CallBack(AddressOf OnBest5)
If Status = 0 Then
Status = SKQuoteLib_EnterMonitor()
Login = 0
Else
Login = -1
End If
End Function
Sub OnConnectionBack(ByVal Kind As Long, ByVal Code As Long)
If Code = 0 Then
MsgBox "報價伺服器登入成功!!"
Else
MsgBox "報價中斷!!"
UserForm1.Show
End If
End Sub
Sub OnQuoteCallBack(ByVal Market As Integer, ByVal Index As Integer)
On Error Resume Next
Dim Status As Long, Stock As TStock, ComId As String, Dot As Integer
Status = SKQuoteLib_GetStockByIndex(Market, Index, Stock)
ComId = Replace(Stock.StockNo, Chr(160), "")
Dot = 10 ^ Stock.Decimal
Dim i As Integer, N As Integer, ComIds As String
N = Sheet1.Cells(2, 3).Value
For i = 4 To N + 3
If ComId = Sheet1.Cells(i, 1).Value Then
With Sheet1
.Cells(i, 2).Value = Stock.Bid / Dot
.Cells(i, 3).Value = Stock.Bc
.Cells(i, 4).Value = Stock.Ask / Dot
.Cells(i, 5).Value = Stock.Ac
.Cells(i, 6).Value = Stock.Close / Dot
.Cells(i, 9).Value = Stock.TickQty
.Cells(i, 10).Value = Stock.TQty
.Cells(i, 11).Value = Stock.High / Dot
.Cells(i, 12).Value = Stock.Low / Dot
.Cells(i, 13).Value = Stock.Ref / Dot
End With
Exit For
End If
Next i
End Sub
Sub OnTicks(ByVal MarketNo As Integer, ByVal Index As Integer, ByVal Ptr As Long)
'Dim Tick As TTick
'If Form1.Check2.Value = 1 Then
' If Form1.List2.ListCount > 2000 Then
' Form1.List2.Clear
' End If
' Form1.List2.AddItem ("Ptr: " + Str(Tick.Ptr) _
' + " Time: " + Str(Tick.Time) _
' + " Bid: " + Str(Tick.Bid) _
' + " ASK: " + Str(Tick.Ask) _
' + " Close: " + Str(Tick.Close) _
' + " Qty" + Str(Tick.Qty))
' Form1.List2.ListIndex = Form1.List2.ListCount - 1
'End If
'Status = SKQuoteLib_GetTick(MarketNo, Index, Ptr, Tick)
'Sheet1.Cells(3, 1).Value = "Ptr: " + Str(Tick.Ptr)
'Sheet1.Cells(3, 2).Value = "Time: " + Str(Tick.Time)
'Sheet1.Cells(3, 3).Value = "Bid: " + Str(Tick.Bid)
'Sheet1.Cells(3, 4).Value = "ASK: " + Str(Tick.Ask)
'Sheet1.Cells(3, 5).Value = "Close: " + Str(Tick.Close)
'Sheet1.Cells(3, 6).Value = "Qty" + Str(Tick.Qty)
End Sub
Sub OnBest5(ByVal MarketNo As Integer, ByVal Index As Integer)
'Dim Best5 As TBest5
'If Form1.Check3.Value = 1 Then
' If Form1.List3.ListCount > 2000 Then
' Form1.List3.Clear
' End If
'Status = SKQuoteLib_GetBest5(MarketNo, Index, Best5)
'Form1.List3.AddItem ( _
"Bid 1: " + Str(Best5.Bid1) + " Qty: " + Str(Best5.BidQty1) _
+ "Bid 2: " + Str(Best5.Bid2) + " Qty: " + Str(Best5.BidQty2) _
+ "Bid 3: " + Str(Best5.Bid3) + " Qty: " + Str(Best5.BidQty3) _
+ "Bid 4: " + Str(Best5.Bid4) + " Qty: " + Str(Best5.BidQty4) _
+ "Bid 5: " + Str(Best5.Bid5) + " Qty: " + Str(Best5.BidQty5))
' Form1.List3.AddItem ( _
"Ask 1: " + Str(Best5.Ask1) + " Qty: " + Str(Best5.AskQty1) _
+ "Ask 2: " + Str(Best5.Ask2) + " Qty: " + Str(Best5.AskQty2) _
+ "Ask 3: " + Str(Best5.Ask3) + " Qty: " + Str(Best5.AskQty3) _
+ "Ask 4: " + Str(Best5.Ask4) + " Qty: " + Str(Best5.AskQty4) _
+ "Ask 5: " + Str(Best5.Ask5) + " Qty: " + Str(Best5.AskQty5))
' Form1.List3.AddItem ("Extend Bid: " + Str(Best5.ExtendBid) + " Qty: " + Str(Best5.ExtendBidQty))
' Form1.List3.AddItem ("Extend Ask: " + Str(Best5.ExtendAsk) + " Qty: " + Str(Best5.ExtendAskQty))
' Form1.List3.ListIndex = Form1.List3.ListCount - 1
'End If
End Sub
這個程式要修改才能接收報價嗎??
程式應該是不用改,你檢查一下商品代號是不是正確的,例子中的商品代號應該已經過期了 獨孤求勝 發表於 13-3-13 12:41 static/image/common/back.gif
Option Explicit
Declare Function SKQuoteLib_Initialize Lib "SKQuoteLib.dll" (ByVal strID As String ...
修改一個地方試試看在 SubOnQuoteCallBack(ByVal Market As Integer, ByVal Index As Integer) 內,把下面這個程式碼ComId =Replace(Stock.StockNo, Chr(160), "")改成ComId =WorksheetFunction.Substitute(Stock.StockNo, Chr(160), "") 然後…..Good Luck ! ethanliang 發表於 13-3-15 13:28 static/image/common/back.gif
修改一個地方試試看在 SubOnQuoteCallBack(ByVal Market As Integer, ByVal Index As Integer) 內,把下 ...
謝謝大大我試試看可不可以
頁:
[1]