AI4Finance-Foundation / FinRL-Trading

For trading. Please star.
https://ai4finance.org
MIT License
2.03k stars 735 forks source link

use "np.linalg.pinv()" instead of "np.linlang.inv()" #31

Open s-diaco opened 3 years ago

s-diaco commented 3 years ago

Replace the attached csv data (It's data from a foreign stock market) with "dow_30_2009_2020.csv" and remove "done_data.csv". If you run "run_DRL.py" it will throw an exception.

In calculating turbulence it is better to use "np.linlang.pinv()".

If the determinant of the matrix is zero it will not have an inverse and "inv()" function will not work. This usually happens if your matrix is singular. But "pinv()" will. This is because pinv returns the inverse of your matrix when it is available and the pseudo inverse when it isn't.

For example this code uses pinv() instead of inv() and it doesn't return any exception with my csv data:

combined_tse.csv.zip