chrisli-kw / AutoTradingPlatform

A stock/futures auto trading framework using Shioaji API
Apache License 2.0
37 stars 9 forks source link

account 名稱問題 #5

Open q10242 opened 6 days ago

q10242 commented 6 days ago

我創造了一個accout 叫做testing 不過env的部分把名稱自動改為testing_1 我嘗試使用account_info功能時,程式自動去抓了accountname 但這就會有一個問題是,去抓testing抓不到 所以我必須要手動把env的_1 去掉 但這樣又會在顯示account info時, 他去抓最尾部的字元,結果抓到的是'g' 無法轉換成數字,最後報錯

Traceback (most recent call last):
  File "/Users/kyjita/codebase/autotrading/AutoTradingPlatform/trader/tasker.py", line 180, in runAutoTrader
    se.run()
  File "/Users/kyjita/codebase/autotrading/AutoTradingPlatform/trader/executor.py", line 895, in run
    self.loop_pause()
  File "/Users/kyjita/codebase/autotrading/AutoTradingPlatform/trader/executor.py", line 841, in loop_pause
    next_time = (second + microsecond) % int(freq)
ValueError: invalid literal for int() with base 10: '5      # monitor frequency (seconds per loop)'
2024-11-02 Sat 19:25:43.631|DEBUG: Starting new HTTPS connection (1): notify-api.line.me:443
chrisli-kw commented 6 days ago

自動改為testing_1的部分是正確的,因為當初開發時,考慮到一個ID可能有多個交易帳戶,才會在accountname後面再加上數字 不過我想知道你是在什麼情況下出現錯誤訊息的?能否提供一段程式碼讓我排查?因為我看這段錯誤訊息是執行loop_pause()時報錯,這個只有跑交易時會調用 感謝

q10242 commented 6 days ago

自動改為testing_1的部分是正確的,因為當初開發時,考慮到一個ID可能有多個交易帳戶,才會在accountname後面再加上數字 不過我想知道你是在什麼情況下出現錯誤訊息的?能否提供一段程式碼讓我排查?因為我看這段錯誤訊息是執行loop_pause()時報錯,這個只有跑交易時會調用 感謝

抱歉,我提供不對的錯誤訊息了 實際上應該是 AutoTradingPlatform/trader/utils/accounts.py 這個檔案的61行 出現 ValueError: invalid literal for int() with base 10: 'g'的錯誤 因為testing的最後一個字元是g 所以他抓到這一個 我那時跑的指令是python run.py -TASK account_info --account testing

chrisli-kw commented 4 days ago

我懂了,因為 .env 中的帳戶代號是 testing_1,所以執行的指令應該是這樣才對:

python run.py -TASK account_info --account testing_1

這樣應該就能成功執行,因為我也是這樣執行交易的 我也順便加上了防呆,若還有其他問題歡迎提出,謝謝您