| <!DOCTYPE html> |
| <html lang="en" data-bs-theme="light"> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <meta name="author" content="Zipeng Wu"> |
| <link rel="canonical" href="https://systems-mechanobiology.github.io/DeTime/tutorials/quant-trading/backtesting-frameworks/"> |
| <link rel="shortcut icon" href="../../../img/favicon.ico"> |
| <title>Backtesting Frameworks - DeTime</title> |
| <link href="../../../css/bootstrap.min.css" rel="stylesheet"> |
| <link href="../../../css/fontawesome.min.css" rel="stylesheet"> |
| <link href="../../../css/brands.min.css" rel="stylesheet"> |
| <link href="../../../css/solid.min.css" rel="stylesheet"> |
| <link href="../../../css/v4-font-face.min.css" rel="stylesheet"> |
| <link href="../../../css/base.css" rel="stylesheet"> |
| <link id="hljs-light" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" > |
| <link id="hljs-dark" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github-dark.min.css" disabled> |
| <link href="../../../stylesheets/brand.css" rel="stylesheet"> |
| <link href="../../../stylesheets/extra.css" rel="stylesheet"> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script> |
| <script>hljs.highlightAll();</script> |
| |
| <meta name="robots" content="index, follow, max-image-preview:large"> |
| <meta name="keywords" content="DeTime, detime, de-time, time series decomposition, Python time series, SSA, MSSA, VMD, STL, decomposition software"> |
| <meta property="og:site_name" content="DeTime"> |
| <meta property="og:type" content="website"> |
| <meta property="og:title" content="DeTime - workflow-oriented time-series decomposition for Python"> |
| <meta property="og:description" content="DeTime is a Python and CLI toolkit for reproducible time-series decomposition across SSA, MSSA, VMD, STL, EMD, wavelet, and native C++ backed methods."> |
| <meta property="og:url" content="https://systems-mechanobiology.github.io/DeTime/"> |
| <meta property="og:image" content="https://systems-mechanobiology.github.io/DeTime/assets/brand/detime-title-card.svg"> |
| <meta name="twitter:card" content="summary_large_image"> |
| <meta name="twitter:title" content="DeTime - time-series decomposition for Python"> |
| <meta name="twitter:description" content="Workflow-oriented Python and CLI software for reproducible trend, oscillation, residual, and component decomposition."> |
| <script type="application/ld+json"> |
| { |
| "@context": "https://schema.org", |
| "@graph": [ |
| { |
| "@type": "WebSite", |
| "@id": "https://systems-mechanobiology.github.io/DeTime/#website", |
| "name": "DeTime", |
| "alternateName": ["detime", "de-time", "De-Time"], |
| "url": "https://systems-mechanobiology.github.io/DeTime/", |
| "description": "DeTime documentation for workflow-oriented time-series decomposition software.", |
| "inLanguage": "en" |
| }, |
| { |
| "@type": "SoftwareSourceCode", |
| "@id": "https://systems-mechanobiology.github.io/DeTime/#software", |
| "name": "DeTime", |
| "alternateName": ["detime", "de-time", "De-Time"], |
| "description": "Python and CLI toolkit for reproducible time-series decomposition with native C++ backed SSA, MSSA, VMD, STD, STDR, MA baseline, and Gabor clustering paths.", |
| "codeRepository": "https://github.com/systems-mechanobiology/DeTime", |
| "url": "https://systems-mechanobiology.github.io/DeTime/", |
| "programmingLanguage": ["Python", "C++"], |
| "applicationCategory": "Scientific software", |
| "keywords": "DeTime, time-series decomposition, Python, SSA, MSSA, VMD, STL, EMD, wavelet, native C++", |
| "author": { |
| "@type": "Person", |
| "name": "Zipeng Wu" |
| } |
| } |
| ] |
| } |
| </script> |
| <link rel="stylesheet" href="../../../stylesheets/extra.css?v=7"> |
|
|
| </head> |
|
|
| <body> |
| <div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary"> |
| <div class="container"> |
| <a class="navbar-brand" href="../../..">DeTime</a> |
| |
| <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation"> |
| <span class="navbar-toggler-icon"></span> |
| </button> |
|
|
| |
| <div id="navbar-collapse" class="navbar-collapse collapse"> |
| |
| <ul class="nav navbar-nav"> |
| <li class="nav-item"> |
| <a href="../../.." class="nav-link">Home</a> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Start</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../install/" class="dropdown-item">Install</a> |
| </li> |
| |
| <li> |
| <a href="../../../quickstart/" class="dropdown-item">Quickstart</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Methods</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../methods/" class="dropdown-item">Methods & Chooser</a> |
| </li> |
| |
| <li> |
| <a href="../../../method-matrix/" class="dropdown-item">Method Matrix</a> |
| </li> |
| |
| <li> |
| <a href="../../../method-references/" class="dropdown-item">Method References</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle active" aria-current="page" role="button" data-bs-toggle="dropdown" aria-expanded="false">Workflows</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../notebook-gallery/" class="dropdown-item">Notebook Gallery</a> |
| </li> |
| |
| <li> |
| <a href="../../univariate/" class="dropdown-item">Univariate Tutorial</a> |
| </li> |
| |
| <li> |
| <a href="../../multivariate/" class="dropdown-item">Multivariate Tutorial</a> |
| </li> |
| |
| <li> |
| <a href="../../cli-and-profiling/" class="dropdown-item">CLI Guide</a> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Quant Trading Tutorial</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../" class="dropdown-item">Overview</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/" class="dropdown-item">Tutorial Notebooks</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/00_decomposition_first_quant_trading_roadmap/" class="dropdown-item">Tutorial 00 Roadmap</a> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Strategy Lab</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../two-strategy-families/" class="dropdown-item">Two Strategy Families</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/01_detime_trend_following_strategy_lab/" class="dropdown-item">01 Trend-Following Lab</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/02_detime_oscillation_reversion_strategy_lab/" class="dropdown-item">02 Oscillation-Reversion Lab</a> |
| </li> |
| </ul> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Strategy Expansion</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../method-specific-strategy-expansion/" class="dropdown-item">Method-Specific Strategy Expansion</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/03_detime_method_specific_strategy_variants/" class="dropdown-item">03 Method-Specific Variants</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/04_detime_component_pair_trading_cointegration/" class="dropdown-item">04 Component Pair Trading</a> |
| </li> |
| </ul> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Tutorial Sequence</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../notebooks/01_market_data_and_decomposition_feature_factory/" class="dropdown-item">01 Real Market Data and Feature Factory</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/02_decomposition_aware_moving_average_macd/" class="dropdown-item">02 Decomposition-aware MA and MACD</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/03_residual_mean_reversion_rsi_bollinger/" class="dropdown-item">03 Residual Mean Reversion</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/04_turtle_donchian_breakout_volume_confirmation/" class="dropdown-item">04 Donchian Breakout</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/05_pairs_spread_decomposition_stat_arb/" class="dropdown-item">05 Pair-Spread Stat-Arb</a> |
| </li> |
| |
| <li> |
| <a href="../notebooks/06_cross_sectional_rotation_portfolio/" class="dropdown-item">06 Cross-Sectional Rotation</a> |
| </li> |
| </ul> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Native SSA Replay</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../notebooks/07_native_ssa_high_return_low_drawdown_tutorial/" class="dropdown-item">07 Native SSA High-Return / Low-Drawdown</a> |
| </li> |
| </ul> |
| </li> |
| |
| <li> |
| <a href="../data/" class="dropdown-item">Real Data and Universes</a> |
| </li> |
| |
| <li> |
| <a href="../strategy-map/" class="dropdown-item">Strategy Map</a> |
| </li> |
| |
| <li> |
| <a href="./" class="dropdown-item active" aria-current="page">Backtesting Frameworks</a> |
| </li> |
| |
| <li> |
| <a href="../walkforward/" class="dropdown-item">Walk-Forward Validation</a> |
| </li> |
| </ul> |
| </li> |
| |
| <li class="dropdown-submenu"> |
| <a href="#" class="dropdown-item">Hot Trend Lab</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../hot-trend-lab/" class="dropdown-item">Overview</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/" class="dropdown-item">Rendered Notebooks</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/00_hot_trend_lab_overview/" class="dropdown-item">00 Column Overview</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/01_arxiv_category_pulse/" class="dropdown-item">01 arXiv Category Pulse</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/02_arxiv_agent_research_pulse/" class="dropdown-item">02 arXiv Agent Research Pulse</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/03_huggingface_open_model_pulse/" class="dropdown-item">03 Hugging Face Open-Model Pulse</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/04_github_ai_agent_star_velocity/" class="dropdown-item">04 GitHub Star Velocity</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/05_wikipedia_attention_hype_decay/" class="dropdown-item">05 Wikipedia Attention Decay</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/06_crypto_stablecoin_liquidity_pulse/" class="dropdown-item">06 Crypto Stablecoin Liquidity</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/notebooks/07_ai_infrastructure_market_pulse/" class="dropdown-item">07 AI Infrastructure Market Pulse</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/data-sources/" class="dropdown-item">Real Data Sources</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/arxiv-research-pulse/" class="dropdown-item">arXiv Research Pulse</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/open-model-and-developer-attention/" class="dropdown-item">Open Models and Developer Attention</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/wiki-market-crypto-attention/" class="dropdown-item">Public Attention, Markets, and Crypto</a> |
| </li> |
| |
| <li> |
| <a href="../../hot-trend-lab/release-calendar/" class="dropdown-item">Release Calendar</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Gallery</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../gallery/ssa/" class="dropdown-item">SSA</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/std/" class="dropdown-item">STD</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/stdr/" class="dropdown-item">STDR</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/mssa/" class="dropdown-item">MSSA</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/stl/" class="dropdown-item">STL</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/mstl/" class="dropdown-item">MSTL</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/robust-stl/" class="dropdown-item">ROBUST_STL</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/emd/" class="dropdown-item">EMD</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/ceemdan/" class="dropdown-item">CEEMDAN</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/vmd/" class="dropdown-item">VMD</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/wavelet/" class="dropdown-item">WAVELET</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/ma-baseline/" class="dropdown-item">MA_BASELINE</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/mvmd/" class="dropdown-item">MVMD</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/memd/" class="dropdown-item">MEMD</a> |
| </li> |
| |
| <li> |
| <a href="../../../gallery/gabor-cluster/" class="dropdown-item">GABOR_CLUSTER</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Reference</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../api/" class="dropdown-item">API Overview</a> |
| </li> |
| |
| <li> |
| <a href="../../../config-reference/" class="dropdown-item">Config Reference</a> |
| </li> |
| |
| <li> |
| <a href="../../../machine-api/" class="dropdown-item">Machine API</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Project</a> |
| <ul class="dropdown-menu"> |
| |
| <li> |
| <a href="../../../comparisons/" class="dropdown-item">Compare Alternatives</a> |
| </li> |
| |
| <li> |
| <a href="../../../reproducibility/" class="dropdown-item">Reproducibility</a> |
| </li> |
| |
| <li> |
| <a href="../../../architecture/" class="dropdown-item">Architecture</a> |
| </li> |
| |
| <li> |
| <a href="../../../migration/" class="dropdown-item">Migration from `tsdecomp`</a> |
| </li> |
| |
| <li> |
| <a href="../../../contributing/" class="dropdown-item">Contributing</a> |
| </li> |
| |
| <li> |
| <a href="../../../citation/" class="dropdown-item">Citation / Release Notes</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
|
|
| <ul class="nav navbar-nav ms-md-auto"> |
| <li class="nav-item"> |
| <a href="#" class="nav-link" data-bs-toggle="modal" data-bs-target="#mkdocs_search_modal"> |
| <i class="fa fa-search"></i> Search |
| </a> |
| </li> |
| <li class="nav-item"> |
| <a rel="prev" href="../strategy-map/" class="nav-link"> |
| <i class="fa fa-arrow-left"></i> Previous |
| </a> |
| </li> |
| <li class="nav-item"> |
| <a rel="next" href="../walkforward/" class="nav-link"> |
| Next <i class="fa fa-arrow-right"></i> |
| </a> |
| </li> |
| <li class="nav-item"> |
| <a href="https://github.com/systems-mechanobiology/DeTime" class="nav-link">systems-mechanobiology/DeTime</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
|
|
| <div class="container"> |
| <div class="row"> |
| <div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary"> |
| <div class="navbar-header"> |
| <button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents"> |
| <span class="fa fa-angle-down"></span> |
| </button> |
| </div> |
|
|
| |
| <div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary"> |
| <ul class="nav flex-column"> |
| |
| <li class="nav-item" data-bs-level="1"><a href="#backtesting-frameworks-for-the-quant-trading-column" class="nav-link">Backtesting Frameworks for the Quant Trading Column</a> |
| <ul class="nav flex-column"> |
| <li class="nav-item" data-bs-level="2"><a href="#vectorbt" class="nav-link">vectorbt</a> |
| <ul class="nav flex-column"> |
| </ul> |
| </li> |
| <li class="nav-item" data-bs-level="2"><a href="#backtestingpy" class="nav-link">backtesting.py</a> |
| <ul class="nav flex-column"> |
| </ul> |
| </li> |
| <li class="nav-item" data-bs-level="2"><a href="#bt" class="nav-link">bt</a> |
| <ul class="nav flex-column"> |
| </ul> |
| </li> |
| <li class="nav-item" data-bs-level="2"><a href="#backtrader-and-zipline-reloaded" class="nav-link">Backtrader and Zipline-Reloaded</a> |
| <ul class="nav flex-column"> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div></div> |
| <div class="col-md-9" role="main"> |
|
|
| <h1 id="backtesting-frameworks-for-the-quant-trading-column">Backtesting Frameworks for the Quant Trading Column</h1> |
| <p>The notebooks start with a transparent pandas backtester so readers can inspect |
| signal alignment, position shifting, transaction costs, turnover, and equity |
| construction. The same signals can then be routed to established Python |
| backtesting and reporting packages.</p> |
| <table> |
| <thead> |
| <tr> |
| <th>Framework</th> |
| <th>Column use</th> |
| <th>Adapter</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>pandas vectorized baseline</td> |
| <td>transparent close-to-close research checks</td> |
| <td><code>examples/quant_trading/backtest.py</code></td> |
| </tr> |
| <tr> |
| <td>vectorbt</td> |
| <td>multi-asset signal matrices and parameter grids</td> |
| <td><code>run_vectorbt_from_signals</code></td> |
| </tr> |
| <tr> |
| <td>backtesting.py</td> |
| <td>single-asset strategy class tutorials</td> |
| <td><code>run_backtestingpy_signal</code></td> |
| </tr> |
| <tr> |
| <td>bt</td> |
| <td>target-weight ETF and portfolio rotation</td> |
| <td><code>run_bt_target_weights</code></td> |
| </tr> |
| <tr> |
| <td>Backtrader</td> |
| <td>event-driven data feeds and order logic</td> |
| <td>template writer</td> |
| </tr> |
| <tr> |
| <td>Zipline-Reloaded</td> |
| <td>calendar-safe factor research skeleton</td> |
| <td>template writer</td> |
| </tr> |
| <tr> |
| <td>QuantStats</td> |
| <td>HTML reports and performance tear sheets</td> |
| <td><code>quantstats_html_report</code></td> |
| </tr> |
| </tbody> |
| </table> |
| <h2 id="vectorbt">vectorbt</h2> |
| <pre><code class="language-python">from examples.quant_trading.frameworks import run_vectorbt_from_signals |
|
|
| portfolio = run_vectorbt_from_signals(prices, entries, exits) |
| print(portfolio.total_return()) |
| </code></pre> |
| <h2 id="backtestingpy">backtesting.py</h2> |
| <pre><code class="language-python">from examples.quant_trading.data import fetch_yahoo_ohlcv |
| from examples.quant_trading.frameworks import run_backtestingpy_signal |
|
|
| ohlcv = fetch_yahoo_ohlcv("SPY", start="2018-01-01") |
| stats = run_backtestingpy_signal(ohlcv, signal) |
| </code></pre> |
| <h2 id="bt">bt</h2> |
| <pre><code class="language-python">from examples.quant_trading.frameworks import run_bt_target_weights |
|
|
| result = run_bt_target_weights(prices, target_weights) |
| </code></pre> |
| <h2 id="backtrader-and-zipline-reloaded">Backtrader and Zipline-Reloaded</h2> |
| <p>The column provides template files for these framework-specific workflows:</p> |
| <pre><code class="language-python">from examples.quant_trading.frameworks import write_framework_templates |
|
|
| write_framework_templates("examples/quant_trading/templates") |
| </code></pre> |
| <p>These event-driven frameworks require careful calendar, bundle, and execution |
| setup. Keep DeTime feature generation outside the event loop unless you are |
| explicitly modeling the cost and latency of online recomputation.</p> |
| <p>The current rendered notebooks exercise the transparent pandas research |
| backtester first, then keep these adapters available as extension points for |
| framework-specific studies.</p></div> |
| </div> |
| </div> |
|
|
| <footer class="col-md-12"> |
| <hr> |
| <p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p> |
| </footer> |
| <script src="../../../js/bootstrap.bundle.min.js"></script> |
| <script> |
| var base_url = "../../..", |
| shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83}; |
| </script> |
| <script src="../../../js/base.js"></script> |
| <script src="../../../search/main.js"></script> |
|
|
| <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true"> |
| <div class="modal-dialog modal-lg"> |
| <div class="modal-content"> |
| <div class="modal-header"> |
| <h4 class="modal-title" id="searchModalLabel">Search</h4> |
| <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
| </div> |
| <div class="modal-body"> |
| <p>From here you can search these documents. Enter your search terms below.</p> |
| <form> |
| <div class="form-group"> |
| <input type="search" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here"> |
| </div> |
| </form> |
| <div id="mkdocs-search-results" data-no-results-text="No results found"></div> |
| </div> |
| <div class="modal-footer"> |
| </div> |
| </div> |
| </div> |
| </div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true"> |
| <div class="modal-dialog"> |
| <div class="modal-content"> |
| <div class="modal-header"> |
| <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4> |
| <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
| </div> |
| <div class="modal-body"> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width: 20%;">Keys</th> |
| <th>Action</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="help shortcut"><kbd>?</kbd></td> |
| <td>Open this help</td> |
| </tr> |
| <tr> |
| <td class="next shortcut"><kbd>n</kbd></td> |
| <td>Next page</td> |
| </tr> |
| <tr> |
| <td class="prev shortcut"><kbd>p</kbd></td> |
| <td>Previous page</td> |
| </tr> |
| <tr> |
| <td class="search shortcut"><kbd>s</kbd></td> |
| <td>Search</td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="modal-footer"> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| </body> |
| </html> |
|
|