peerchemist/finta

PSAR has a side effect

AGG2017 opened this issue · 2 comments

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()

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

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.