kkuette / TradzQAI

Trading environnement for RL agents, backtesting and training.
Apache License 2.0
165 stars 47 forks source link

Possible bug in dataloader.py #13

Open oscarberonius opened 5 years ago

oscarberonius commented 5 years ago

Hi,

I ran into a problem when I tried running the new core. I successfully built the PPO agent, but when I executed an eval session I received the following exception.

#PRINT# lines.split(sep) = ['20180701000108', '5467.87', '0.062', '56.86932808248668', '1.828228906843833', '0.12368473729161092', '5468.798899294792', '5457.467818250765', '5444.815160592744']
Traceback (most recent call last):
  File "run.py", line 42, in <module>
    session.loadSession()
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/session/local.py", line 71, in loadSession
    self.initEnv()
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/session/local.py", line 102, in initEnv
    logger=self.logger, saver=self.saver, dataloader=self.dl)
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/local_env.py", line 84, in __init__
    self.dl.loadFile()
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/base/dataloader.py", line 177, in loadFile
    tmp_data, tmp_raw, tmp_time = self.getStockDataVec(self.files[self.files_index])
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/base/dataloader.py", line 150, in getStockDataVec
    df.columns = names
UnboundLocalError: local variable 'names' referenced before assignment

I'm not sure if the code is supposed to be able to handle a row length of 10 or not, but there shouldn't be any problem with the data as I tested it before and made sure the path is correct.

kkuette commented 5 years ago

the dataloader is supposed to handle 3,4,6 and 6 row. here is the getter function, i should add a setting in config/environnement.json to handle this kind of things.

Thanks for your support.

oscarberonius commented 5 years ago

Before you reworked the core I could use the same data to train the model. Did you remove that functionality?

kkuette commented 5 years ago

I haven't removed that feature, i've just commented the last 3 names here. You can uncomment it if you want, but take care about names if you are using complex network !

oscarberonius commented 5 years ago

Okay. Can't try it out because I am getting all sorts of errors when trying to run the different modes. When I run the live session I now get

  File "run.py", line 40, in <module>
    product_id=product_id)
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/session/live.py", line 119, in initApi
    self.initEnv()
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/session/live.py", line 124, in initEnv
    logger=self.logger, saver=self.saver, dataloader=self.dl, api=self.api)
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/live_env.py", line 99, in __init__
    self.dl.loadHistorical()
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/base/dataloader.py", line 232, in loadHistorical
    ticks = self.formatTo15M(pd.DataFrame(ticks, columns=self.columns))
  File "/Users/Oscar/Documents/Cryptotrading/Tradz/TradzQAI/TradzQAI/core/environnement/base/dataloader.py", line 308, in formatTo15M
    for i in tqdm(range(len(data['Time'])), desc = "Formating : "):
NameError: name 'tqdm' is not defined
kkuette commented 5 years ago

I'm working on live session actually, there is alot of fix to do