clojure-quant / quanta

quantitative technical analysis in clojure
13 stars 4 forks source link

Local lib ta/trateg not found #13

Closed sg-qwt closed 10 months ago

sg-qwt commented 1 year ago

Hi there,

Thanks for this library. I'm relative new to algorithmic trading and try to play with the repo. However, when I cloned this repo in for example /home/me/repe/trateg and cd app/demo and run clojure -X:run :task :import-series :symbols "BTCUSD" :provider :bybit

It complains Error building classpath. Local lib ta/trateg not found: /home/me/repo/trateg/app/trateg

I noticed the demo used :local/root ta/trateg {:local/root "../../lib/trateg" :deps/manifest :deps}, so it seems weird to me the error message complains about /home/me/repo/trateg/app/trateg instead of /home/me/repo/trateg/lib/trateg

Also, if I just change the relative path to absolve path to be sure, ta/trateg {:local/root "/home/me/repe/trateg/lib/trateg" :deps/manifest :deps}, and run clojure -X:run :task :import-series :symbols "BTCUSD" :provider :bybit, it errored out with same error:

Error building classpath. Local lib ta/trateg not found: /home/me/repo/trateg/app/trateg

Note I put full path "/home/me/repe/trateg/lib/trateg" there and it complains with this weird app path /home/me/repo/trateg/app/trateg

Do you have any idea what might go wrong here, thanks!

sg-qwt commented 1 year ago

ok, I found the culprit in #14 ...

sg-qwt commented 1 year ago

Tried three ways of import data, none of which seems to work: MYVAULT=/xxx/myvault

clj -X:run :task :import-series :symbols "NG" :provider :kibot

2023-09-28T08:15:48.738Z  INFO [demo.env.task:23] - import symbol:  NG
2023-09-28T08:15:48.739Z  INFO [ta.data.import:46] - import provider:  :kibot  symbol:  nil  range:  D
2023-09-28T08:15:48.740Z  ERROR [modular.system:22] - Exception running run-fn:  #error {
 :cause "temporal"
 :via
 [{:type java.lang.NullPointerException
   :message "temporal"
   :at [java.util.Objects requireNonNull "Objects.java" 235]}]
 :trace
 [[java.util.Objects requireNonNull "Objects.java" 235]
  [java.time.format.DateTimeFormatter formatTo "DateTimeFormatter.java" 1844]
  [java.time.format.DateTimeFormatter format "DateTimeFormatter.java" 1823]
  [cljc.java_time.format.date_time_formatter$format invokeStatic "date_time_formatter.clj" 39]
  [cljc.java_time.format.date_time_formatter$format invoke "date_time_formatter.clj" 39]
  [tick.core$format invokeStatic "core.cljc" 1348]
  [tick.core$format invoke "core.cljc" 1342]
  [ta.data.api_ds.kibot$fmt_yyyymmdd invokeStatic "kibot.clj" 72]
  [ta.data.api_ds.kibot$fmt_yyyymmdd invoke "kibot.clj" 71]
  [ta.data.api_ds.kibot$range__GT_parameter invokeStatic "kibot.clj" 83]
  [ta.data.api_ds.kibot$range__GT_parameter invoke "kibot.clj" 74]
  [ta.data.api_ds.kibot$get_series invokeStatic "kibot.clj" 90]
  [ta.data.api_ds.kibot$get_series invoke "kibot.clj" 87]
  [ta.data.import$import_series invokeStatic "import.clj" 48]
  [ta.data.import$import_series invoke "import.clj" 39]
  [demo.env.task$run invokeStatic "task.clj" 24]
  [demo.env.task$run invoke "task.clj" 17]
  [modular.system$run_safe invokeStatic "system.clj" 17]
  [modular.system$run_safe invoke "system.clj" 13]
  [modular.system$run_fn invokeStatic "system.clj" 26]
  [modular.system$run_fn invoke "system.clj" 24]
  [modular.system$start_BANG_ invokeStatic "system.clj" 79]
  [modular.system$start_BANG_ invoke "system.clj" 69]
  [clojure.lang.Var invoke "Var.java" 384]
  [clojure.run.exec$exec invokeStatic "exec.clj" 89]
  [clojure.run.exec$exec invoke "exec.clj" 78]
  [clojure.run.exec$_main$fn__220 invoke "exec.clj" 228]
  [clojure.run.exec$_main invokeStatic "exec.clj" 224]
  [clojure.run.exec$_main doInvoke "exec.clj" 192]
  [clojure.lang.RestFn applyTo "RestFn.java" 137]
  [clojure.lang.Var applyTo "Var.java" 705]
  [clojure.core$apply invokeStatic "core.clj" 667]
  [clojure.main$main_opt invokeStatic "main.clj" 514]
  [clojure.main$main_opt invoke "main.clj" 510]
  [clojure.main$main invokeStatic "main.clj" 664]
  [clojure.main$main doInvoke "main.clj" 616]
  [clojure.lang.RestFn applyTo "RestFn.java" 137]
  [clojure.lang.Var applyTo "Var.java" 705]
  [clojure.main main "main.java" 40]]}

