export_backtest_report#

export_backtest_report(state, universe, report_template=None, output_notebook=None, output_html=None, show_code=False, custom_css='\n/* trade-executor backtest report generator custom CSS */\nbody {\n    padding: 0;   \n}\n\n.prompt {\n    display: none !important;\n}\n\n#notebook {\n    padding-top: 0 !important;\n}\n\n#notebook-container {\n    padding: 0 !important;\n    box-shadow: none;\n    width: auto;\n}\n\n.code_cell {\n    padding: 0;\n}\n', custom_js='\nconsole.log("Dynamic iframe resizer loaded");\n\nfunction getDocHeight(doc) {\n    // stackoverflow.com/questions/1145850/\n    var body = doc.body, html = doc.documentElement;\n    var height = Math.max( body.scrollHeight, body.offsetHeight, \n        html.clientHeight, html.scrollHeight, html.offsetHeight );\n    return height;\n}\n\nwindow.addEventListener("load", function(){\n    if(window.self === window.top) return; // if w.self === w.top, we are not in an iframe \n    send_height_to_parent_function = function(){\n        //var height = document.getElementsByTagName("html")[0].clientHeight;\n        //var height= document.getElementById(\'wrapper\').offsetHeight;\n        const height = getDocHeight(document);\n        console.log("Sending height as " + height + "px");\n        parent.postMessage({"iframeContentHeight" : height }, "*");\n    }\n    // send message to parent about height updates\n    send_height_to_parent_function(); //whenever the page is loaded\n    window.addEventListener("resize", send_height_to_parent_function); // whenever the page is resized\n    var observer = new MutationObserver(send_height_to_parent_function);           // whenever DOM changes PT1\n    var config = { attributes: true, childList: true, characterData: true, subtree:true}; // PT2\n    observer.observe(window.document, config);                                            // PT3 \n});\n')[source]#

Creates the backtest visual report.

  • Opens a master template notebook

  • Injects the backtested state to this notebook by modifying the first cell of the notebook and writes a temporary state file path there

  • Runs the notebook

  • Writes the output notebook if specified

  • Writes the output HTML file if specified

Parameters:
  • show_code – For the HTML report, should we hide the code cells.

  • custom_css (str | None) – CSS code to inject to the resulting HTML file to override styles.

  • custom_js (str | None) – JS code to inject to the resulting HTML file to support iframe embedding.

  • state (State) –

  • universe (TradingStrategyUniverse) –

  • report_template (Optional[Path]) –

  • output_notebook (Optional[Path]) –

  • output_html (Optional[Path]) –

Returns:

Returns the executed notebook contents

Raises:

BacktestReportRunFailed – In the case the notebook had a run-time exception and Python code could not complete.

Return type:

NotebookNode