def trace_stats¶
Lifecycle method that will be executed after on_trading_iteration. context is a dictionary containing the result of locals() of on_trading_iteration() at the end of its execution.
locals() returns a dictionary of the variables defined in the scope where it is called.
Use this method to dump stats
import random
class MyStrategy(Strategy):
def on_trading_iteration(self):
google_symbol = "GOOG"
def trace_stats(self, context, snapshot_before):
print(context)
# printing
# { "google_symbol":"GOOG"}
random_number = random.randint(0, 100)
row = {"my_custom_stat": random_number}
return row
Reference¶
- lumibot.strategies.strategy.Strategy.trace_stats(self, context, snapshot_before)¶
Lifecycle method that will be executed after on_trading_iteration. context is a dictionary containing on_trading_iteration locals() in last call. Use this method to dump stats
- Parameters:
context (dict) – Dictionary containing locals() from current call to on_trading_iteration method.
snapshot_before (dict) – Dictionary containing locals() from last call to on_trading_iteration method.
- Returns:
Dictionary containing the stats to be logged.
- Return type:
dict
Example
>>> def trace_stats(self, context, snapshot_before): >>> self.log_message("Trace stats") >>> self.log_message(f"Context: {context}") >>> self.log_message(f"Snapshot before: {snapshot_before}") >>> return { >>> "my_stat": context["my_stat"], >>> "my_other_stat": context["my_other_stat"], >>> "portfolio_value": self.portfolio_value, >>> "cash": self.cash, >>> }