Deployed 5dccabe to develop in en with MkDocs 1.6.1 and mike 2.1.4
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
<link rel="icon" href="../images/logo.png">
|
||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.5">
|
||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
|
||||
|
||||
|
||||
|
||||
@@ -2105,11 +2105,11 @@ It's also currently not been tested with freqAI - and combining these two featur
|
||||
<h2 id="getting-started">Getting Started<a class="headerlink" href="#getting-started" title="Permanent link">¶</a></h2>
|
||||
<h3 id="enable-public-trades">Enable Public Trades<a class="headerlink" href="#enable-public-trades" title="Permanent link">¶</a></h3>
|
||||
<p>In your <code>config.json</code> file, set the <code>use_public_trades</code> option to true under the <code>exchange</code> section.</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="err">...</span>
|
||||
<span class="w"> </span><span class="nt">"use_public_trades"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
</code></pre></div>
|
||||
<p><code>json
|
||||
"exchange": {
|
||||
...
|
||||
"use_public_trades": true,
|
||||
}</code></p>
|
||||
<h3 id="configure-orderflow-processing">Configure Orderflow Processing<a class="headerlink" href="#configure-orderflow-processing" title="Permanent link">¶</a></h3>
|
||||
<p>Define your desired settings for orderflow processing within the orderflow section of config.json. Here, you can adjust factors like:</p>
|
||||
<ul>
|
||||
@@ -2120,64 +2120,65 @@ It's also currently not been tested with freqAI - and combining these two featur
|
||||
<li><code>imbalance_volume</code>: Filters out imbalances with volume below this threshold.</li>
|
||||
<li><code>imbalance_ratio</code>: Filters out imbalances with a ratio (difference between ask and bid volume) lower than this value.</li>
|
||||
</ul>
|
||||
<div class="highlight"><pre><span></span><code><span class="nt">"orderflow"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="nt">"cache_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">1000</span><span class="p">,</span><span class="w"> </span>
|
||||
<span class="w"> </span><span class="nt">"max_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">1500</span><span class="p">,</span><span class="w"> </span>
|
||||
<span class="w"> </span><span class="nt">"scale"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.5</span><span class="p">,</span><span class="w"> </span>
|
||||
<span class="w"> </span><span class="nt">"stacked_imbalance_range"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="c1">// needs at least this amount of imbalance next to each other</span>
|
||||
<span class="w"> </span><span class="nt">"imbalance_volume"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="c1">// filters out below</span>
|
||||
<span class="w"> </span><span class="nt">"imbalance_ratio"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="c1">// filters out ratio lower than</span>
|
||||
<span class="w"> </span><span class="p">},</span>
|
||||
</code></pre></div>
|
||||
<p><code>json
|
||||
"orderflow": {
|
||||
"cache_size": 1000,
|
||||
"max_candles": 1500,
|
||||
"scale": 0.5,
|
||||
"stacked_imbalance_range": 3, // needs at least this amount of imbalance next to each other
|
||||
"imbalance_volume": 1, // filters out below
|
||||
"imbalance_ratio": 3 // filters out ratio lower than
|
||||
},</code></p>
|
||||
<h2 id="downloading-trade-data-for-backtesting">Downloading Trade Data for Backtesting<a class="headerlink" href="#downloading-trade-data-for-backtesting" title="Permanent link">¶</a></h2>
|
||||
<p>To download historical trade data for backtesting, use the --dl-trades flag with the freqtrade download-data command.</p>
|
||||
<div class="highlight"><pre><span></span><code>freqtrade<span class="w"> </span>download-data<span class="w"> </span>-p<span class="w"> </span>BTC/USDT:USDT<span class="w"> </span>--timerange<span class="w"> </span><span class="m">20230101</span>-<span class="w"> </span>--trading-mode<span class="w"> </span>futures<span class="w"> </span>--timeframes<span class="w"> </span>5m<span class="w"> </span>--dl-trades
|
||||
</code></pre></div>
|
||||
<p><code>bash
|
||||
freqtrade download-data -p BTC/USDT:USDT --timerange 20230101- --trading-mode futures --timeframes 5m --dl-trades</code></p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Data availability</p>
|
||||
<p>Not all exchanges provide public trade data. For supported exchanges, freqtrade will warn you if public trade data is not available if you start downloading data with the <code>--dl-trades</code> flag.</p>
|
||||
</div>
|
||||
<h2 id="accessing-orderflow-data">Accessing Orderflow Data<a class="headerlink" href="#accessing-orderflow-data" title="Permanent link">¶</a></h2>
|
||||
<p>Once activated, several new columns become available in your dataframe:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">dataframe</span><span class="p">[</span><span class="s2">"trades"</span><span class="p">]</span> <span class="c1"># Contains information about each individual trade.</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"orderflow"</span><span class="p">]</span> <span class="c1"># Represents a footprint chart dict (see below)</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"imbalances"</span><span class="p">]</span> <span class="c1"># Contains information about imbalances in the order flow.</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"bid"</span><span class="p">]</span> <span class="c1"># Total bid volume </span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"ask"</span><span class="p">]</span> <span class="c1"># Total ask volume</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"delta"</span><span class="p">]</span> <span class="c1"># Difference between ask and bid volume.</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"min_delta"</span><span class="p">]</span> <span class="c1"># Minimum delta within the candle</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"max_delta"</span><span class="p">]</span> <span class="c1"># Maximum delta within the candle</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"total_trades"</span><span class="p">]</span> <span class="c1"># Total number of trades</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"stacked_imbalances_bid"</span><span class="p">]</span> <span class="c1"># List of price levels of stacked bid imbalance range beginnings</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"stacked_imbalances_ask"</span><span class="p">]</span> <span class="c1"># List of price levels of stacked ask imbalance range beginnings</span>
|
||||
</code></pre></div>
|
||||
<p>``` python</p>
|
||||
<p>dataframe["trades"] # Contains information about each individual trade.
|
||||
dataframe["orderflow"] # Represents a footprint chart dict (see below)
|
||||
dataframe["imbalances"] # Contains information about imbalances in the order flow.
|
||||
dataframe["bid"] # Total bid volume
|
||||
dataframe["ask"] # Total ask volume
|
||||
dataframe["delta"] # Difference between ask and bid volume.
|
||||
dataframe["min_delta"] # Minimum delta within the candle
|
||||
dataframe["max_delta"] # Maximum delta within the candle
|
||||
dataframe["total_trades"] # Total number of trades
|
||||
dataframe["stacked_imbalances_bid"] # List of price levels of stacked bid imbalance range beginnings
|
||||
dataframe["stacked_imbalances_ask"] # List of price levels of stacked ask imbalance range beginnings
|
||||
```</p>
|
||||
<p>You can access these columns in your strategy code for further analysis. Here's an example:</p>
|
||||
<div class="highlight"><pre><span></span><code><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">-></span> <span class="n">DataFrame</span><span class="p">:</span>
|
||||
<span class="c1"># Calculating cumulative delta</span>
|
||||
<span class="n">dataframe</span><span class="p">[</span><span class="s2">"cum_delta"</span><span class="p">]</span> <span class="o">=</span> <span class="n">cumulative_delta</span><span class="p">(</span><span class="n">dataframe</span><span class="p">[</span><span class="s2">"delta"</span><span class="p">])</span>
|
||||
<span class="c1"># Accessing total trades</span>
|
||||
<span class="n">total_trades</span> <span class="o">=</span> <span class="n">dataframe</span><span class="p">[</span><span class="s2">"total_trades"</span><span class="p">]</span>
|
||||
<span class="o">...</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">cumulative_delta</span><span class="p">(</span><span class="n">delta</span><span class="p">:</span> <span class="n">Series</span><span class="p">):</span>
|
||||
<span class="n">cumdelta</span> <span class="o">=</span> <span class="n">delta</span><span class="o">.</span><span class="n">cumsum</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="n">cumdelta</span>
|
||||
</code></pre></div>
|
||||
<p>``` python
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
# Calculating cumulative delta
|
||||
dataframe["cum_delta"] = cumulative_delta(dataframe["delta"])
|
||||
# Accessing total trades
|
||||
total_trades = dataframe["total_trades"]
|
||||
...</p>
|
||||
<p>def cumulative_delta(delta: Series):
|
||||
cumdelta = delta.cumsum()
|
||||
return cumdelta</p>
|
||||
<p>```</p>
|
||||
<h3 id="footprint-chart-dataframeorderflow">Footprint chart (<code>dataframe["orderflow"]</code>)<a class="headerlink" href="#footprint-chart-dataframeorderflow" title="Permanent link">¶</a></h3>
|
||||
<p>This column provides a detailed breakdown of buy and sell orders at different price levels, offering valuable insights into order flow dynamics. The <code>scale</code> parameter in your configuration determines the price bin size for this representation</p>
|
||||
<p>The <code>orderflow</code> column contains a dict with the following structure:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="go">{</span>
|
||||
<span class="go"> "price": {</span>
|
||||
<span class="go"> "bid_amount": 0.0,</span>
|
||||
<span class="go"> "ask_amount": 0.0,</span>
|
||||
<span class="go"> "bid": 0,</span>
|
||||
<span class="go"> "ask": 0,</span>
|
||||
<span class="go"> "delta": 0.0,</span>
|
||||
<span class="go"> "total_volume": 0.0,</span>
|
||||
<span class="go"> "total_trades": 0</span>
|
||||
<span class="go"> }</span>
|
||||
<span class="go">}</span>
|
||||
</code></pre></div>
|
||||
<p><code>output
|
||||
{
|
||||
"price": {
|
||||
"bid_amount": 0.0,
|
||||
"ask_amount": 0.0,
|
||||
"bid": 0,
|
||||
"ask": 0,
|
||||
"delta": 0.0,
|
||||
"total_volume": 0.0,
|
||||
"total_trades": 0
|
||||
}
|
||||
}</code></p>
|
||||
<h4 id="orderflow-column-explanation">Orderflow column explanation<a class="headerlink" href="#orderflow-column-explanation" title="Permanent link">¶</a></h4>
|
||||
<ul>
|
||||
<li>key: Price bin - binned at <code>scale</code> intervals</li>
|
||||
@@ -2205,13 +2206,13 @@ It's also currently not been tested with freqAI - and combining these two featur
|
||||
<h3 id="imbalances-dataframeimbalances">Imbalances (<code>dataframe["imbalances"]</code>)<a class="headerlink" href="#imbalances-dataframeimbalances" title="Permanent link">¶</a></h3>
|
||||
<p>This column provides a dict with information about imbalances in the order flow. An imbalance occurs when there is a significant difference between the ask and bid volume at a given price level.</p>
|
||||
<p>Each row looks as follows - with price as index, and the corresponding bid and ask imbalance values as columns</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="go">{</span>
|
||||
<span class="go"> "price": {</span>
|
||||
<span class="go"> "bid_imbalance": False,</span>
|
||||
<span class="go"> "ask_imbalance": False</span>
|
||||
<span class="go"> }</span>
|
||||
<span class="go">}</span>
|
||||
</code></pre></div>
|
||||
<p><code>output
|
||||
{
|
||||
"price": {
|
||||
"bid_imbalance": False,
|
||||
"ask_imbalance": False
|
||||
}
|
||||
}</code></p>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user