Fix for an occasional crash in the P&L Report #1500
Merged
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.
This can happen when you have moved to a new strategy, and there are instruments for which there have been no trades yet.
P&L data for an instrument in a strategy is generated by first building a series of prices at
merge_fill_prices_with_prices()
fromsystems.accounts.pandl_calculators.pandl_using_fills.py
. A series of P&L values is built from the prices, and then the P&L series are later concatenated into a dataframe atget_df_of_perc_pandl_series_for_strategy_all_instruments()
insysproduction.reporting.data.pandl.py
When there are no trades yet for the new strategy, the empty series of prices has an index of dtype
object
. That causes the P&L dataframe to be corrupted, only containing data for the final instrument. That causes the crash.The fix is to set the index to be of
datetime
type, even for an empty seriesAlso changes the
pandl
moduleprint()
statements tolog.info()