Deployed 7e7e475 to develop in en with MkDocs 1.6.1 and mike 2.1.4

This commit is contained in:
github-actions[bot]
2026-03-31 05:20:03 +00:00
parent df495f4472
commit 970aa93176
44 changed files with 13314 additions and 6959 deletions
+29 -30
View File
@@ -2224,8 +2224,8 @@
<p>The <code>populate_indicators</code> function adds columns to the dataframe that represent the technical analysis indicator values.</p>
<p>Examples of common indicators include Relative Strength Index, Bollinger Bands, Money Flow Index, Moving Average, and Average True Range.</p>
<p>Columns are added to the dataframe by calling technical analysis functions, e.g. ta-lib's RSI function <code>ta.RSI()</code>, and assigning them to a column name, e.g. <code>rsi</code></p>
<p><code>python
dataframe['rsi'] = ta.RSI(dataframe)</code></p>
<div class="highlight"><pre><span></span><code><span class="n">dataframe</span><span class="p">[</span><span class="s1">&#39;rsi&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ta</span><span class="o">.</span><span class="n">RSI</span><span class="p">(</span><span class="n">dataframe</span><span class="p">)</span>
</code></pre></div>
<details class="hint">
<summary>Technical Analysis libraries</summary>
<p>Different libraries work in different ways to generate indicator values. Please check the documentation of each library to understand
@@ -2247,43 +2247,42 @@ how to integrate it into your strategy. You can also check the <a href="https://
</details>
<h2 id="a-simple-strategy">A simple strategy<a class="headerlink" href="#a-simple-strategy" title="Permanent link">&para;</a></h2>
<p>Here is a minimal example of a Freqtrade strategy:</p>
<p>```python
from freqtrade.strategy import IStrategy
from pandas import DataFrame
import talib.abstract as ta</p>
<p>class MyStrategy(IStrategy):</p>
<div class="codehilite"><pre><span></span><code>timeframe = &#39;15m&#39;
<div class="highlight"><pre><span></span><code><span class="kn">from</span><span class="w"> </span><span class="nn">freqtrade.strategy</span><span class="w"> </span><span class="kn">import</span> <span class="n">IStrategy</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="kn">import</span> <span class="n">DataFrame</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">talib.abstract</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">ta</span>
# set the initial stoploss to -10%
stoploss = -0.10
<span class="k">class</span><span class="w"> </span><span class="nc">MyStrategy</span><span class="p">(</span><span class="n">IStrategy</span><span class="p">):</span>
# exit profitable positions at any time when the profit is greater than 1%
minimal_roi = {&quot;0&quot;: 0.01}
<span class="n">timeframe</span> <span class="o">=</span> <span class="s1">&#39;15m&#39;</span>
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
# generate values for technical analysis indicators
dataframe[&#39;rsi&#39;] = ta.RSI(dataframe, timeperiod=14)
<span class="c1"># set the initial stoploss to -10%</span>
<span class="n">stoploss</span> <span class="o">=</span> <span class="o">-</span><span class="mf">0.10</span>
return dataframe
<span class="c1"># exit profitable positions at any time when the profit is greater than 1%</span>
<span class="n">minimal_roi</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;0&quot;</span><span class="p">:</span> <span class="mf">0.01</span><span class="p">}</span>
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
# generate entry signals based on indicator values
dataframe.loc[
(dataframe[&#39;rsi&#39;] &lt; 30),
&#39;enter_long&#39;] = 1
<span class="k">def</span><span class="w"> </span><span class="nf">populate_indicators</span><span class="p">(</span><span class="bp">self</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="n">metadata</span><span class="p">:</span> <span class="nb">dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataFrame</span><span class="p">:</span>
<span class="c1"># generate values for technical analysis indicators</span>
<span class="n">dataframe</span><span class="p">[</span><span class="s1">&#39;rsi&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ta</span><span class="o">.</span><span class="n">RSI</span><span class="p">(</span><span class="n">dataframe</span><span class="p">,</span> <span class="n">timeperiod</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
return dataframe
<span class="k">return</span> <span class="n">dataframe</span>
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -&gt; DataFrame:
# generate exit signals based on indicator values
dataframe.loc[
(dataframe[&#39;rsi&#39;] &gt; 70),
&#39;exit_long&#39;] = 1
<span class="k">def</span><span class="w"> </span><span class="nf">populate_entry_trend</span><span class="p">(</span><span class="bp">self</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="n">metadata</span><span class="p">:</span> <span class="nb">dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataFrame</span><span class="p">:</span>
<span class="c1"># generate entry signals based on indicator values</span>
<span class="n">dataframe</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span>
<span class="p">(</span><span class="n">dataframe</span><span class="p">[</span><span class="s1">&#39;rsi&#39;</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">30</span><span class="p">),</span>
<span class="s1">&#39;enter_long&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
return dataframe
<span class="k">return</span> <span class="n">dataframe</span>
<span class="k">def</span><span class="w"> </span><span class="nf">populate_exit_trend</span><span class="p">(</span><span class="bp">self</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="n">metadata</span><span class="p">:</span> <span class="nb">dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataFrame</span><span class="p">:</span>
<span class="c1"># generate exit signals based on indicator values</span>
<span class="n">dataframe</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span>
<span class="p">(</span><span class="n">dataframe</span><span class="p">[</span><span class="s1">&#39;rsi&#39;</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">70</span><span class="p">),</span>
<span class="s1">&#39;exit_long&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">dataframe</span>
</code></pre></div>
<p>```</p>
<h2 id="making-trades">Making trades<a class="headerlink" href="#making-trades" title="Permanent link">&para;</a></h2>
<p>When a signal is found (a <code>1</code> in an entry or exit column), Freqtrade will attempt to make an order, i.e. a <code>trade</code> or <code>position</code>.</p>
<p>Each new trade position takes up a <code>slot</code>. Slots represent the maximum number of concurrent new trades that can be opened.</p>