Sinotrade / Shioaji

Shioaji all new cross platform api for trading ( 跨平台證券交易API )
https://sinotrade.github.io/
161 stars 12 forks source link

執行中出現多種錯誤訊息,致使資料抓取失敗,甚至程式直接當掉結束執行,請問如何處置? #137

Closed superdavid0816 closed 1 year ago

superdavid0816 commented 1 year ago

您好,感謝您的幫忙

我在 x86的cpu上使用c#並使用shioaji v1.0.1

我下的命令完全依照範例程式進行: Shioaji _api = new Shioaji(); var _accounts = _api.Login("YOUR_API_KEY", "YOUR_SECRET_KEY"); Console.WriteLine(_accounts);

var contract = _api.Contracts.Stocks["TSE"]["2330"]; Kbars kbars = _api.Kbars(contract, "2021-09-13", "2021-09-13");

var res = _api.Logout(); Console.WriteLine(res);

我遇到多種不同的錯誤訊息

第一種: Kbars kbars = _api.Kbars(contract, "2021-09-13", "2021-09-13"); 出現錯誤: Request failed, return code: SOLCLIENT_INCOMPLETE Cannot perform runtime binding on a null reference

第二種,這是在上面抓取KBar資料後出現錯誤之後,要logout的時候出現的錯誤,而這個錯誤會讓整個程式直接當掉停止運作 命令: var res = _api.Logout(); 出現錯誤: Request failed, return code: SOLCLIENT_INCOMPLETE Unhandled exception. Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at CallSite.Target(Closure , CallSite , Object ) at Sinopac.Shioaji.SolaceApi.Logout() at Sinopac.Shioaji.Shioaji.ReleaseUnmanagedResources() at Sinopac.Shioaji.Shioaji.Finalize()

我曾經懷疑是我抓取的時間區間帶大,但是我改抓短區間的資料,仍然反覆出現上述兩種錯誤

請問是我哪裡操作不正確嗎?還是我需要在做什麼樣的調整呢? 感謝您的幫忙

luckchiao commented 1 year ago

已修正,可以將C# sj 更新至1.0.2版本

superdavid0816 commented 1 year ago

@luckchiao 謝謝你,更新後有幫助,程式不正常突然中段的現象解除,謝謝你。

請問您,在抓取 KBar的時候,有時仍會出現 Request failed, return code: SOLCLIENT_INCOMPLETE 請問是什麼原因呢? 謝謝你

luckchiao commented 1 year ago

@superdavid0816 嗨~ 只從這個錯誤我無法得知發生什麼事,你可以進shioaji 客戶服務群(https://t.me/+MLbqzvPpfWM5M2Y1) ,再詳細說明操作方式。