clj -X:run :task :import-series :symbols "MSFT" :provider :alphavantage

2023-09-28T08:19:08.610Z  INFO [demo.env.task:23] - import symbol:  MSFT
2023-09-28T08:19:08.611Z  INFO [ta.data.import:46] - import provider:  :alphavantage  symbol:  nil  range:  D
2023-09-28T08:19:14.491Z  ERROR [ta.data.api.alphavantage:215] - get series error  nil  error message:  Invalid API call. Please retry or visit the documentation (https://www.alphavantage.co/documentation/) for TIME_SERIES_DAILY.
2023-09-28T08:19:14.492Z  INFO [ta.data.import:50] - imported  nil  -  0 bars.
2023-09-28T08:19:14.495Z  INFO [modular.system:42] - stopping clip services:  (:config :secrets :timbre :alphavantage :quandl :symbol-lists)

clj -X:run :task :import-series :symbols "BTCUSD" :provider :bybit

2023-09-28T08:19:50.149Z  INFO [demo.env.task:23] - import symbol:  BTCUSD                                                                                                                                   
2023-09-28T08:19:50.150Z  INFO [ta.data.import:46] - import provider:  :bybit  symbol:  nil  range:  D                                                                                                       
2023-09-28T08:19:50.151Z  ERROR [modular.system:22] - Exception running run-fn:  #error {                                                                                                                    
 :cause "class java.lang.Character cannot be cast to class java.util.Map$Entry (java.lang.Character and java.util.Map$Entry are in module java.base of loader 'bootstrap')"                                    
 :via                                                                                                                                                                                                          
 [{:type java.lang.ClassCastException
   :message "class java.lang.Character cannot be cast to class java.util.Map$Entry (java.lang.Character and java.util.Map$Entry are in module java.base of loader 'bootstrap')"
   :at [clojure.lang.APersistentMap cons "APersistentMap.java" 42]}]
 :trace
 [[clojure.lang.APersistentMap cons "APersistentMap.java" 42]
  [clojure.lang.RT conj "RT.java" 677]
  [clojure.core$conj__5455 invokeStatic "core.clj" 87]
  [clojure.core$merge$fn__6027 invoke "core.clj" 3066]
  [clojure.core$reduce1 invokeStatic "core.clj" 946]
  [clojure.core$reduce1 invokeStatic "core.clj" 936]
  [clojure.core$merge invokeStatic "core.clj" 3065] 
  [clojure.core$merge doInvoke "core.clj" 3058]
  [clojure.lang.RestFn invoke "RestFn.java" 421]
  [ta.data.api_ds.bybit$get_series invokeStatic "bybit.clj" 32]
  [ta.data.api_ds.bybit$get_series invoke "bybit.clj" 29]
  [ta.data.import$import_series invokeStatic "import.clj" 48]
  [ta.data.import$import_series invoke "import.clj" 39]
...
awb99 commented 12 months ago

you can chat me on telegram user @flomaysta perhaps faster to get you started that way.