akmod 發表於 17-4-2 21:33

akmod 發表於 17-4-2 11:55
知道原因了

不是 bug


不對

真的怪怪的

股票 0051OnNotifyTicks 會回傳2筆 , 1筆試搓, 1筆正式成交
台指 TX00OnNotifyTicks 會回傳2筆 , 2筆都是 正式成交 -> 不應該回傳2筆呀





akmod 發表於 17-4-2 21:58

多謝 cukie 提示
總委買已經 ok
我還以為它綁在 best5

alexliou 發表於 17-4-3 15:38

本帖最後由 alexliou 於 17-4-3 16:23 編輯

akmod 發表於 17-4-2 21:33
不對

真的怪怪的

看起來在盤後(盤中我猜是一樣的Behavior)確是傳了兩筆
這是首次索取該檔商品的狀況

* 列第三個括弧內是nPtr編號

如果是非首次的狀況,則會傳三筆
先補一筆最新的, 再補個歷史兩筆(包括最新一筆)


非首度索取之前是否曾用頁碼50去取消訂閱, 不影響結果



alexliou 發表於 17-4-4 09:46

alexliou 發表於 17-4-3 15:38
看起來在盤後(盤中我猜是一樣的Behavior)確是傳了兩筆
這是首次索取該檔商品的狀況



這樣的設計 有一個很大的缺點
當User 提出對某檔商品提出Ticks request 後
然後又在極短時間內(此時上一檔的第二筆回傳還沒到) 變更需求標的
OnNotifyTicks 收到的Ticks 變成兩檔混在一起

對同一時間只需要一檔商品的User來說
EventHandler 就要去辨別回來的Ticks 到底是屬於哪一檔的

但這對同一時間Request多檔商品Ticks 的User沒差
因為區分原本就是必要的工作


張卡 發表於 17-4-4 21:39

本帖最後由 張卡 於 17-4-4 21:46 編輯

請問群益api

windowsforms格式:
m_SKQuoteLib.OnConnection += new _ISKQuoteLibEvents_OnConnectionEventHandler(m_SKQuoteLib_OnConnection);

事件EventHandler
SKCOMLib提供的是EventHandler
但WPF是RoutedEventHandler
該怎麼解決這問題呢?
卡很久希望高手能指點一下
謝謝

akmod 發表於 17-4-5 10:39

盤中OnNotifyTicks 還是會傳回所有歷史
盤後OnNotifyTicks 只傳2筆

盤前連線進入盤中後 股票SKQuoteLib_GetStockByNo 傳回的 總成交量 = 0
盤中連線                  股票   SKQuoteLib_GetStockByNo 傳回的 總成交量 = 正確值

bug 一堆如何用 ? 根本就沒有修正

akmod 發表於 17-4-5 10:56

回 cukie
RequestTicks必須8:26後(清盤)送才有資料.

但是我 8:30 , 8:45
RequestStocks + RequestTicks
SKQuoteLib_GetStockByNo 傳回的股票總量都是 0

akmod 發表於 17-4-5 11:06

cukie 發表於 17-4-5 11:02
Hello
Quote.log , 20170405_Quote.log 有錯誤訊息嗎

沒有

只會發生在股票身上
期權不會
我明天再試1次

alexliou 發表於 17-4-5 12:01

本帖最後由 alexliou 於 17-4-5 12:13 編輯

OnNotifyTicks 的Behavior 大概是這樣:

首度索取: 從最新一筆Tick 的前一筆Tick之後所有的Ticks
所以盤後看起來像是傳兩筆

非首度索取:
1)先傳一筆最新的Tick
2)然後傳部分的historical ticks :從首度索取當時前一筆Tick 之後所有的Ticks(含非首度索取"當時"的那筆最新Tick)
如果首度索取發生在盤前, 就等於是補傳所有的Ticks

所以盤後會看起來像是三筆(如果首度索取也發生在盤後)
第一筆 --->當日最後一筆Tick
第二筆---->當日最後一筆Tick的前一筆
第三筆----->當日最後一筆Tick

alexliou 發表於 17-4-5 12:27

本帖最後由 alexliou 於 17-4-5 12:45 編輯

akmod 發表於 17-4-5 10:39
但是我 8:30 , 8:45
RequestStocks + RequestTicks
SKQuoteLib_GetStockByNo 傳回的股票總量都是 0

GetStockByNo 不會傳最新的成交狀況給你
它所帶回來的SKStock物件中只有昨日收盤價.漲停.跌停等資訊

你要最新的成交狀況
得用 GetStockByIndex

akmod 發表於 17-4-5 13:21

本帖最後由 akmod 於 17-4-5 13:24 編輯

alexliou 發表於 17-4-5 12:27
GetStockByNo 不會傳最新的成交狀況給你
它所帶回來的SKStock物件中只有昨日收盤價.漲停.跌停等資訊


我立刻連線1次
一直傳回最新報價



alexliou 發表於 17-4-5 15:40

本帖最後由 alexliou 於 17-4-5 16:01 編輯

akmod 發表於 17-4-5 13:21
我立刻連線1次
一直傳回最新報價

你是對的
GetStockByNo 的Behavior 和我原先想的不同
它竟然也會根據在甚麼狀況下執行而有不同的結果
如果沒有先執行 RequestStocks 要求這檔股票的持續報價
它只給你編碼資訊.昨收.漲停.跌停等資訊, 其餘資料欄位都是0

如果你先執行了RequestStocks, 再Call GetStockByNo 才可以拿到最新的成交資訊

akmod 發表於 17-4-5 17:36

本帖最後由 akmod 於 17-4-5 17:43 編輯

從去年底反應的好幾個 bug 至今長達 4各月

只修正綁回 history

小弟宣佈退出這個無止盡的 xx 遊戲

短期都不在測試 ^^

alexliou 發表於 17-4-5 19:13

本帖最後由 alexliou 於 17-4-5 21:12 編輯

我的感覺是
整體而言 目前群益API(Ver. 2.13.5)的功能是OK的 可用的
它所提供的C#範例也很具參考性
只是在某些function的細節 使用說明並沒有寫得很詳細

如果能弄清楚這些細節, 程式都是可以因應的
例如前面曾討論非首度索取Ticks時, OnNotifyTicks 回傳Ticks 會有重複的情形
我們知道會有這種情形發生,   就可以靠檢查nPtr   把重複的Ticks 濾掉

在附圖中, Log 顯示收到三筆Tick, 但即時量價那個表就把重複的那筆Tick踢掉

又例如非首度索取Ticks時 , OnNotifyTicks 會傳回部分的Historical Ticks
如果Historical Ticks 一下子量很大, 有時會影響到其它User Interface(如五檔報價的顯示) 的Responsiveness
就可以考慮 1)把這種速度較慢(相對於Memory)的工作 叫BackgroudWorker來做
2)暫時把這種time-consuming task 的 顯示UI和它的 in-memory DataSouce 切開, 等到收完再接回來
這樣其它UI就不會感覺到Lag了

j202036 發表於 17-5-26 17:00

最近盤中報價都會斷線,真麻煩.
頁: 1 2 3 4 [5] 6
查看完整版本: 請教群益新舊版api的差別