Deployed 689da4c to develop in en with MkDocs 1.6.1 and mike 2.1.3

This commit is contained in:
github-actions[bot]
2025-05-03 06:26:24 +00:00
parent ee1e3cd016
commit 88696008aa
6 changed files with 241 additions and 91 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

File diff suppressed because one or more lines are too long

View File

@@ -2,362 +2,362 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.freqtrade.io/en/stable/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/advanced-backtesting/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/advanced-hyperopt/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/advanced-orderflow/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/advanced-setup/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/backtesting/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/bot-basics/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/bot-usage/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/configuration/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/data-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/data-download/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/deprecated/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/developer/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/docker_quickstart/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/edge/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/exchanges/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/faq/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freq-ui/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-configuration/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-developers/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-feature-engineering/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-parameter-table/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-reinforcement-learning/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai-running/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/freqai/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/hyperopt/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/installation/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/leverage/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/lookahead-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/plotting/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/plugins/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/producer-consumer/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/recursive-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/rest-api/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/sql_cheatsheet/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/stoploss/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy-101/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy-advanced/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy-callbacks/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy-customization/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy_analysis_example/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/strategy_migration/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/telegram-usage/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/trade-object/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/updating/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/utils/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/webhook-config/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/windows_installation/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/backtesting-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/backtesting-show/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/backtesting/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/convert-data/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/convert-db/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/convert-trade-data/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/create-userdir/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/download-data/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/edge/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/hyperopt-list/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/hyperopt-show/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/hyperopt/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/install-ui/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-data/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-exchanges/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-freqaimodels/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-hyperoptloss/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-markets/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-pairs/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-strategies/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/list-timeframes/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/lookahead-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/main/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/new-config/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/new-strategy/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/plot-dataframe/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/plot-profit/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/recursive-analysis/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/show-config/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/show-trades/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/strategy-updater/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/test-pairlist/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/trade/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/trades-to-ohlcv/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/commands/webserver/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/cors/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/pairlists/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/pricing/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/protections/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/release_template/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/showcase/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
<url>
<loc>https://www.freqtrade.io/en/stable/includes/strategy-imports/</loc>
<lastmod>2025-05-02</lastmod>
<lastmod>2025-05-03</lastmod>
</url>
</urlset>

Binary file not shown.

View File

