AssertionError while using TrailingStrategy kernc#316 #319
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have found the culprit. It's
self.__atr[-1]
.so per the formula:
trade.sl = max(trade.sl or -np.inf, self.data.Close[-1] - self.__atr[-1] * self.__n_atr)
22.17 - (62.04*1.5) = -70.89
the code shouldn't be using atr[-1]. It should be using atr[index] where index = len(self.data)-1
Because, when
self.data
ininit()
is different from self.data innext()
.self.data
ininit()
has all the data. while the one innext()
gets accumulated data over iterations. i.e. 5 iterations -> 5 data. n iteration -> n data. so doingself.data.Close[-1]
innext()
gets you the last record. but the same is not true forself.__atr
, becauseself.__atr
always has full computed set frominit()
, so you need to use absolute index while accessing atr value fromself.__atr
.