mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 05:50:36 +00:00
Deployed cbc4bb5 to develop in en with MkDocs 1.6.1 and mike 2.1.3
This commit is contained in:
@@ -2514,7 +2514,7 @@ Hopefully you also want to contribute this back upstream.</p>
|
||||
<p>Validations are optional, the parent class exposes a <code>verify_blacklist(pairlist)</code> and <code>_whitelist_for_active_markets(pairlist)</code> to do default filters. Use this if you limit your result to a certain number of pairs - so the end result is not shorter than expected.</p>
|
||||
<p>In <code>VolumePairList</code>, this implements different methods of sorting, does early validation so only the expected number of pairs is returned.</p>
|
||||
<h5 id="sample">sample<a class="headerlink" href="#sample" title="Permanent link">¶</a></h5>
|
||||
<div class="highlight"><pre><span></span><code> <span class="k">def</span> <span class="nf">filter_pairlist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pairlist</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">tickers</span><span class="p">:</span> <span class="n">Dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<div class="highlight"><pre><span></span><code> <span class="k">def</span> <span class="nf">filter_pairlist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pairlist</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">tickers</span><span class="p">:</span> <span class="nb">dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<span class="c1"># Generate dynamic whitelist</span>
|
||||
<span class="n">pairs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_calculate_pairlist</span><span class="p">(</span><span class="n">pairlist</span><span class="p">,</span> <span class="n">tickers</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">pairs</span>
|
||||
|
||||
@@ -2265,7 +2265,7 @@ From top to bottom:</p>
|
||||
<summary>Setting Class Names for Classifiers</summary>
|
||||
<p>When using classifiers, the user must declare the class names (or targets) by overriding the <code>IFreqaiModel.class_names</code> attribute. This is achieved by setting <code>self.freqai.class_names</code> in the FreqAI strategy inside the <code>set_freqai_targets</code> method.</p>
|
||||
<p>For example, if you are using a binary classifier to predict price movements as up or down, you can set the class names as follows:
|
||||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">set_freqai_targets</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="n">Dict</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">DataFrame</span><span class="p">:</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">set_freqai_targets</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">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">DataFrame</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">freqai</span><span class="o">.</span><span class="n">class_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"down"</span><span class="p">,</span> <span class="s2">"up"</span><span class="p">]</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s1">'&s-up_or_down'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">dataframe</span><span class="p">[</span><span class="s2">"close"</span><span class="p">]</span><span class="o">.</span><span class="n">shift</span><span class="p">(</span><span class="o">-</span><span class="mi">100</span><span class="p">)</span> <span class="o">></span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"close"</span><span class="p">],</span> <span class="s1">'up'</span><span class="p">,</span> <span class="s1">'down'</span><span class="p">)</span>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,222 +2,222 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/advanced-backtesting/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/advanced-hyperopt/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/advanced-orderflow/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/advanced-setup/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/backtesting/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/bot-basics/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/bot-usage/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/configuration/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/data-analysis/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/data-download/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/deprecated/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/developer/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/docker_quickstart/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/edge/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/exchanges/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/faq/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freq-ui/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-configuration/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-developers/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-feature-engineering/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-parameter-table/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-reinforcement-learning/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai-running/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/freqai/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/hyperopt/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/installation/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/leverage/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/lookahead-analysis/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/plotting/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/plugins/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/producer-consumer/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/recursive-analysis/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/rest-api/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/sql_cheatsheet/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/stoploss/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy-101/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy-advanced/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy-callbacks/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy-customization/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy_analysis_example/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/strategy_migration/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/telegram-usage/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/trade-object/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/updating/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/utils/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/webhook-config/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/windows_installation/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/cors/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/pairlists/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/pricing/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/protections/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/release_template/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/showcase/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.freqtrade.io/en/stable/includes/strategy-imports/</loc>
|
||||
<lastmod>2024-11-14</lastmod>
|
||||
<lastmod>2024-11-15</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
@@ -1779,9 +1779,9 @@ Freqtrade will attempt to reverse this action on retrieval, so from a strategy p
|
||||
<span class="n">trade</span><span class="o">.</span><span class="n">set_custom_data</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s1">'entry_type'</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="n">trade_entry_type</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">bot_loop_start</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">adjust_entry_price</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">order</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Order</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="k">def</span> <span class="nf">adjust_entry_price</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">order</span><span class="p">:</span> <span class="n">Order</span> <span class="o">|</span> <span class="kc">None</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_order_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="c1"># Limit orders to use and follow SMA200 as price target for the first 10 minutes since entry trigger for BTC/USDT pair.</span>
|
||||
<span class="k">if</span> <span class="p">(</span>
|
||||
<span class="n">pair</span> <span class="o">==</span> <span class="s1">'BTC/USDT'</span>
|
||||
|
||||
@@ -2344,8 +2344,8 @@ This can be used to perform calculations which are pair independent (apply to al
|
||||
|
||||
<span class="k">class</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="nf">custom_stake_amount</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
|
||||
<span class="n">dataframe</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dp</span><span class="o">.</span><span class="n">get_analyzed_dataframe</span><span class="p">(</span><span class="n">pair</span><span class="o">=</span><span class="n">pair</span><span class="p">,</span> <span class="n">timeframe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">)</span>
|
||||
@@ -2448,7 +2448,7 @@ Of course, many more things are possible, and all examples can be combined at wi
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Custom stoploss logic, returning the new distance relative to current_rate (as ratio).</span>
|
||||
<span class="sd"> e.g. returning -0.05 would create a stoploss 5% below current_rate.</span>
|
||||
@@ -2482,7 +2482,7 @@ Of course, many more things are possible, and all examples can be combined at wi
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="c1"># Make sure you have the longest interval first - these conditions are evaluated from top to bottom.</span>
|
||||
<span class="k">if</span> <span class="n">current_time</span> <span class="o">-</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">minutes</span><span class="o">=</span><span class="mi">120</span><span class="p">)</span> <span class="o">></span> <span class="n">trade</span><span class="o">.</span><span class="n">open_date_utc</span><span class="p">:</span>
|
||||
@@ -2504,7 +2504,7 @@ If an additional order fills, set stoploss to -10% below the new <code>open_rate
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">after_fill</span><span class="p">:</span>
|
||||
<span class="c1"># After an additional order, start with a stoploss of 10% below the new open rate</span>
|
||||
@@ -2529,7 +2529,7 @@ In this example, we'll trail the highest price with 10% trailing stoploss for <c
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">pair</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"ETH/BTC"</span><span class="p">,</span> <span class="s2">"XRP/BTC"</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="o">-</span><span class="mf">0.10</span>
|
||||
@@ -2550,7 +2550,7 @@ In this example, we'll trail the highest price with 10% trailing stoploss for <c
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">current_profit</span> <span class="o"><</span> <span class="mf">0.04</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="kc">None</span> <span class="c1"># return None to keep using the initial stoploss</span>
|
||||
@@ -2579,7 +2579,7 @@ In this example, we'll trail the highest price with 10% trailing stoploss for <c
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="c1"># evaluate highest to lowest, so that highest possible stop is used</span>
|
||||
<span class="k">if</span> <span class="n">current_profit</span> <span class="o">></span> <span class="mf">0.40</span><span class="p">:</span>
|
||||
@@ -2606,7 +2606,7 @@ In this example, we'll trail the highest price with 10% trailing stoploss for <c
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="n">dataframe</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dp</span><span class="o">.</span><span class="n">get_analyzed_dataframe</span><span class="p">(</span><span class="n">pair</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">)</span>
|
||||
<span class="n">last_candle</span> <span class="o">=</span> <span class="n">dataframe</span><span class="o">.</span><span class="n">iloc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">squeeze</span><span class="p">()</span>
|
||||
@@ -2641,7 +2641,7 @@ In this example, we'll trail the highest price with 10% trailing stoploss for <c
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
||||
<span class="c1"># once the profit has risen above 10%, keep the stoploss at 7% above the open price</span>
|
||||
<span class="k">if</span> <span class="n">current_profit</span> <span class="o">></span> <span class="mf">0.10</span><span class="p">:</span>
|
||||
@@ -2678,7 +2678,7 @@ For futures, we need to adjust the direction (up or down), as well as adjust for
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="n">dataframe</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dp</span><span class="o">.</span><span class="n">get_analyzed_dataframe</span><span class="p">(</span><span class="n">pair</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">)</span>
|
||||
<span class="n">trade_date</span> <span class="o">=</span> <span class="n">timeframe_to_prev_date</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">,</span> <span class="n">trade</span><span class="o">.</span><span class="n">open_date_utc</span><span class="p">)</span>
|
||||
<span class="n">candle</span> <span class="o">=</span> <span class="n">dataframe</span><span class="o">.</span><span class="n">iloc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">squeeze</span><span class="p">()</span>
|
||||
@@ -2709,8 +2709,8 @@ For futures, we need to adjust the direction (up or down), as well as adjust for
|
||||
|
||||
<span class="c1"># ... populate_* methods</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_entry_price</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">trade</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Trade</span><span class="p">],</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="k">def</span> <span class="nf">custom_entry_price</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">trade</span><span class="p">:</span> <span class="n">Trade</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
|
||||
<span class="n">dataframe</span><span class="p">,</span> <span class="n">last_updated</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dp</span><span class="o">.</span><span class="n">get_analyzed_dataframe</span><span class="p">(</span><span class="n">pair</span><span class="o">=</span><span class="n">pair</span><span class="p">,</span>
|
||||
<span class="n">timeframe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">)</span>
|
||||
@@ -2720,7 +2720,7 @@ For futures, we need to adjust the direction (up or down), as well as adjust for
|
||||
|
||||
<span class="k">def</span> <span class="nf">custom_exit_price</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">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span>
|
||||
<span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">exit_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">exit_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
|
||||
<span class="n">dataframe</span><span class="p">,</span> <span class="n">last_updated</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dp</span><span class="o">.</span><span class="n">get_analyzed_dataframe</span><span class="p">(</span><span class="n">pair</span><span class="o">=</span><span class="n">pair</span><span class="p">,</span>
|
||||
<span class="n">timeframe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timeframe</span><span class="p">)</span>
|
||||
@@ -2836,7 +2836,7 @@ This are the last methods that will be called before an order is placed.</p>
|
||||
<span class="c1"># ... populate_* methods</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">confirm_trade_entry</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">order_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">amount</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">time_in_force</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span>
|
||||
<span class="n">time_in_force</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Called right before placing a entry order.</span>
|
||||
@@ -2977,8 +2977,8 @@ Trades with long duration and 10s or even 100ds of position adjustments are ther
|
||||
|
||||
<span class="c1"># This is called when placing the initial order (opening trade)</span>
|
||||
<span class="k">def</span> <span class="nf">custom_stake_amount</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
|
||||
<span class="c1"># We need to leave most of the funds for possible further DCA orders</span>
|
||||
@@ -2987,11 +2987,11 @@ Trades with long duration and 10s or even 100ds of position adjustments are ther
|
||||
|
||||
<span class="k">def</span> <span class="nf">adjust_trade_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">min_stake</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">min_stake</span><span class="p">:</span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">current_entry_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_exit_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">current_entry_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_exit_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span>
|
||||
<span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]]]:</span>
|
||||
<span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">|</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Custom trade adjustment logic, returning the stake amount that a trade should be</span>
|
||||
<span class="sd"> increased or decreased.</span>
|
||||
@@ -3096,9 +3096,9 @@ Entry Orders that are cancelled via the above methods will not have this callbac
|
||||
|
||||
<span class="c1"># ... populate_* methods</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">adjust_entry_price</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">order</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Order</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="k">def</span> <span class="nf">adjust_entry_price</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trade</span><span class="p">:</span> <span class="n">Trade</span><span class="p">,</span> <span class="n">order</span><span class="p">:</span> <span class="n">Order</span> <span class="o">|</span> <span class="kc">None</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_order_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Entry price re-adjustment logic, returning the user desired limit price.</span>
|
||||
<span class="sd"> This only executes when a order was already placed, still open (unfilled fully or partially)</span>
|
||||
@@ -3147,7 +3147,7 @@ For markets / exchanges that don't support leverage, this method is ignored.</p>
|
||||
|
||||
<span class="k">class</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="nf">leverage</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">proposed_leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">max_leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="n">proposed_leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">max_leverage</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> Customize leverage for each new trade. This method is only called in futures mode.</span>
|
||||
|
||||
@@ -3081,11 +3081,14 @@ and do not have access to data from other informative pairs. However, all inform
|
||||
<p>When hyperopting, use of the hyperoptable parameter <code>.value</code> attribute is not supported. Please use the <code>.range</code> attribute. See <a href="../hyperopt/#optimizing-an-indicator-parameter">optimizing an indicator parameter</a> for more information.</p>
|
||||
<details class="info">
|
||||
<summary>Full documentation</summary>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">informative</span><span class="p">(</span><span class="n">timeframe</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">asset</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span>
|
||||
<span class="n">fmt</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">KwArg</span><span class="p">(</span><span class="nb">str</span><span class="p">)],</span> <span class="nb">str</span><span class="p">]]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="o">*</span><span class="p">,</span>
|
||||
<span class="n">candle_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">CandleType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">ffill</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[[</span><span class="n">PopulateIndicators</span><span class="p">],</span> <span class="n">PopulateIndicators</span><span class="p">]:</span>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">informative</span><span class="p">(</span>
|
||||
<span class="n">timeframe</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||||
<span class="n">asset</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span>
|
||||
<span class="n">fmt</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">Any</span><span class="p">],</span> <span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="o">*</span><span class="p">,</span>
|
||||
<span class="n">candle_type</span><span class="p">:</span> <span class="n">CandleType</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">ffill</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
|
||||
<span class="p">)</span> <span class="o">-></span> <span class="n">Callable</span><span class="p">[[</span><span class="n">PopulateIndicators</span><span class="p">],</span> <span class="n">PopulateIndicators</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""</span>
|
||||
<span class="sd"> A decorator for populate_indicators_Nn(self, dataframe, metadata), allowing these functions to</span>
|
||||
<span class="sd"> define informative indicators.</span>
|
||||
|
||||
@@ -2218,8 +2218,8 @@ It's now also being called for every iteration, independent of current profit an
|
||||
</code></pre></div>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">class</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="nf">custom_stake_amount</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">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="hll"> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="n">proposed_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">min_stake</span><span class="p">:</span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">max_stake</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="hll"> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
</span> <span class="c1"># ... </span>
|
||||
<span class="k">return</span> <span class="n">proposed_stake</span>
|
||||
</code></pre></div>
|
||||
@@ -2234,7 +2234,7 @@ It's now also being called for every iteration, independent of current profit an
|
||||
<p>After: </p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">class</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="nf">confirm_trade_entry</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">order_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">amount</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">time_in_force</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span>
|
||||
<span class="n">time_in_force</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<span class="hll"> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
</span> <span class="k">return</span> <span class="kc">True</span>
|
||||
</code></pre></div>
|
||||
@@ -2263,8 +2263,8 @@ For compatibility, <code>sell_reason</code> will still be provided for a limited
|
||||
</code></pre></div>
|
||||
<p>After:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="k">class</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="nf">custom_entry_price</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">trade</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Trade</span><span class="p">],</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="hll"> <span class="n">entry_tag</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
<span class="k">def</span> <span class="nf">custom_entry_price</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">trade</span><span class="p">:</span> <span class="n">Trade</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">proposed_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="hll"> <span class="n">entry_tag</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n">side</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span><span class="p">:</span>
|
||||
</span> <span class="k">return</span> <span class="n">proposed_rate</span>
|
||||
</code></pre></div>
|
||||
<h3 id="adjust-trade-position-changes">Adjust trade position changes<a class="headerlink" href="#adjust-trade-position-changes" title="Permanent link">¶</a></h3>
|
||||
@@ -2285,7 +2285,7 @@ This should be given the value of <code>trade.is_short</code>.</p>
|
||||
<p>After:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="k">def</span> <span class="nf">custom_stoploss</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">trade</span><span class="p">:</span> <span class="s1">'Trade'</span><span class="p">,</span> <span class="n">current_time</span><span class="p">:</span> <span class="n">datetime</span><span class="p">,</span>
|
||||
<span class="n">current_rate</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">after_fill</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]:</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">float</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="c1"># once the profit has risen above 10%, keep the stoploss at 7% above the open price</span>
|
||||
<span class="hll"> <span class="k">if</span> <span class="n">current_profit</span> <span class="o">></span> <span class="mf">0.10</span><span class="p">:</span>
|
||||
</span> <span class="k">return</span> <span class="n">stoploss_from_open</span><span class="p">(</span><span class="mf">0.07</span><span class="p">,</span> <span class="n">current_profit</span><span class="p">,</span> <span class="n">is_short</span><span class="o">=</span><span class="n">trade</span><span class="o">.</span><span class="n">is_short</span><span class="p">)</span>
|
||||
@@ -2295,13 +2295,13 @@ This should be given the value of <code>trade.is_short</code>.</p>
|
||||
<h3 id="strategyconfiguration-settings">Strategy/Configuration settings<a class="headerlink" href="#strategyconfiguration-settings" title="Permanent link">¶</a></h3>
|
||||
<h4 id="order_time_in_force"><code>order_time_in_force</code><a class="headerlink" href="#order_time_in_force" title="Permanent link">¶</a></h4>
|
||||
<p><code>order_time_in_force</code> attributes changed from <code>"buy"</code> to <code>"entry"</code> and <code>"sell"</code> to <code>"exit"</code>.</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="n">order_time_in_force</span><span class="p">:</span> <span class="n">Dict</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<div class="highlight"><pre><span></span><code> <span class="n">order_time_in_force</span><span class="p">:</span> <span class="nb">dict</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"buy"</span><span class="p">:</span> <span class="s2">"gtc"</span><span class="p">,</span>
|
||||
<span class="s2">"sell"</span><span class="p">:</span> <span class="s2">"gtc"</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre></div>
|
||||
<p>After:</p>
|
||||
<div class="highlight"><pre><span></span><code> <span class="n">order_time_in_force</span><span class="p">:</span> <span class="n">Dict</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<div class="highlight"><pre><span></span><code> <span class="n">order_time_in_force</span><span class="p">:</span> <span class="nb">dict</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="hll"> <span class="s2">"entry"</span><span class="p">:</span> <span class="s2">"GTC"</span><span class="p">,</span>
|
||||
</span><span class="hll"> <span class="s2">"exit"</span><span class="p">:</span> <span class="s2">"GTC"</span><span class="p">,</span>
|
||||
</span> <span class="p">}</span>
|
||||
|
||||
Reference in New Issue
Block a user