@@ -912,6 +912,30 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#plot-annotations-callback" class="md-nav__link">
<span class="md-ellipsis">
Plot annotations callback
</span>
</a>
<nav class="md-nav" aria-label="Plot annotations callback">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#plot-annotations-example" class="md-nav__link">
<span class="md-ellipsis">
Plot annotations example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -2373,6 +2397,30 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#plot-annotations-callback" class="md-nav__link">
<span class="md-ellipsis">
Plot annotations callback
</span>
</a>
<nav class="md-nav" aria-label="Plot annotations callback">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#plot-annotations-example" class="md-nav__link">
<span class="md-ellipsis">
Plot annotations example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -3400,6 +3448,108 @@ It will be called independent of the order type (entry, exit, stoploss or positi
<span class="k">return</span> <span class="kc">None</span>
</code></pre></div>
<h2 id="plot-annotations-callback">Plot annotations callback<a class="headerlink" href="#plot-annotations-callback" title="Permanent link">&para;</a></h2>
<p>The plot annotations callback is called whenever freqUI requests data to display a chart.
This callback has no meaning in the trade cycle context and is only used for charting purposes.</p>
<p>The strategy can then return a list of <code>AnnotationType</code> objects to be displayed on the chart.
Depending on the content returned - the chart can display horizontal areas, vertical areas, or boxes.</p>
<p>The full object looks like this:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;area&quot;</span><span class="p">,</span><span class="w"> </span><span class="c1">// Type of the annotation, currently only &quot;area&quot; is supported</span>
<span class="w"> </span><span class="nt">&quot;start&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;2024-01-01 15:00:00&quot;</span><span class="p">,</span><span class="w"> </span><span class="c1">// Start date of the area</span>
<span class="w"> </span><span class="nt">&quot;end&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;2024-01-01 16:00:00&quot;</span><span class="p">,</span><span class="w"> </span><span class="c1">// End date of the area</span>
<span class="w"> </span><span class="nt">&quot;y_start&quot;</span><span class="p">:</span><span class="w"> </span><span class="mf">94000.2</span><span class="p">,</span><span class="w"> </span><span class="c1">// Price / y axis value</span>
<span class="w"> </span><span class="nt">&quot;y_end&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">98000</span><span class="p">,</span><span class="w"> </span><span class="c1">// Price / y axis value</span>
<span class="w"> </span><span class="nt">&quot;color&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;label&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;some label&quot;</span>
<span class="p">}</span>
</code></pre></div>
<p>The below example will mark the chart with areas for the hours 8 and 15, with a grey color, highlighting the market open and close hours.
This is obviously a very basic example.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Default imports</span>
<span class="k">class</span><span class="w"> </span><span class="nc">AwesomeStrategy</span><span class="p">(</span><span class="n">IStrategy</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">plot_annotations</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span> <span class="n">pair</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">start_date</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">end_date</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">dataframe</span><span class="p">:</span> <span class="n">DataFrame</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="n">AnnotationType</span><span class="p">]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Retrieve area annotations for a chart.</span>
<span class="sd"> Must be returned as array, with type, label, color, start, end, y_start, y_end.</span>
<span class="sd"> All settings except for type are optional - though it usually makes sense to include either</span>
<span class="sd"> &quot;start and end&quot; or &quot;y_start and y_end&quot; for either horizontal or vertical plots</span>
<span class="sd"> (or all 4 for boxes).</span>
<span class="sd"> :param pair: Pair that&#39;s currently analyzed</span>
<span class="sd"> :param start_date: Start date of the chart data being requested</span>
<span class="sd"> :param end_date: End date of the chart data being requested</span>
<span class="sd"> :param dataframe: DataFrame with the analyzed data for the chart</span>
<span class="sd"> :param **kwargs: Ensure to keep this here so updates to this won&#39;t break your strategy.</span>
<span class="sd"> :return: List of AnnotationType objects</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">annotations</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">while</span> <span class="n">start_dt</span> <span class="o">&lt;</span> <span class="n">end_date</span><span class="p">:</span>
<span class="n">start_dt</span> <span class="o">+=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="k">if</span> <span class="n">start_dt</span><span class="o">.</span><span class="n">hour</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">15</span><span class="p">):</span>
<span class="n">annotations</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;area&quot;</span><span class="p">,</span>
<span class="s2">&quot;label&quot;</span><span class="p">:</span> <span class="s2">&quot;Trade open and close hours&quot;</span><span class="p">,</span>
<span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="n">start_dt</span><span class="p">,</span>
<span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="n">start_dt</span> <span class="o">+</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span>
<span class="c1"># Omitting y_start and y_end will result in a vertical area spanning the whole height of the main Chart</span>
<span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="s2">&quot;rgba(133, 133, 133, 0.4)&quot;</span><span class="p">,</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="k">return</span> <span class="n">annotations</span>
</code></pre></div>
<p>Entries will be validated, and won't be passed to the UI if they don't correspond to the expected schema and will log an error if they don't.</p>
<div class="admonition warning">
<p class="admonition-title">Many annotations</p>
<p>Using too many annotations can cause the UI to hang, especially when plotting large amounts of historic data.
Use the annotation feature with care.</p>
</div>
<h3 id="plot-annotations-example">Plot annotations example<a class="headerlink" href="#plot-annotations-example" title="Permanent link">&para;</a></h3>
<p><img alt="FreqUI - plot Annotations" src="../assets/freqUI-chart-annotations-dark.png#only-dark" />
<img alt="FreqUI - plot Annotations" src="../assets/freqUI-chart-annotations-light.png#only-light" /></p>
<details class="info">
<summary>Code used for the plot above</summary>
<p>This is an example code and should be treated as such.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Default imports</span>
<span class="k">class</span><span class="w"> </span><span class="nc">AwesomeStrategy</span><span class="p">(</span><span class="n">IStrategy</span><span class="p">):</span>
<span class="k">def</span><span class="w"> </span><span class="nf">plot_annotations</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span> <span class="n">pair</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">start_date</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">end_date</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">dataframe</span><span class="p">:</span> <span class="n">DataFrame</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="n">AnnotationType</span><span class="p">]:</span>
<span class="n">annotations</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">while</span> <span class="n">start_dt</span> <span class="o">&lt;</span> <span class="n">end_date</span><span class="p">:</span>
<span class="n">start_dt</span> <span class="o">+=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">start_dt</span><span class="o">.</span><span class="n">hour</span> <span class="o">%</span> <span class="mi">4</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">mark_areas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;area&quot;</span><span class="p">,</span>
<span class="s2">&quot;label&quot;</span><span class="p">:</span> <span class="s2">&quot;4h&quot;</span><span class="p">,</span>
<span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="n">start_dt</span><span class="p">,</span>
<span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="n">start_dt</span> <span class="o">+</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span>
<span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="s2">&quot;rgba(133, 133, 133, 0.4)&quot;</span><span class="p">,</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="k">elif</span> <span class="p">(</span><span class="n">start_dt</span><span class="o">.</span><span class="n">hour</span> <span class="o">%</span> <span class="mi">2</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">price</span> <span class="o">=</span> <span class="n">dataframe</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">dataframe</span><span class="p">[</span><span class="s2">&quot;date&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="n">start_dt</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;close&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span>
<span class="n">mark_areas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;area&quot;</span><span class="p">,</span>
<span class="s2">&quot;label&quot;</span><span class="p">:</span> <span class="s2">&quot;2h&quot;</span><span class="p">,</span>
<span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="n">start_dt</span><span class="p">,</span>
<span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="n">start_dt</span> <span class="o">+</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span>
<span class="s2">&quot;y_end&quot;</span><span class="p">:</span> <span class="n">price</span> <span class="o">*</span> <span class="mf">1.01</span><span class="p">,</span>
<span class="s2">&quot;y_start&quot;</span><span class="p">:</span> <span class="n">price</span> <span class="o">*</span> <span class="mf">0.99</span><span class="p">,</span>
<span class="s2">&quot;color&quot;</span><span class="p">:</span> <span class="s2">&quot;rgba(0, 255, 0, 0.4)&quot;</span><span class="p">,</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="k">return</span> <span class="n">annotations</span>
</code></pre></div>
</details>