COCO研究院

 找回密碼
 註冊
搜索
樓主: 獨孤求勝

[API] 請教群益新舊版api的差別

  [複製鏈接]
發表於 19-3-23 18:02 | 顯示全部樓層
請問一下前輩 OnNotifyFutureTradeInfo 用excel的vba 套的進去嗎??

剛剛嘗試套進去後,會出現編譯錯誤:
事件程序的宣告與同名事件的描述不相符。
  1. Private Sub SKQuoteEvents_OnNotifyFutureTradeInfo(ByVal bstrStockNo As String, ByVal sMarketNo As Integer, ByVal sStockIdx As Integer, ByVal nBuyTotalCount As Long, nSellTotalCount As Long, nBuyTotalQty As Long, nSellTotalQty As Long, nByDealTotalCount As Long, neSellDealTotalCount As Long)

  2.     On Error Resume Next
  3.    
  4.     Sheet3.Cells(4, 1) = Sheet3.Cells(4, 1) + 1
  5.         
  6.     If Sheet3.Cells(4, 1) > 200 Then
  7.       
  8.         Sheet3.Cells(4, 1) = 0
  9.             
  10.     End If
  11.    
  12.     Dim pSKStock As SKSTOCK
  13.     Dim nCode As Integer
  14.    
  15.     nCode = SKQuoteEvents.SKQuoteLib_GetStockByIndex(sMarketNo, sStockIdx, pSKStock)
  16.    
  17.     With Sheet3
  18.    
  19.     Dim i As Integer
  20.     Dim strStock As String
  21.     Dim nDot As Long
  22.    
  23.     For i = 6 To Int(.Cells(2, 5)) + 5
  24.         strStock = .Cells(i, 1)
  25.         If strStock = pSKStock.bstrStockNo Then
  26.         
  27.             nDot = 10 ^ pSKStock.sDecimal
  28.             
  29.             .Cells(i, 17).Value = pSKStock.nBuyTotalCount
  30.             
  31.         
  32.             
  33.         End If
  34.     Next i
  35.     End With
  36. End Sub
複製代碼

發表於 19-3-23 20:14 | 顯示全部樓層
>> 事件程序的宣告與同名事件的描述不相符。<<

就跟您說,宣告不相符了

    HRESULT OnNotifyFutureTradeInfo (
        _bstr_t bstrStockNo,
        short sMarketNo,
        short sStockIdx,
        long nBuyTotalCount,
        long nSellTotalCount,
        long nBuyTotalQty,
        long nSellTotalQty,
        long nBuyDealTotalCount,
        long nSellDealTotalCount );

這是 vc++ 解出來 2.13.16 的宣告,

但是說明文件的宣告是這樣的
void OnNotifyFutureTradeInfo ([in]BSTR bstrStockNo, [in]SHORT sMarketNo, [in]SHORT sStockidx, [in]LONG nBuyTotalCount,  [in] LONG nSellTotalCount, [in]LONG nBuyTotalQty, [in]LONG nSellTotalQty, [in]LONG nBuyDealTotalCount, [in] LONGnSellDealTotalCount
);



核對一下吧,看那裡有錯


發表於 19-3-23 20:18 | 顯示全部樓層
Private Sub SKQuoteEvents_OnNotifyFutureTradeInfo(ByVal bstrStockNo As String, ByVal sMarketNo As Integer, ByVal sStockIdx As Integer, ByVal nBuyTotalCount As Long, nSellTotalCount As Long, nBuyTotalQty As Long, nSellTotalQty As Long, nByDealTotalCount As Long, neSellDealTotalCount As Long)

這是您的宣告,前面的變數都有 ByVal ... ...

但是後面5個變數,ByVal 的字不見了 ????
發表於 19-3-24 10:39 | 顯示全部樓層
kuolung 發表於 19-3-23 20:18
Private Sub SKQuoteEvents_OnNotifyFutureTradeInfo(ByVal bstrStockNo As String, ByVal sMarketNo As In ...

謝謝前輩的提醒,
寫到後面忘了補進去。
剛剛嘗試重新修正如下並存檔後,
重新開啟執行,沒跳出訊息了。但相關欄位會跳出資訊出來。
正瞭解是那邊有問題。。。。。

  1. Private Sub SKQuoteEvents_OnNotifyFutureTradeInfo(ByVal bstrStockNo As String, _
  2.                                                   ByVal sMarketNo As Integer, _
  3.                                                   ByVal sStockIdx As Integer, _
  4.                                                   ByVal nBuyTotalCount As Long, _
  5.                                                   ByVal nSellTotalCount As Long, _
  6.                                                   ByVal nBuyTotalQty As Long, _
  7.                                                   ByVal nSellTotalQty As Long, _
  8.                                                   ByVal nByDealTotalCount As Long, _
  9.                                                   ByVal neSellDealTotalCount As Long)

  10.     On Error Resume Next
  11.     'bstrStockNo 商品代號
  12.     'sMarketNo   市場別代號
  13.     'sStockidx   系統編碼後的特殊商品索引代號。

  14.    
  15.     Sheet3.Cells(4, 1) = Sheet3.Cells(4, 1) + 1
  16.         
  17.     If Sheet3.Cells(4, 1) > 200 Then
  18.       
  19.         Sheet3.Cells(4, 1) = 0
  20.             
  21.     End If
  22.    
  23.     Dim pSKStock As SKSTOCK
  24.     Dim nCode As Integer
  25.    
  26.     nCode = SKQuoteEvents.SKQuoteLib_GetStockByIndex(sMarketNo, sStockIdx, pSKStock)
  27.    
  28.     With Sheet3
  29.    
  30.     Dim i As Integer
  31.     Dim strStock As String
  32.     Dim nDot As Long
  33.    
  34.     For i = 6 To Int(.Cells(2, 5)) + 5
  35.         strStock = .Cells(i, 1)
  36.         If strStock = pSKStock.bstrStockNo Then
  37.         
  38.             nDot = 10 ^ pSKStock.sDecimal
  39.             
  40.             .Cells(i, 17).Value = pSKStock.nBuyTotalCount
  41.             .Cells(i, 18).Value = pSKStock.nSellTotalCount
  42.             .Cells(i, 19).Value = pSKStock.nBuyTotalQty
  43.             .Cells(i, 20).Value = pSKStock.nBuyTotalCount
  44.             .Cells(i, 21).Value = pSKStock.nBuyDealTotalCount
  45.             .Cells(i, 22).Value = pSKStock.nSellDealTotalCount
  46.             
  47.         
  48.             
  49.         End If
  50.     Next i
  51.     End With
  52. End Sub
複製代碼




發表於 19-3-26 10:05 | 顯示全部樓層
回補tick的功能對於各位大大是不是很重要@@?
發表於 19-3-26 22:24 來自手機 | 顯示全部樓層
之前很重要 實際使用以後 發覺沒那麼重要了 原因是群益的回補也是不準的 盤中就算補足所有的 tick 再比對交易所的報表也是不準的
發表於 19-3-27 09:40 | 顯示全部樓層
所以還要想辦法用交易所的報表核對資料嗎~
那沒對的人直接回補的話,也是錯的資料...然後他們都沒發現= ="

或是要自己紀錄tick??
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-24 19:38

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |