peerchemist / finta

Common financial technical indicators implemented in Pandas.
GNU Lesser General Public License v3.0
2.13k stars 688 forks source link

PSAR has a side effect #123

Open AGG2017 opened 3 years ago

AGG2017 commented 3 years ago

After using PSAR I see that the original data for "close" in ohlc has changed and calling any other function after PSAR will produce wrong results because "close" price is already different.

It is very easy to see that getting the close price by psar=close[0:len(close)] will not create a copy but will be optimized to create a reference to close and any change of psar later will affect the original close values.

One easy fix is to be replaced by psar = close.copy()

peerchemist commented 3 years ago

I dislike PSAR code, I am thinking about removing it until it's rewritten into something more pythonic/pandas.

kieran-mackle commented 2 years ago

To add to this, psar.psarbear and psar.psarbull are identical. I believe this might be another case of the issue above, where the same variable is being implicitly referenced, leading to unexpected results.