<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: itrade icu</title>
    <description>The latest articles on DEV Community by itrade icu (@itrade_icu_ae8778833e3e8c).</description>
    <link>https://dev.to/itrade_icu_ae8778833e3e8c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3570531%2Fcf2a4848-88f0-4605-aa28-208825e77e37.png</url>
      <title>DEV Community: itrade icu</title>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itrade_icu_ae8778833e3e8c"/>
    <language>en</language>
    <item>
      <title>Episode 11: Futures or Spot? Master Freqtrade's Trading Modes and Leverage Settings in One Go!</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Sat, 08 Nov 2025 02:32:18 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/episode-11-futures-or-spot-master-freqtrades-trading-modes-and-leverage-settings-in-one-go-2pph</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/episode-11-futures-or-spot-master-freqtrades-trading-modes-and-leverage-settings-in-one-go-2pph</guid>
      <description>&lt;h1&gt;
  
  
  Episode 11: ⚔️ Futures or Spot? Master Freqtrade's Trading Modes and Leverage Settings in One Go!
&lt;/h1&gt;

&lt;p&gt;When using Freqtrade, the choice of &lt;strong&gt;trading mode&lt;/strong&gt; directly impacts your strategy logic, risk management, and order execution. You can opt for &lt;strong&gt;spot trading&lt;/strong&gt; or leverage-enabled &lt;strong&gt;futures trading&lt;/strong&gt;. Different modes come with distinct configuration parameters, such as &lt;code&gt;margin_mode&lt;/code&gt;, &lt;code&gt;leverage&lt;/code&gt;, and &lt;code&gt;liquidation_buffer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This episode systematically explains the roles, use cases, and practical considerations of these settings to help you build a robust risk control framework.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;real-world strategy guides&lt;/strong&gt;, &lt;strong&gt;indicator breakdowns&lt;/strong&gt;, and more — helping you master quant trading skills with ease!
&lt;/h2&gt;

&lt;h2&gt;
  
  
  💱 trading_mode — Trading Mode Setting
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"trading_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"spot"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Determines whether Freqtrade operates in the spot or futures market.&lt;/li&gt;
&lt;li&gt;Available options:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;"spot"&lt;/code&gt;: Spot mode — only buy low, sell high; no shorting.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"futures"&lt;/code&gt;: Futures mode — supports leverage, long/short positions; more flexible but higher risk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  🟢 Spot Mode Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Only profits from price increases (buy low, sell high) — ideal for bull markets.&lt;/li&gt;
&lt;li&gt;Simple logic, no leverage management needed.&lt;/li&gt;
&lt;li&gt;Best for beginners or stable strategies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🔴 Futures Mode Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Supports long and short positions — suits volatile or bearish markets.&lt;/li&gt;
&lt;li&gt;Leverage amplifies both profits and losses.&lt;/li&gt;
&lt;li&gt;Requires advanced risk controls like position sizing, liquidation buffers, and isolated margin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Practical Tip:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginners should start with &lt;code&gt;"spot"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Switch to &lt;code&gt;"futures"&lt;/code&gt; only after gaining experience and enabling proper risk controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🧮 margin_mode — Futures Margin Mode
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;margin_mode&lt;/code&gt; is &lt;strong&gt;only effective when &lt;code&gt;trading_mode: "futures"&lt;/code&gt;&lt;/strong&gt; — it is ignored in spot mode. It defines the &lt;strong&gt;margin type&lt;/strong&gt; for each futures trade.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"trading_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"futures"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Futures&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;mode&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"margin_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"isolated"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Available values:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"isolated"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Isolated Margin (Recommended)&lt;/td&gt;
&lt;td&gt;Each position bears its own risk — liquidation of one trade won't affect others. &lt;strong&gt;Recommended for futures beginners.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"cross"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cross Margin&lt;/td&gt;
&lt;td&gt;All positions share account balance — high risk; &lt;strong&gt;poor management can lead to full account liquidation.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;✅ Recommended Setting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;"isolated"&lt;/code&gt; — even if one position gets liquidated, it won’t drag down the entire account. Safer and more stable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💥 leverage — Leverage Multiplier Setting
&lt;/h2&gt;

&lt;p&gt;Freqtrade allows &lt;strong&gt;dynamic leverage setting&lt;/strong&gt; within strategies, and you can customize it per trading pair.&lt;/p&gt;

&lt;h4&gt;
  
  
  📌 Example in Strategy Code:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;leverage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pair&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_time&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_rate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="n"&gt;current_profit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_cost&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;  &lt;span class="c1"&gt;# Set to 3x leverage
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ⚠️ Key Notes:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Leverage is &lt;strong&gt;only available in &lt;code&gt;trading_mode = futures&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Return value must be a float.&lt;/li&gt;
&lt;li&gt;If the &lt;code&gt;leverage()&lt;/code&gt; method is not implemented, Freqtrade &lt;strong&gt;won’t set leverage&lt;/strong&gt; — it defaults to the exchange’s account setting.&lt;/li&gt;
&lt;li&gt;Some exchanges cap max leverage (e.g., Binance: 20–125x).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Practical Advice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with &lt;strong&gt;2–5x leverage&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Leverage magnifies both gains &lt;strong&gt;and losses&lt;/strong&gt; — always pair with stop-loss and buffer mechanisms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛡️ liquidation_buffer — Liquidation Buffer
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"liquidation_buffer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Only applies in &lt;code&gt;futures&lt;/code&gt; mode.&lt;/li&gt;
&lt;li&gt;Reduces the usable balance to prevent full allocation, avoiding inability to add margin — &lt;strong&gt;indirectly lowers liquidation risk&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set to 5% → reserves 5% of account balance, limiting "available funds" for trading.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  📌 Example:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Total Account&lt;/th&gt;
&lt;th&gt;&lt;code&gt;liquidation_buffer&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;Max Usable Funds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1000 USDT&lt;/td&gt;
&lt;td&gt;0.05 (5%)&lt;/td&gt;
&lt;td&gt;950 USDT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1000 USDT&lt;/td&gt;
&lt;td&gt;0.2 (20%)&lt;/td&gt;
&lt;td&gt;800 USDT&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;✅ Recommended Values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginners: &lt;strong&gt;0.05 ~ 0.1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;High-leverage strategies: &lt;strong&gt;0.2 or higher&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmjmzf4k1o2yu7pl2qhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmjmzf4k1o2yu7pl2qhk.png" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Recommended Configuration Combo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"trading_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"futures"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"margin_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"isolated"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"liquidation_buffer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 Add to strategy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;leverage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pair&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_rate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_profit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_cost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;  &lt;span class="c1"&gt;# Set 3x leverage
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📊 Mode Comparison Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Spot Mode&lt;/th&gt;
&lt;th&gt;Futures Mode&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Short Selling&lt;/td&gt;
&lt;td&gt;❌ Not supported&lt;/td&gt;
&lt;td&gt;✅ Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leverage&lt;/td&gt;
&lt;td&gt;❌ Not supported&lt;/td&gt;
&lt;td&gt;✅ Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk Management Needs&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;High (stop-loss, position control, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recommended Margin Mode&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;code&gt;"isolated"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leverage Logic Required?&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Recommended (dynamic)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;liquidation_buffer&lt;/code&gt; Supported?&lt;/td&gt;
&lt;td&gt;❌ Ignored&lt;/td&gt;
&lt;td&gt;✅ Strongly recommended&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🔐 Live Trading Risk Control Tips
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control Item&lt;/th&gt;
&lt;th&gt;Recommended Practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;margin_mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set to &lt;code&gt;"isolated"&lt;/code&gt; to prevent cascade liquidations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;leverage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start with &lt;strong&gt;2–3x&lt;/strong&gt;, validate via backtest/live comparison before increasing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;liquidation_buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set &lt;strong&gt;0.05–0.2&lt;/strong&gt; to avoid full exposure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stop-Loss&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;stoploss&lt;/code&gt; or &lt;code&gt;custom_stoploss&lt;/code&gt; for forced exits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Position Limit&lt;/td&gt;
&lt;td&gt;Combine with &lt;code&gt;max_open_trades&lt;/code&gt; to cap open positions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🧠 Summary Checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Recommended Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;trading_mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sets trading mode (spot/futures)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;"spot"&lt;/code&gt; or &lt;code&gt;"futures"&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;margin_mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sets margin type (futures only)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;"isolated"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;liquidation_buffer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reserves % of balance in futures&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.05 ~ 0.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;leverage()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy function to set leverage&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2.0 ~ 5.0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>webdev</category>
      <category>blockchain</category>
      <category>btc</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>Episode 10: 💥 Stop Going All-In and Getting Liquidated! Master Freqtrade's Capital Allocation to Survive Longer</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Sat, 08 Nov 2025 02:27:42 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/episode-10-stop-going-all-in-and-getting-liquidated-master-freqtrades-capital-allocation-to-5b54</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/episode-10-stop-going-all-in-and-getting-liquidated-master-freqtrades-capital-allocation-to-5b54</guid>
      <description>&lt;h1&gt;
  
  
  Episode 10: 💥 Stop Going All-In and Getting Liquidated! Master Freqtrade's Capital Allocation to Survive Longer
&lt;/h1&gt;

&lt;p&gt;In Freqtrade, capital allocation is the foundation of all strategy operations. Whether in spot or futures trading, parameters like &lt;code&gt;stake_currency&lt;/code&gt;, &lt;code&gt;stake_amount&lt;/code&gt;, and &lt;code&gt;tradable_balance_ratio&lt;/code&gt; determine the currency used per trade, the amount of funds allocated, and how account risk is controlled.&lt;/p&gt;

&lt;p&gt;Proper configuration ensures stable and safe strategy execution; poor setup can lead to order failures or liquidation, impacting live trading.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;real-world strategy guides&lt;/strong&gt;, &lt;strong&gt;indicator breakdowns&lt;/strong&gt;, and more — helping you master quant trading skills with ease!
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🪙 stake_currency — The Trading Currency Used
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Specifies the base currency used for buying in each trade.&lt;/li&gt;
&lt;li&gt;Common options: "USDT", "BTC", "ETH", etc.&lt;/li&gt;
&lt;li&gt;In spot trading, this determines the asset type you need in your account.&lt;/li&gt;
&lt;li&gt;In futures mode, it sets the denomination for contract margin.
✅ Practical Tip:&lt;/li&gt;
&lt;li&gt;Most strategies use "USDT" as &lt;code&gt;stake_currency&lt;/code&gt; — it's more universal and stable.&lt;/li&gt;
&lt;li&gt;If you only hold BTC and want to trade other pairs directly with it, switch to "BTC".&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💵 stake_amount — Investment Amount Per Trade
&lt;/h2&gt;

&lt;p&gt;Can be set as:&lt;/p&gt;

&lt;h4&gt;
  
  
  1️⃣ Fixed Value (Recommended for Beginners)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Each trade uses up to 100 USDT; actual order size may vary slightly due to price/position adjustments.&lt;/li&gt;
&lt;li&gt;Easier risk control with higher consistency between backtests and live trading.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2️⃣ Dynamic Value "unlimited"
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unlimited"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The system automatically uses available account balance (limited by &lt;code&gt;tradable_balance_ratio&lt;/code&gt; below).&lt;/li&gt;
&lt;li&gt;More flexible, ideal for larger capital or complex strategy scheduling.
⚠️ Note:&lt;/li&gt;
&lt;li&gt;In futures accounts, ensure proper leverage is set on the exchange — Freqtrade's &lt;code&gt;stake_amount&lt;/code&gt; does &lt;strong&gt;not&lt;/strong&gt; auto-manage leverage.&lt;/li&gt;
&lt;li&gt;When using multi-pair or multi-position strategies, pay close attention to position management to avoid depleting the entire balance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🧮 tradable_balance_ratio — Balance Usage Ratio Limit
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Only effective when &lt;code&gt;stake_amount: "unlimited"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Caps usage at 95% of account balance for opening positions, reserving 5% as a buffer.&lt;/li&gt;
&lt;li&gt;Prevents "running out of funds," avoiding failed subsequent orders.&lt;/li&gt;
&lt;li&gt;📌 Example:

&lt;ul&gt;
&lt;li&gt;Account balance: 1000 USDT, ratio = 0.95 → strategy uses at most 950 USDT for positions.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;✅ Recommended Values:

&lt;ul&gt;
&lt;li&gt;Generally 0.90 ~ 0.98;&lt;/li&gt;
&lt;li&gt;The more conservative, the better protection against liquidation or insufficient margin.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛡️ Live Trading Risk Control Recommendations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control Point&lt;/th&gt;
&lt;th&gt;Suggested Config&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Initial Testing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;"stake_amount": 50~100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fixed amounts are more stable for observing strategy performance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch Trading&lt;/td&gt;
&lt;td&gt;Pair with &lt;code&gt;"max_open_trades"&lt;/code&gt; limit&lt;/td&gt;
&lt;td&gt;Prevents too many simultaneous positions, avoiding fund dispersion and risk runaway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Account Safety&lt;/td&gt;
&lt;td&gt;Set &lt;code&gt;tradable_balance_ratio &amp;lt; 1.0&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Reserves buffer for fees or emergencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leverage Mode&lt;/td&gt;
&lt;td&gt;Dynamically control position size or enable &lt;code&gt;liquidation_buffer&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Avoids full-margin leverage liquidation and liquidity crashes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwiyjywmadxlyfnnzngr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwiyjywmadxlyfnnzngr.png" width="316" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Example Configuration Combo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unlimited"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trade using USDT;&lt;/li&gt;
&lt;li&gt;No fixed per-trade amount, but never exceed 90% of total balance;&lt;/li&gt;
&lt;li&gt;Skip trades under 10 USDT;&lt;/li&gt;
&lt;li&gt;Best for intermediate/advanced users with integrated risk controls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ Summary Checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Recommended Value / Tip&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stake_currency&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Currency used for trading (buying)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;"USDT"&lt;/code&gt; most common&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stake_amount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Per-trade amount: fixed or &lt;code&gt;"unlimited"&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Beginners: fixed; Experts: dynamic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tradable_balance_ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Caps max account usage to avoid full balance or margin exhaustion&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.9 ~ 0.98&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Treat these settings as your baseline capital safety net before going live. No matter how good the strategy, always defend the "bottom line" of fund control.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>btc</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Episode 10: 💥 Stop Going All-In and Getting Liquidated! Master Freqtrade's Capital Allocation to Survive Longer</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Fri, 31 Oct 2025 10:59:02 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/episode-10-stop-going-all-in-and-getting-liquidated-master-freqtrades-capital-allocation-to-1a2j</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/episode-10-stop-going-all-in-and-getting-liquidated-master-freqtrades-capital-allocation-to-1a2j</guid>
      <description>&lt;h1&gt;
  
  
  Episode 10: 💥 Stop Going All-In and Getting Liquidated! Master Freqtrade's Capital Allocation to Survive Longer
&lt;/h1&gt;

&lt;p&gt;In Freqtrade, capital allocation is the foundation of all strategy operations. Whether in spot or futures trading, parameters like &lt;code&gt;stake_currency&lt;/code&gt;, &lt;code&gt;stake_amount&lt;/code&gt;, and &lt;code&gt;tradable_balance_ratio&lt;/code&gt; determine the currency used per trade, the amount of funds, and how account risk is controlled.&lt;/p&gt;

&lt;p&gt;Proper configuration ensures stable and safe strategy execution; poor setup can lead to order failures or liquidation, impacting live trading.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;strategy combat&lt;/strong&gt;, &lt;strong&gt;indicator analysis&lt;/strong&gt;, and more rich content to help you easily master quantitative trading skills!&lt;/p&gt;




&lt;h2&gt;
  
  
  🪙 stake_currency — The Trading Currency Used
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Specifies the base currency used for buying in each trade.&lt;/li&gt;
&lt;li&gt;Common options: "USDT", "BTC", "ETH", etc.&lt;/li&gt;
&lt;li&gt;In spot trading, this determines the asset type you need to prepare in your account.&lt;/li&gt;
&lt;li&gt;In futures mode, it also determines the pricing unit for contract margins.
✅ Practical Advice:&lt;/li&gt;
&lt;li&gt;Most strategies use "USDT" as stake_currency—it's more universal and stable.&lt;/li&gt;
&lt;li&gt;If you only hold BTC and want to trade other coins directly with BTC, switch to "BTC".&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💵 stake_amount — Investment Amount per Trade
&lt;/h2&gt;

&lt;p&gt;Can be set as:&lt;/p&gt;

&lt;h4&gt;
  
  
  1️⃣ Fixed Value (Recommended for Beginners)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Each trade uses up to 100 USDT; actual order amounts may vary slightly due to price/position adjustments.&lt;/li&gt;
&lt;li&gt;Easier risk control with higher consistency between backtesting and live results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2️⃣ Dynamic Value "unlimited"
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unlimited"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The system automatically uses available account balance (limited by tradable_balance_ratio below).&lt;/li&gt;
&lt;li&gt;More flexible, suitable for larger funds or complex strategy scheduling.
⚠️ Note:&lt;/li&gt;
&lt;li&gt;For futures accounts, ensure reasonable leverage is set on the exchange—Freqtrade's &lt;code&gt;stake_amount&lt;/code&gt; does not automatically control leverage.&lt;/li&gt;
&lt;li&gt;When using multi-pair or multi-position strategies, pay special attention to position management to avoid depleting account balance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🧮 tradable_balance_ratio — Balance Usage Ratio Limit
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Only effective when stake_amount: "unlimited".&lt;/li&gt;
&lt;li&gt;Means at most 95% of account balance is used for opening positions, reserving 5% as buffer.&lt;/li&gt;
&lt;li&gt;Primary role: Prevent "using up balance" to avoid subsequent signal order failures.&lt;/li&gt;
&lt;li&gt;📌 Example:

&lt;ul&gt;
&lt;li&gt;Account balance 1000 USDT, ratio = 0.95 → Strategy uses at most 950 USDT for positions.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;✅ Recommended Values:

&lt;ul&gt;
&lt;li&gt;Generally set to 0.90 ~ 0.98;&lt;/li&gt;
&lt;li&gt;The more conservative, the better it prevents liquidation or insufficient margin.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛡️ Live Trading Risk Control Recommendations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control Point&lt;/th&gt;
&lt;th&gt;Suggested Configuration&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Initial Testing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;"stake_amount": 50~100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fixed amounts are more stable, easier to observe strategy performance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch Trading&lt;/td&gt;
&lt;td&gt;Pair with &lt;code&gt;"max_open_trades"&lt;/code&gt; to limit positions&lt;/td&gt;
&lt;td&gt;Prevent too many simultaneous positions, fund dispersion, and risk out of control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Account Safety&lt;/td&gt;
&lt;td&gt;Set &lt;code&gt;tradable_balance_ratio &amp;lt; 1.0&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Reserve buffer balance to prevent liquidation or insufficient fees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leverage Mode&lt;/td&gt;
&lt;td&gt;Dynamically control positions or enable &lt;code&gt;liquidation_buffer&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Prevent full-margin leverage liquidation and liquidity crashes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwiyjywmadxlyfnnzngr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwiyjywmadxlyfnnzngr.png" width="316" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Example Configuration Combination
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unlimited"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trade using USDT;&lt;/li&gt;
&lt;li&gt;No fixed amount per order, but not exceeding 90% of total balance;&lt;/li&gt;
&lt;li&gt;Skip orders below 10 USDT;&lt;/li&gt;
&lt;li&gt;More suitable for intermediate/advanced users with flexible risk control strategies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ Summary Checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Recommended Value / Advice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stake_currency&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Currency used for trading (buying)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;"USDT"&lt;/code&gt; most common&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stake_amount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Amount per trade: fixed or &lt;code&gt;"unlimited"&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Beginners use fixed value; experts use dynamic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tradable_balance_ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limits max account usage ratio to avoid full positions or depleting margin&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.9 ~ 0.98&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Use these configurations as your basic capital safety line before going live. No matter how good the strategy, always guard the "bottom line" of capital control.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>frontend</category>
      <category>webdev</category>
      <category>blockchain</category>
      <category>ai</category>
    </item>
    <item>
      <title>Article 9: Freqtrade Quantitative Trading - config.json Basics and Initialization</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Wed, 29 Oct 2025 12:59:39 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/article-9-freqtrade-quantitative-trading-configjson-basics-and-initialization-39n6</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/article-9-freqtrade-quantitative-trading-configjson-basics-and-initialization-39n6</guid>
      <description>&lt;h1&gt;
  
  
  Article 9: Freqtrade Quantitative Trading - config.json Basics and Initialization
&lt;/h1&gt;

&lt;p&gt;📁 Complete Breakdown of Freqtrade's Most Critical File: config.json (With Practical Tips)&lt;br&gt;
Before using Freqtrade for strategy backtesting, data downloading, or live trading, the most essential preparation is creating and configuring the &lt;code&gt;config.json&lt;/code&gt; file. It serves as the "command center" of the entire trading framework, determining which exchange to connect to, how to trade, how strategies run, how much trading capital to use, and how to allocate balances.&lt;/p&gt;
&lt;h2&gt;
  
  
  This article will systematically guide you through the role of config.json, how to generate it, its file structure, and editing tips to help you get started quickly and avoid common pitfalls.
&lt;/h2&gt;
&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;real-world strategy examples&lt;/strong&gt;, &lt;strong&gt;indicator breakdowns&lt;/strong&gt;, and more to help you master quantitative trading techniques with ease!
&lt;/h2&gt;
&lt;h2&gt;
  
  
  🧱 What is config.json?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;config.json&lt;/code&gt; is Freqtrade's &lt;strong&gt;main configuration file&lt;/strong&gt;, used to centrally manage all runtime parameters of the project. It is a standard JSON-formatted text file containing the following information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exchange account details (API Key/Secret)&lt;/li&gt;
&lt;li&gt;Trading pairs and amount settings&lt;/li&gt;
&lt;li&gt;Strategy execution rules (e.g., maximum open positions, shorting allowed, etc.)&lt;/li&gt;
&lt;li&gt;Data timeframes and backtesting settings&lt;/li&gt;
&lt;li&gt;Limit/market order control logic&lt;/li&gt;
&lt;li&gt;Risk management configurations (stop-loss, take-profit, slippage control, etc.)&lt;/li&gt;
&lt;li&gt;Webhook/Telegram notification channels (optional)
Whether you're doing data analysis, backtest optimization, or live deployment, this configuration file is an indispensable foundation.
---
## 🆕 How to Generate config.json?
Freqtrade provides a command-line tool to generate a default configuration template with one click—perfect for beginners to get started quickly.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade new-config &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Specify your target path after &lt;code&gt;--config&lt;/code&gt; (recommended: user_data/config.json)&lt;/li&gt;
&lt;li&gt;The directory will be created automatically if it doesn't exist&lt;/li&gt;
&lt;li&gt;After generation, edit the file using any text editor
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmi65g7unv4koe1d8ixjf.png" width="322" height="156"&gt;
## 📂 Recommended File Structure
The recommended basic directory structure for a Freqtrade project is as follows:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;freqtrade/
├── user_data/
│ ├── config.json ← ✅ Main configuration file
│ ├── strategies/ ← Strategy folder (.py files)
│ ├── logs/ ← Log output
│ ├── ...
├── freqtrade/ ← Project source code (or virtual environment)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Placing config.json in the user_data/ folder is the officially recommended practice, which helps maintain path consistency and ease of backup management.&lt;/p&gt;
&lt;h2&gt;
  
  
  🐳 Directory Structure When Running with Docker
&lt;/h2&gt;

&lt;p&gt;If you're using the officially recommended Docker method to run Freqtrade (highly recommended!), the directory structure is controlled by Docker volume mappings and differs slightly from local execution.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ft_userdata/
├── user_data/
│ ├── config.json ← ✅ Main configuration file (for modifying runtime parameters)
│ ├── strategies/ ← Strategy folder (.py files)
│ ├── hyperopt/ ← Parameter optimization results
│ ├── logs/ ← Log output
│ ├── ...
├── docker-compose.yml ← Service startup entry configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🔍 Beginner Preview Example
&lt;/h2&gt;

&lt;p&gt;Below is a preview of the most basic version of a config.json file (showing only the initial part):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_open_trades"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stake_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dry_run"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"exchange"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"binance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_api_key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"secret"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_api_secret"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_api_password"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Required&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;certain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;exchanges&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;OKX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Kraken&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Field explanations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;max_open_trades: Maximum number of positions allowed open simultaneously (to prevent overexposure)&lt;/li&gt;
&lt;li&gt;stake_currency: Base currency for trading funds, usually USDT&lt;/li&gt;
&lt;li&gt;stake_amount: Amount of funds used per trade&lt;/li&gt;
&lt;li&gt;dry_run: Whether to enable dry-run mode (true means no real money is used)
## 🛠️ Debugging Tips When Modifying Configuration&lt;/li&gt;
&lt;li&gt;✅ After modification, use the following command to check if the &lt;code&gt;EXCHANGE API key&lt;/code&gt; is valid:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade list-markets &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API Key Configured?&lt;/th&gt;
&lt;th&gt;Can list-markets run?&lt;/th&gt;
&lt;th&gt;Can trade?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Suitable for live trading with full features&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Depends on exchange&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;Only some exchanges allow anonymous market listing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;✅ You can also run a strategy initialization before backtesting to check for errors:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧠 Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key Point&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Configuration file name&lt;/td&gt;
&lt;td&gt;Fixed as &lt;code&gt;config.json&lt;/code&gt;, recommended in &lt;code&gt;user_data/&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generation command&lt;/td&gt;
&lt;td&gt;&lt;code&gt;freqtrade new-config --config &amp;lt;path&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Error troubleshooting&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;backtesting&lt;/code&gt; or &lt;code&gt;list-markets&lt;/code&gt; to verify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Version control&lt;/td&gt;
&lt;td&gt;✅ Strongly recommended to include config.json in Git&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>freqtrade</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>btc</category>
    </item>
    <item>
      <title>Article 8: Quantitative Trading - Differences Between tradeUI and webserverUI</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Mon, 27 Oct 2025 01:08:35 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/article-8-quantitative-trading-differences-between-tradeui-and-webserverui-35g4</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/article-8-quantitative-trading-differences-between-tradeui-and-webserverui-35g4</guid>
      <description>&lt;h2&gt;
  
  
  🔍 Article 8: Quantitative Trading - Differences Between &lt;code&gt;tradeUI&lt;/code&gt; and &lt;code&gt;webserverUI&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Although both are often used together, their roles and startup logic are completely different. Below is a detailed comparison 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Want to learn quantitative trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://itrade.icu/" rel="noopener noreferrer"&gt;https://itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Here you'll find a wealth of content, including &lt;strong&gt;Freqtrade Basic Tutorial&lt;/strong&gt;, &lt;strong&gt;Strategy Source Code&lt;/strong&gt;, &lt;strong&gt;Indicator Analysis&lt;/strong&gt;, and more, to help you easily master quantitative trading techniques!&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;&lt;code&gt;freqtrade trade&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;freqtrade webserver&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ Startup Content&lt;/td&gt;
&lt;td&gt;Starts the trading bot (live or dry-run)&lt;/td&gt;
&lt;td&gt;Starts the visualization UI service (for viewing data)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚙️ Core Function&lt;/td&gt;
&lt;td&gt;Executes strategies, places orders, monitors markets&lt;/td&gt;
&lt;td&gt;Graphically displays strategy performance/backtest results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 Runs Strategy Logic?&lt;/td&gt;
&lt;td&gt;✅ Yes (runs strategy in real-time)&lt;/td&gt;
&lt;td&gt;❌ No (only reads and displays data)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📦 Data Source&lt;/td&gt;
&lt;td&gt;Real-time market data, order execution&lt;/td&gt;
&lt;td&gt;Local SQLite database (or strategy output)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏱ Use Case&lt;/td&gt;
&lt;td&gt;Live trading (simulated or real)&lt;/td&gt;
&lt;td&gt;View strategy performance/order info in browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔗 Connects to Exchange?&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📈 View Backtest Results?&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Supports backtest visualization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚀 Browser Access Address&lt;/td&gt;
&lt;td&gt;Optional UI, runs in background&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://127.0.0.1:8080" rel="noopener noreferrer"&gt;http://127.0.0.1:8080&lt;/a&gt; (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  ✅ Use Case Distinction
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. &lt;code&gt;trade&lt;/code&gt; Runs the Bot
&lt;/h3&gt;

&lt;p&gt;You can choose &lt;strong&gt;live trading&lt;/strong&gt; or &lt;strong&gt;dry-run (simulated trading)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Continuously fetches real-time market data&lt;/li&gt;
&lt;li&gt;Executes strategy logic (e.g., buy/sell signals)&lt;/li&gt;
&lt;li&gt;Connects to the exchange, records orders, funds, and profits&lt;/li&gt;
&lt;li&gt;Writes all data to a local database (SQLite)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Without this, the bot won't do anything!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;webserver&lt;/code&gt; Provides a Graphical Interface
&lt;/h3&gt;

&lt;p&gt;It only reads data and provides a browser-based interface:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade webserver &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--username&lt;/span&gt; admin &lt;span class="nt"&gt;--password&lt;/span&gt; 123456
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Displays current holdings, trade history, and strategy name&lt;/li&gt;
&lt;li&gt;Allows viewing of live strategy performance&lt;/li&gt;
&lt;li&gt;Can also display backtest result charts (e.g., after running backtesting)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;❗ Does &lt;strong&gt;not&lt;/strong&gt; run strategies or connect to exchanges!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxrkqc9rvs0hltplz9rk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxrkqc9rvs0hltplz9rk.png" alt="Image" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔄 Relationship Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;trade&lt;/code&gt; is the "bot engine"&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;webserver&lt;/code&gt; is the "graphical interface"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can think of it like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;trade&lt;/code&gt; is the executor that does the actual work&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;webserver&lt;/code&gt; is the observation window&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you only run &lt;code&gt;webserver&lt;/code&gt; without running &lt;code&gt;trade&lt;/code&gt;, you’ll only see previously recorded data, and no new trades will be generated.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Practical Advice (Docker Environment)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;trader&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;freqtradeorg/freqtrade:stable&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;trade&lt;/span&gt;
      &lt;span class="s"&gt;--config /quants/freqtrade/user_data/config.json&lt;/span&gt;
      &lt;span class="s"&gt;--strategy MyStrategy&lt;/span&gt;

  &lt;span class="na"&gt;ui&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;freqtradeorg/freqtrade:stable&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;webserver&lt;/span&gt;
      &lt;span class="s"&gt;--config /quants/freqtrade/user_data/config.json&lt;/span&gt;
      &lt;span class="s"&gt;--username admin&lt;/span&gt;
      &lt;span class="s"&gt;--password 123456&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8080:8080"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, open your browser and visit: &lt;code&gt;http://localhost:8080&lt;/code&gt; to access your trading bot's dashboard.&lt;/p&gt;

</description>
      <category>freqtrade</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>Chapter 7: How to Set Up the Freqtrade Web UI? Installation and Usage Guide</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Sun, 26 Oct 2025 00:26:18 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-7-how-to-set-up-the-freqtrade-web-ui-installation-and-usage-guide-39ea</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-7-how-to-set-up-the-freqtrade-web-ui-installation-and-usage-guide-39ea</guid>
      <description>&lt;h1&gt;
  
  
  📘 Chapter 7: How to Set Up the Freqtrade Web UI? Installation and Usage Guide
&lt;/h1&gt;

&lt;p&gt;When running Freqtrade for live trading or backtesting, you might want to monitor the strategy's performance, open positions, and profits in real-time. This is where the &lt;strong&gt;Web UI&lt;/strong&gt; (FreqUI) comes in handy.&lt;/p&gt;

&lt;p&gt;This article explains how to install and run the Web UI using both command-line and Docker methods, along with common use cases.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wrjd5xqcuzga1ey31oz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wrjd5xqcuzga1ey31oz.png" width="317" height="159"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;strategy guides&lt;/strong&gt;, &lt;strong&gt;indicator analysis&lt;/strong&gt;, and more to help you master quantitative trading with ease!&lt;/p&gt;


&lt;h2&gt;
  
  
  🧩 1. Install Web UI Dependencies
&lt;/h2&gt;

&lt;p&gt;Before using the Web UI for the first time, you need to install the required dependencies with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade install-ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command automatically installs the necessary modules for running the Web interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 2. Start the Webserver Service
&lt;/h2&gt;

&lt;p&gt;The webserver is the backend entry point for the UI, listening on a port (default: 8080).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade webserver &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, you can access the Web UI via a browser at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ⚙️ 3. Common Parameters Explained
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specify the configuration file path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specify the listening port (default: 8080)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;--username&lt;/code&gt; / &lt;code&gt;--password&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Set login username and password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--api-server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable REST API service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--webserver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Enable UI Web service (enabled by default)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;🧱 &lt;strong&gt;Example&lt;/strong&gt;: Start with a custom port and login credentials&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade webserver &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 8888 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--username&lt;/span&gt; admin &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--password&lt;/span&gt; 123456
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccvrpoj8uyrxusz4j4ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccvrpoj8uyrxusz4j4ru.png" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🐳 4. Docker Setup for Web UI
&lt;/h2&gt;

&lt;p&gt;If you're using Docker, you can configure it with the following &lt;code&gt;docker-compose.yml&lt;/code&gt; file:&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note&lt;/strong&gt;: When using Docker, ensure the &lt;code&gt;api_server.listen_port&lt;/code&gt; in &lt;code&gt;config.json&lt;/code&gt; matches the &lt;code&gt;ports&lt;/code&gt; setting in &lt;code&gt;docker-compose.yml&lt;/code&gt;, otherwise, the UI won't be accessible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"api_server"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"listen_ip_address"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"127.0.0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"listen_port"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7777&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"verbosity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"enable_openapi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"jwt_secret_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"ws_token"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"CORS_origins"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"username"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;freqtrade&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;freqtradeorg/freqtrade:stable&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./user_data:/quants/freqtrade/user_data&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;8888:7777"&lt;/span&gt; &lt;span class="c1"&gt;# Access externally via http://localhost:8888&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;webserver&lt;/span&gt;
      &lt;span class="s"&gt;--config /quants/freqtrade/user_data/config.json&lt;/span&gt;
      &lt;span class="s"&gt;--username admin&lt;/span&gt;
      &lt;span class="s"&gt;--password 123456&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📊 6. Web UI Modules Explained
&lt;/h2&gt;

&lt;p&gt;Freqtrade provides two Web UI interfaces for different scenarios:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 1. Live Trading Web UI (enabled with &lt;code&gt;freqtrade trade&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Used for real-time monitoring of trading bot performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View current strategy, open positions, and profit/loss&lt;/li&gt;
&lt;li&gt;Manage open orders, close positions, or create manual trades (requires API enabled)&lt;/li&gt;
&lt;li&gt;Browse historical trade records and profit/loss charts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧪 2. Backtesting Web UI
&lt;/h3&gt;

&lt;p&gt;Used for visualizing backtesting results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Graphical display of profit/loss curves, indicator lines, and buy/sell points&lt;/li&gt;
&lt;li&gt;Overview of strategy performance and trade statistics&lt;/li&gt;
&lt;li&gt;Requires running &lt;code&gt;freqtrade backtesting&lt;/code&gt; to generate results first&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade webserver &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔧 7. Notes and Common Issues
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unable to access UI&lt;/td&gt;
&lt;td&gt;Ensure the correct webserver mode is running and the port is open&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blank page / style issues&lt;/td&gt;
&lt;td&gt;Run &lt;code&gt;freqtrade install-ui&lt;/code&gt; to install frontend dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker UI inaccessible&lt;/td&gt;
&lt;td&gt;Check &lt;code&gt;docker-compose.yml&lt;/code&gt; for &lt;code&gt;ports: 8888:8080&lt;/code&gt; mapping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UI doesn't recognize strategy&lt;/td&gt;
&lt;td&gt;Ensure the strategy file name is correct and matches the &lt;code&gt;"strategy"&lt;/code&gt; field in &lt;code&gt;config.json&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backtesting UI shows no data&lt;/td&gt;
&lt;td&gt;Ensure &lt;code&gt;freqtrade backtesting&lt;/code&gt; has been run to generate results before starting &lt;code&gt;webserver&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;The Freqtrade Web UI is a lightweight and practical visualization tool that can be used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor trading status in real-time&lt;/li&gt;
&lt;li&gt;View backtesting or live trading performance&lt;/li&gt;
&lt;li&gt;Manually intervene in trading actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're familiar with the CLI but want a more intuitive way to manage strategies and assets, the Web UI is highly recommended!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>blockchain</category>
      <category>python</category>
      <category>web3</category>
    </item>
    <item>
      <title>Article 6: Freqtrade - "Visualize Your Data with Charts! Plot-Dataframe Visualization Tutorial"</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Fri, 24 Oct 2025 06:49:40 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/article-6-freqtrade-visualize-your-data-with-charts-plot-dataframe-visualization-tutorial-18nd</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/article-6-freqtrade-visualize-your-data-with-charts-plot-dataframe-visualization-tutorial-18nd</guid>
      <description>&lt;h1&gt;
  
  
  📘 Article 6: Freqtrade - "Visualize Your Data with Charts! Plot-Dataframe Visualization Tutorial"
&lt;/h1&gt;

&lt;p&gt;During strategy development, backtest results are often presented in tabular form, making it hard to quickly identify issues. The &lt;code&gt;plot-dataframe&lt;/code&gt; command visualizes buy/sell points, indicator lines, and price trends as charts, helping you instantly understand strategy performance.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Find &lt;strong&gt;Freqtrade Basics&lt;/strong&gt;, &lt;strong&gt;Strategy Practices&lt;/strong&gt;, &lt;strong&gt;Indicator Analysis&lt;/strong&gt;, and more to help you master quantitative trading skills effortlessly!&lt;/p&gt;


&lt;h2&gt;
  
  
  🎯 1. Basic Usage: Generating Charts
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade plot-dataframe &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230201
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This command generates an &lt;code&gt;.html&lt;/code&gt; file in the &lt;code&gt;user_data/plot/&lt;/code&gt; directory, which you can open in a browser to view:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Candlestick price trends&lt;/li&gt;
&lt;li&gt;Buy/Sell points (marked with arrows)&lt;/li&gt;
&lt;li&gt;Technical indicators (e.g., EMA, MACD)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  🧾 2. Parameter Breakdown
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Path to the configuration file (includes trading pairs, timeframes, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--strategy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy class name (e.g., &lt;code&gt;MyStrategy&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timerange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Time range for the chart (e.g., &lt;code&gt;20230101-20230201&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--indicators1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Indicators for the main chart (e.g., EMA, close)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--indicators2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Indicators for the subplot (e.g., RSI, MACD)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--exportfilename&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Output file path (supports &lt;code&gt;.html&lt;/code&gt; or &lt;code&gt;.png&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--userdir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Custom &lt;code&gt;user_data&lt;/code&gt; directory (default is fine)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulp94pzr2zfn27msmwwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulp94pzr2zfn27msmwwm.png" alt="Example Image" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  📐 3. Adding Custom Indicators
&lt;/h2&gt;

&lt;p&gt;You can include additional indicators in the chart to validate signal logic:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;populate_indicators&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ema&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;EMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;timeperiod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;fast_ema&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;EMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;timeperiod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;slow_ema&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;EMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;timeperiod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rsi&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;RSI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;timeperiod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;macd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;macdsignal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;macdhist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MACD&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;close&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;macd&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;macd&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--indicators1&lt;/code&gt; plots on the main chart (price chart), e.g., EMA lines.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--indicators2&lt;/code&gt; plots on the subplot, e.g., RSI, MACD.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Complete Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade plot-dataframe &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230201 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--indicators1&lt;/span&gt; close ema fast_ema slow_ema &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--indicators2&lt;/span&gt; rsi macd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ❗ Note:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Indicator names must match the column names in the &lt;code&gt;DataFrame&lt;/code&gt; created in the &lt;code&gt;populate_indicators()&lt;/code&gt; method of your strategy.&lt;/li&gt;
&lt;li&gt;Mismatched names won’t cause errors, but the indicators won’t appear on the chart.&lt;/li&gt;
&lt;li&gt;Indicators must be defined in &lt;code&gt;populate_indicators()&lt;/code&gt; to take effect.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💾 4. Exporting to HTML / PNG
&lt;/h2&gt;

&lt;p&gt;By default, the output is an HTML file. To specify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--exportfilename&lt;/span&gt; user_data/plot/myplot.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To export as PNG (static image):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--exportfilename&lt;/span&gt; user_data/plot/myplot.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Note: Exporting to PNG requires additional tools like Puppeteer or headless Chrome. Beginners should stick to HTML format.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🐳 5. Running in a Docker Environment
&lt;/h2&gt;

&lt;p&gt;To use the command in Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade plot-dataframe &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /quants/freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230201
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure the &lt;code&gt;/quants/freqtrade/user_data&lt;/code&gt; directory is correctly mounted in &lt;code&gt;docker-compose.yml&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ 6. Usage Tips
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Verify strategy logic&lt;/td&gt;
&lt;td&gt;Check if buy/sell points are correctly positioned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debugging&lt;/td&gt;
&lt;td&gt;Compare indicators with signal logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strategy sharing&lt;/td&gt;
&lt;td&gt;Export charts as HTML for easy presentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evaluate indicator performance&lt;/td&gt;
&lt;td&gt;Plot multiple indicators to check for redundancy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;plot-dataframe&lt;/code&gt; is a powerful visualization tool in Freqtrade, ideal for debugging complex strategies and validating buy/sell logic.&lt;/p&gt;

&lt;h4&gt;
  
  
  Recommended Workflow:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run Backtest:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframe&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230101
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generate Chart:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade plot-dataframe &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20250601-20250626
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Analyze Chart:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Are buy signals triggered too early or too late?&lt;/li&gt;
&lt;li&gt;Are there frequent false signals?&lt;/li&gt;
&lt;li&gt;Are the indicators effective?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Master &lt;code&gt;plot-dataframe&lt;/code&gt; to optimize strategies efficiently with data-driven insights!&lt;/p&gt;

</description>
      <category>freqtrade</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>btc</category>
    </item>
    <item>
      <title>Chapter 5: How to Optimize Strategy Parameters? Freqtrade Hyperopt Quick Start</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Fri, 24 Oct 2025 01:55:19 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-5-how-to-optimize-strategy-parameters-freqtrade-hyperopt-quick-start-i6k</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-5-how-to-optimize-strategy-parameters-freqtrade-hyperopt-quick-start-i6k</guid>
      <description>&lt;h1&gt;
  
  
  📘 Chapter 5: How to Optimize Strategy Parameters? Freqtrade Hyperopt Quick Start
&lt;/h1&gt;

&lt;p&gt;In strategy development, besides building the buy and sell logic, &lt;strong&gt;parameter settings often determine the final return-to-risk ratio.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Freqtrade provides a powerful &lt;code&gt;hyperopt&lt;/code&gt; feature for &lt;strong&gt;automatically searching for the optimal parameter combinations&lt;/strong&gt;, greatly accelerating the strategy iteration speed.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 1. What is Hyperopt? What is it suitable for?
&lt;/h2&gt;

&lt;p&gt;Hyperopt is an &lt;strong&gt;automatic parameter optimization tool&lt;/strong&gt; that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Help you find the best threshold for RSI?&lt;/li&gt;
&lt;li&gt;Test which stop-profit/stop-loss level is optimal?&lt;/li&gt;
&lt;li&gt;Automatically run multiple parameter combinations → Compare results → Find the best configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Suitable for the following scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strategies with multiple numerical parameters (e.g., RSI, MACD, Bollinger Band width, stop-loss ratio)&lt;/li&gt;
&lt;li&gt;Want to find the best combination in a specific historical period&lt;/li&gt;
&lt;li&gt;Don't want to manually tune parameters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4pb21oylnulsy9rwfm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4pb21oylnulsy9rwfm9.png" width="303" height="166"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to learn quantitative trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Here you can find &lt;strong&gt;Freqtrade basics tutorials&lt;/strong&gt;, &lt;strong&gt;strategy practice&lt;/strong&gt;, &lt;strong&gt;indicator analysis&lt;/strong&gt;, and other rich content to help you master quantitative trading skills effortlessly!&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 2. Basic Commands and Parameter Explanation
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade hyperopt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--hyperopt-loss&lt;/span&gt; SharpeHyperOptLoss &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230701 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--epochs&lt;/span&gt; 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Config file path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--strategy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy class name to optimize&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--hyperopt-loss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Optimization objective function (see below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timerange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Backtest time range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--epochs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of iterations, more = more precise but more time-consuming&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--spaces&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Which parameter spaces to optimize (default: buy, sell)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  🎯 3. Common Optimization Objectives (Hyperopt Loss Functions)
&lt;/h2&gt;

&lt;p&gt;Different objective functions represent different optimization directions. Common ones include:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Function Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Suitable Scenarios&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SharpeHyperOptLoss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Optimize Sharpe Ratio&lt;/td&gt;
&lt;td&gt;Balance of return and volatility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SortinoHyperOptLoss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Optimize Sortino Ratio&lt;/td&gt;
&lt;td&gt;Focus on downside risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProfitHyperOptLoss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maximize total profit&lt;/td&gt;
&lt;td&gt;Aggressive return-driven strategies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CalmarHyperOptLoss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Return / Max Drawdown ratio&lt;/td&gt;
&lt;td&gt;Risk control preference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TrailingBuyHyperOptLoss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specifically for trailing buy strategies&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  🧩 4. How to Define Hyperparameters?
&lt;/h2&gt;

&lt;p&gt;Use the &lt;code&gt;@parameter&lt;/code&gt; decorator in the strategy class, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;freqtrade.strategy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;IStrategy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IntParameter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DecimalParameter&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyStrategy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IStrategy&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;rsi_period&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;IntParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;buy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;stoploss_value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;DecimalParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sell&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Freqtrade will automatically search for the best combination within the specified range.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️ 5. Common Hyperopt Pitfalls (Must Avoid)
&lt;/h2&gt;

&lt;h4&gt;
  
  
  ❗ Overfitting Historical Data
&lt;/h4&gt;

&lt;p&gt;Backtest period too short or single sample may lead to strategies that only perform well in specific market conditions but poorly in live trading.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Suggestions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use longer time periods, such as more than 6 months&lt;/li&gt;
&lt;li&gt;Run Hyperopt multiple times → Check if parameters converge&lt;/li&gt;
&lt;li&gt;Reserve some data for forward testing&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  ❗ Objective Function Bias
&lt;/h4&gt;

&lt;p&gt;Choosing unreasonable optimization objectives (e.g., only optimizing profit) while ignoring risk can lead to extreme strategies.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Suggestions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generally use Sharpe or Sortino as the first choice&lt;/li&gt;
&lt;li&gt;If risk tolerance is low, recommend CalmarHyperOptLoss&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  ❗ Search Space Too Large / Parameter Conflicts
&lt;/h4&gt;

&lt;p&gt;Too many parameter combinations will greatly extend search time and may even cause conflicts.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Suggestions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep the number of parameters between 3-6&lt;/li&gt;
&lt;li&gt;Use effective ranges as much as possible, e.g., RSI doesn't need to search from 1-100&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  🛠️ 6. Running Example (Including Docker)
&lt;/h2&gt;

&lt;p&gt;Strategy file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;freqtrade.strategy.interface&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;IStrategy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;freqtrade.strategy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;IntParameter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DecimalParameter&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;talib.abstract&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySimpleStrategy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IStrategy&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Backtest default timeframe
&lt;/span&gt;    &lt;span class="n"&gt;timeframe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;15m&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

    &lt;span class="c1"&gt;# Parameter spaces allowed (for hyperopt optimization)
&lt;/span&gt;    &lt;span class="n"&gt;rsi_buy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;IntParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;buy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;stoploss_value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;DecimalParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sell&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Default stoploss (for dry-run or live trading)
&lt;/span&gt;    &lt;span class="n"&gt;stoploss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;populate_indicators&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# Add RSI indicator
&lt;/span&gt;        &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rsi&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;RSI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeperiod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;populate_buy_trend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# Buy when RSI is below specified threshold
&lt;/span&gt;        &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rsi&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rsi_buy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;buy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;populate_sell_trend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# No explicit sell signal (exit via take-profit/stop-loss)
&lt;/span&gt;        &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;sell&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Local run:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade hyperopt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MySimpleStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--hyperopt-loss&lt;/span&gt; SharpeHyperOptLoss &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230630 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--epochs&lt;/span&gt; 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Docker run:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade hyperopt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /quants/freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--hyperopt-loss&lt;/span&gt; SharpeHyperOptLoss &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230630
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  🎯 Current Strategy Tunable Parameters
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rsi_buy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IntParameter(10, 50)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adjust RSI buy threshold&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stoploss_value&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DecimalParameter(-0.1, -0.01)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Control stop-loss ratio&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  📌 Tips
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;To optimize a parameter, must use &lt;code&gt;.value&lt;/code&gt; to get the actual value&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;space="buy"&lt;/code&gt;, &lt;code&gt;space="sell"&lt;/code&gt; controls the parameter range for hyperopt&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;default=...&lt;/code&gt; is your manually set default value&lt;/li&gt;
&lt;li&gt;Before optimization, it's recommended to run backtesting first to confirm the strategy logic is working properly&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  📊 7. Hyperopt Supported Evaluation Metrics
&lt;/h2&gt;

&lt;p&gt;You can view all available Loss functions in &lt;code&gt;freqtrade/optimize/losses.py&lt;/code&gt;. Common metrics include:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Sharpe Ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Annualized return / Annualized volatility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Sortino Ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Annualized return / Annualized downside volatility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Calmar Ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Annualized return / Maximum drawdown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Total Profit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total profit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Drawdown&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maximum drawdown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Avg Trade Duration&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Average trade duration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You can also customize evaluation functions to extend optimization objectives that best suit your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ 8. Recommended Practice Workflow
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Use new-strategy to write strategy and define parameters
2. Run backtesting to initially verify strategy rationality
3. Use hyperopt for automatic parameter tuning
4. Replace optimal parameters into the strategy
5. Run backtest again for verification
6. Visualize analysis results → Decide whether to go live
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;Freqtrade's Hyperopt system provides strong support for strategy parameter tuning, but the premise is that you can reasonably set the parameter space, objective function, and data period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The most important thing is not finding the "highest profit" parameters, but finding configurations that are stable, risk-resistant, and have strong generalization ability!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>freqtrade</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>btc</category>
    </item>
    <item>
      <title>Chapter 4: "How to Test Strategies Reliably? Freqtrade Backtesting Command Full Guide"</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Wed, 22 Oct 2025 11:46:54 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-4-how-to-test-strategies-reliably-freqtrade-backtesting-command-full-guide-1fcg</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/chapter-4-how-to-test-strategies-reliably-freqtrade-backtesting-command-full-guide-1fcg</guid>
      <description>&lt;h1&gt;
  
  
  📘 Chapter 4: "How to Test Strategies Reliably? Freqtrade Backtesting Command Full Guide"
&lt;/h1&gt;

&lt;p&gt;Backtesting is &lt;strong&gt;one of the most critical steps&lt;/strong&gt; in strategy development.&lt;br&gt;&lt;br&gt;
By simulating strategies on historical market data, you can effectively evaluate their performance and determine if they are worth deploying to live trading.&lt;/p&gt;

&lt;p&gt;This article provides a detailed guide to Freqtrade's &lt;code&gt;backtesting&lt;/code&gt; command, including usage, common parameters, data handling, result analysis, multi-process acceleration, Docker usage, and more.&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;strategy case studies&lt;/strong&gt;, &lt;strong&gt;indicator analysis&lt;/strong&gt;, and more to help you master quantitative trading skills effortlessly!&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5blzqnjcih9wac3l9uql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5blzqnjcih9wac3l9uql.png" width="322" height="156"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🔁 1. What is Backtesting? Why is it Important?
&lt;/h2&gt;

&lt;p&gt;Backtesting is the process of running your strategy through &lt;strong&gt;historical data to simulate "hypothetical trades"&lt;/strong&gt;, with the goal of understanding how it would have performed in past market conditions.&lt;/p&gt;

&lt;p&gt;A quality backtest can answer these key questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the profit-loss ratio reasonable?&lt;/li&gt;
&lt;li&gt;Is the win rate sufficiently stable?&lt;/li&gt;
&lt;li&gt;Is there overfitting? (May fail in the future)&lt;/li&gt;
&lt;li&gt;Which parameters have the most significant impact on returns?&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🚀 2. Basic Backtesting Command Structure
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframe&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230701
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Parameter Breakdown:
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specify config file path (contains pairs, timeframes, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--strategy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy class name to use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timeframe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Timeframe (e.g., 15m, 1h)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timerange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Backtest period (format: YYYYMMDD-YYYYMMDD)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Optional Parameters:&lt;br&gt;
| Parameter          | Description              |&lt;br&gt;
|-------------------|--------------------------|&lt;br&gt;
| &lt;code&gt;--export&lt;/code&gt;        | Export detailed trades to CSV |&lt;br&gt;
| &lt;code&gt;--stats-file&lt;/code&gt;    | Output results stats to JSON file |&lt;br&gt;
| &lt;code&gt;--processes&lt;/code&gt;     | Launch multiple processes for parallel backtesting (improves performance) |&lt;/p&gt;
&lt;h2&gt;
  
  
  💡 3. Pre-Backtesting Checklist
&lt;/h2&gt;

&lt;p&gt;Backtesting isn't just about running a command. Ensure these items are ready:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;✅ Historical data for the corresponding timeframe has been downloaded:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 15m &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230701
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;✅ Strategy file is placed in &lt;code&gt;user_data/strategies/&lt;/code&gt; directory with correct class name.&lt;/li&gt;
&lt;li&gt;✅ &lt;code&gt;config.json&lt;/code&gt; settings are correct, including:

&lt;ul&gt;
&lt;li&gt;Correct trading pairs&lt;/li&gt;
&lt;li&gt;Correct exchange settings&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stake_currency&lt;/code&gt; set to USDT, BTC, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  🧪 4. Backtesting Results Output Explanation
&lt;/h2&gt;

&lt;p&gt;After backtesting completes, Freqtrade outputs logs containing the following information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Total profit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strategy's final total return (net value)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Total trades&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total number of trades during backtest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Win / loss ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Win rate (profitable/loss trades ratio)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Sharpe Ratio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Risk-adjusted return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Avg trade duration&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Average holding time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Drawdown&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maximum drawdown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Profit factor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Profit factor (profits/losses)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  🖼️ 5. Graphical Backtest Display (backtesting-show)
&lt;/h2&gt;

&lt;p&gt;Freqtrade provides a visualization tool &lt;code&gt;backtesting-show&lt;/code&gt; to view entry/exit points and strategy behavior:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting-show &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📍 Displays profit curves, trade markers, position information, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 6. Common Backtesting Issues and Solutions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Issue&lt;/th&gt;
&lt;th&gt;Possible Causes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No trades in backtest&lt;/td&gt;
&lt;td&gt;Strategy signal conditions too strict, or missing data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data not available&lt;/td&gt;
&lt;td&gt;Data not downloaded or timerange not covered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indicators is NaN&lt;/td&gt;
&lt;td&gt;Indicator parameters incorrect / incompatible with timeframe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Suspected overfitting&lt;/td&gt;
&lt;td&gt;Extremely high backtest returns but live losses; use forward testing to verify&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🧠 7. Multi-Process Backtesting Acceleration (--processes)
&lt;/h2&gt;

&lt;p&gt;For multiple pairs or complex strategies, use the &lt;code&gt;--processes&lt;/code&gt; parameter to improve backtesting efficiency:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--processes&lt;/span&gt; 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧪 Generally set to half to all of your CPU cores. For an 8-core CPU, 4-8 processes work well.&lt;/p&gt;

&lt;h2&gt;
  
  
  🐳 8. Backtesting Commands in Docker Environment
&lt;/h2&gt;

&lt;p&gt;If running Freqtrade in Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade backtesting &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /quants/freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframe&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230701
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure &lt;code&gt;user_data/&lt;/code&gt; is mounted to &lt;code&gt;/quants/freqtrade/user_data/&lt;/code&gt; inside the container.&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 9. Exporting Backtest Results
&lt;/h2&gt;

&lt;p&gt;To save detailed trade information, add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--export&lt;/span&gt; user_data/backtest_result.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To export strategy performance results as JSON:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--stats-file&lt;/span&gt; user_data/backtest_stats.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgherny2t0r1klmaths6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgherny2t0r1klmaths6.png" width="325" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ 10. Recommended Analysis Dimensions
&lt;/h2&gt;

&lt;p&gt;After backtesting, focus on these key metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cumulative return (&lt;code&gt;Total profit&lt;/code&gt;): Core indicator&lt;/li&gt;
&lt;li&gt;Maximum drawdown (&lt;code&gt;Drawdown&lt;/code&gt;): Risk exposure&lt;/li&gt;
&lt;li&gt;Win rate / Profit-loss ratio: Stability assessment&lt;/li&gt;
&lt;li&gt;Average profit per trade: Value per trade&lt;/li&gt;
&lt;li&gt;Profit factor: Whether trading is worthwhile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also use charting tools for analysis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade plot-dataframe &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230101
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;Freqtrade's backtesting system is powerful and flexible, perfect for building a complete strategy research and validation workflow.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Download historical data&lt;/td&gt;
&lt;td&gt;&lt;code&gt;download-data&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Write strategy class&lt;/td&gt;
&lt;td&gt;&lt;code&gt;new-strategy&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Run backtest&lt;/td&gt;
&lt;td&gt;&lt;code&gt;backtesting&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graphical display&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;backtesting-show&lt;/code&gt; / &lt;code&gt;plot-dataframe&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance acceleration&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;--processes&lt;/code&gt; multi-process support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Containerized usage&lt;/td&gt;
&lt;td&gt;Docker commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>freqtrade</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>btc</category>
    </item>
    <item>
      <title>Article 3: 🛠️ Starting from Scratch! A Detailed Guide to the Freqtrade `download-data` Command and Docker Usage</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Tue, 21 Oct 2025 08:04:00 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/article-3-starting-from-scratch-a-detailed-guide-to-the-freqtrade-download-data-command-and-2b8d</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/article-3-starting-from-scratch-a-detailed-guide-to-the-freqtrade-download-data-command-and-2b8d</guid>
      <description>&lt;h1&gt;
  
  
  Article 3: 🛠️ Starting from Scratch! A Detailed Guide to the Freqtrade &lt;code&gt;download-data&lt;/code&gt; Command and Docker Usage
&lt;/h1&gt;

&lt;p&gt;In Freqtrade, &lt;strong&gt;K-line data is the foundation for backtesting, optimization, and trading.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Whether you're a strategy developer or a researcher, mastering the &lt;code&gt;download-data&lt;/code&gt; command is the first step toward quantitative trading.&lt;/p&gt;

&lt;p&gt;This article explains how to use the &lt;code&gt;freqtrade download-data&lt;/code&gt; command to download historical market data, covering common parameters, Docker usage, download recommendations, and supported exchanges.&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Find &lt;strong&gt;Freqtrade tutorials&lt;/strong&gt;, &lt;strong&gt;strategy guides&lt;/strong&gt;, &lt;strong&gt;indicator analysis&lt;/strong&gt;, and more to help you master quantitative trading with ease!&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb4bgni2bma8vvjavdqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feb4bgni2bma8vvjavdqd.png" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  📥 1. Basic Command Format
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Download data for a specific trading pair:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exchange&lt;/span&gt; binance &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--pairs&lt;/span&gt; BTC/USDT &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 1h &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230701
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Download using a &lt;code&gt;config.json&lt;/code&gt; file:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20200101-20250626
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Common Parameters Explained:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--exchange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specify the exchange (e.g., binance, bybit, kucoin)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--pairs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specify trading pairs, e.g., &lt;code&gt;BTC/USDT&lt;/code&gt;, separated by commas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timeframes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Timeframes to download, e.g., &lt;code&gt;1m&lt;/code&gt;, &lt;code&gt;15m&lt;/code&gt;, &lt;code&gt;1h&lt;/code&gt;, &lt;code&gt;1d&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--timerange&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Data time range, format: &lt;code&gt;YYYYMMDD-YYYYMMDD&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--days&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download data for the last N days (alternative to &lt;code&gt;--timerange&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Use an existing config file to specify the exchange&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  📊 2. Downloading Multiple Pairs / Timeframes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Multiple trading pairs (e.g., BTC, ETH, BNB):
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--pairs&lt;/span&gt; BTC/USDT,ETH/USDT,BNB/USDT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Multiple timeframes (e.g., 15m and 1h):
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--timeframes&lt;/span&gt; 15m,1h
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Best Practice&lt;/strong&gt;: Download each timeframe separately for easier management:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 15m
freqtrade download-data &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 1h
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  🐳 3. Using Docker to Download Data
&lt;/h2&gt;

&lt;p&gt;If you're using Docker, the command is slightly different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade download-data &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /quants/freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230701
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure the &lt;code&gt;user_data/&lt;/code&gt; directory is properly mounted in your &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./user_data:/quants/freqtrade/user_data"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📂 4. Where is the Data Stored?
&lt;/h2&gt;

&lt;p&gt;Downloaded K-line data is stored in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user_data/data/&amp;lt;exchange&amp;gt;/&amp;lt;pair&amp;gt;&amp;lt;timeframe&amp;gt;-&amp;lt;type&amp;gt;.feather
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user_data/data/binance/BTC_USDT_USDT-5m-futures.feather
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Freqtrade automatically detects and uses this data for backtesting and optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 5. Which Exchanges Does Freqtrade Support?
&lt;/h2&gt;

&lt;p&gt;Run the following command to view currently supported exchanges:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade list-exchanges
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commonly supported exchanges (may vary by version):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Binance (spot and futures)&lt;/li&gt;
&lt;li&gt;Bybit&lt;/li&gt;
&lt;li&gt;KuCoin&lt;/li&gt;
&lt;li&gt;Huobi&lt;/li&gt;
&lt;li&gt;Kraken&lt;/li&gt;
&lt;li&gt;OKX&lt;/li&gt;
&lt;li&gt;Coinbase Pro&lt;/li&gt;
&lt;li&gt;Gate, etc.
&amp;gt; ⚠️ Some exchanges require an API key to download historical data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ 6. Tips and Recommendations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time Range&lt;/td&gt;
&lt;td&gt;Download at least 3–6 months of data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timeframe&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;1h&lt;/code&gt; or &lt;code&gt;15m&lt;/code&gt; for strategy development; &lt;code&gt;1m&lt;/code&gt; for high-frequency strategies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Longer Data = Better?&lt;/td&gt;
&lt;td&gt;Very old data may mislead due to changing market conditions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage Space&lt;/td&gt;
&lt;td&gt;1m data is large; ensure sufficient disk space&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📌 7. Summary
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;freqtrade download-data&lt;/code&gt; command is the starting point for all strategy development.&lt;br&gt;&lt;br&gt;
This article covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parameter usage: &lt;code&gt;exchange&lt;/code&gt;, &lt;code&gt;pairs&lt;/code&gt;, &lt;code&gt;timeframes&lt;/code&gt;, &lt;code&gt;timerange&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Techniques for downloading multiple pairs and timeframes&lt;/li&gt;
&lt;li&gt;Downloading data in a Docker environment&lt;/li&gt;
&lt;li&gt;Data storage paths and supported exchanges&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Article 2: Start Live Trading or Paper Trading? Freqtrade trade Command Explained</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Sun, 19 Oct 2025 06:42:24 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/article-2-start-live-trading-or-paper-trading-freqtrade-trade-command-explained-586k</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/article-2-start-live-trading-or-paper-trading-freqtrade-trade-command-explained-586k</guid>
      <description>&lt;h1&gt;
  
  
  Article 2: 📘 Start Live Trading or Paper Trading? Freqtrade trade Command Explained
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;freqtrade trade&lt;/code&gt; command is the core command for starting live or simulated trading bots, and it's the key step for implementing automated trading.&lt;/p&gt;

&lt;p&gt;This article will guide you through understanding the usage, common parameters, configuration tips, and Docker-based startup methods of the &lt;code&gt;trade&lt;/code&gt; command. It's suitable for those preparing for live deployment or who have just completed strategy backtesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Click to visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Here you'll find &lt;strong&gt;Freqtrade Basics Tutorials&lt;/strong&gt;, &lt;strong&gt;Strategy Practice&lt;/strong&gt;, &lt;strong&gt;Indicator Analysis&lt;/strong&gt;, and more rich content to help you easily master quantitative trading skills!&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 I. Basic Syntax
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Parameter Explanation&lt;br&gt;
| Parameter        | Description                      |&lt;br&gt;
| ---------------- | ------------------------------- |&lt;br&gt;
| &lt;code&gt;--config&lt;/code&gt;       | Specify the configuration file path |&lt;br&gt;
| &lt;code&gt;--strategy&lt;/code&gt;     | Start with the specified strategy class name |&lt;br&gt;
| &lt;code&gt;--dry-run&lt;/code&gt;      | Enable dry-run (simulated trading) mode, &lt;strong&gt;recommended to enable by default&lt;/strong&gt; |&lt;br&gt;
| &lt;code&gt;--logfile&lt;/code&gt;      | Specify the log output location   |&lt;br&gt;
| &lt;code&gt;--db-url&lt;/code&gt;       | Specify the database file or connection (to record trading history) |&lt;br&gt;
| &lt;code&gt;--userdir&lt;/code&gt;      | Set the user directory path (default &lt;code&gt;user_data/&lt;/code&gt;) |&lt;/p&gt;
&lt;h2&gt;
  
  
  🧪 II. What is Dry-run Mode?
&lt;/h2&gt;

&lt;p&gt;Dry-run mode = No actual orders are placed; only simulated orders and logs are recorded.&lt;/p&gt;

&lt;p&gt;Applicable to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Strategy validation phase (ensure logic is error-free)&lt;/li&gt;
&lt;li&gt;✅ Testing run before live deployment&lt;/li&gt;
&lt;li&gt;✅ Avoid real losses due to parameter configuration errors
Once ready for live deployment, disable this parameter:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;⚠️ It is recommended to run dry-run tests for at least 7 days before going live with real trading!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  🧩 III. Support for Multi-Strategy Execution
&lt;/h3&gt;

&lt;p&gt;Multiple strategies or strategy paths can be loaded via command-line parameters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy-path&lt;/span&gt; user_data/strategies &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategyA MyStrategyB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or combine multiple config files (suitable for multi-account / multi-platform):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="nt"&gt;-c&lt;/span&gt; spot_config.json &lt;span class="nt"&gt;-c&lt;/span&gt; futures_config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notes for multi-strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All strategies must be importable in the specified directory&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;--strategy-path&lt;/code&gt; to specify additional paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4b74lskzadwbvuh36d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4b74lskzadwbvuh36d4.png" width="317" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🐳 IV. Starting the trade Command with Docker
&lt;/h2&gt;

&lt;p&gt;Running in a Docker container is safer and easier to deploy. It's recommended to use docker-compose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sample docker-compose.yml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;freqtrade&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;freqtradeorg/freqtrade:stable&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./user_data:/freqtrade/user_data&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1:8080:8080"&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;trade&lt;/span&gt;
      &lt;span class="s"&gt;--config /freqtrade/user_data/config.json&lt;/span&gt;
      &lt;span class="s"&gt;--strategy MyStrategy&lt;/span&gt;
      &lt;span class="s"&gt;--logfile /freqtrade/user_data/logs/freqtrade.log&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After starting, access the Web UI to view trading status in real-time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;http://localhost:&lt;/span&gt;&lt;span class="mi"&gt;8080&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧷 V. Some Recommended Configuration Items
&lt;/h2&gt;

&lt;p&gt;In config.json, it is recommended to enable the following configuration items to ensure safety:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dry_run_wallet"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dry_run"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;Enable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;dry&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;mode&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_open_trades"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stake_currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tradable_balance_ratio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timeframe"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"15m"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is also recommended to configure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exchange → key/secret: Real trading requires providing actual API keys&lt;/li&gt;
&lt;li&gt;logging → logfile: Log output&lt;/li&gt;
&lt;li&gt;db_url: Connect to SQLite/Postgres etc. to store trading records&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✅ VI. Live Trading Startup Checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Checklist Item&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Has the strategy passed backtesting?&lt;/td&gt;
&lt;td&gt;✅ At least cover 6 months or more of history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Has it been run in Dry-run mode?&lt;/td&gt;
&lt;td&gt;✅ Simulated run for 7 days or more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is the config.json configuration complete?&lt;/td&gt;
&lt;td&gt;✅ Includes risk control, coins, leverage, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Has the API Key been set?&lt;/td&gt;
&lt;td&gt;✅ And recommend setting IP whitelist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Have logs and error outputs been monitored?&lt;/td&gt;
&lt;td&gt;✅ Use &lt;code&gt;--logfile&lt;/code&gt; to save records&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;The trade command is the "final step" command in Freqtrade and the link closest to live trading profits.&lt;br&gt;
This article covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic syntax and parameters of the trade command&lt;/li&gt;
&lt;li&gt;Advantages and recommended practices of Dry-run&lt;/li&gt;
&lt;li&gt;Ways to combine multi-strategy / multi-config&lt;/li&gt;
&lt;li&gt;Full process of starting live trading with Docker
After mastering these techniques, you can transition from a strategy developer to a true automated trading live deployment expert.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web3</category>
      <category>btc</category>
      <category>ethereum</category>
      <category>freqtrade</category>
    </item>
    <item>
      <title>Freqtrade Comprehensive Command Manual! Master Quantitative Trading from Beginner to Live Trading in One Article</title>
      <dc:creator>itrade icu</dc:creator>
      <pubDate>Fri, 17 Oct 2025 08:12:29 +0000</pubDate>
      <link>https://dev.to/itrade_icu_ae8778833e3e8c/freqtrade-comprehensive-command-manual-master-quantitative-trading-from-beginner-to-live-trading-cpg</link>
      <guid>https://dev.to/itrade_icu_ae8778833e3e8c/freqtrade-comprehensive-command-manual-master-quantitative-trading-from-beginner-to-live-trading-cpg</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Freqtrade Comprehensive Command Manual! Master Quantitative Trading from Beginner to Live Trading in One Article
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Master the key commands for a quantitative trading bot from beginner to live trading in one article!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Freqtrade is a powerful and open-source cryptocurrency automated trading framework that supports strategy development, historical backtesting, parameter optimization, data analysis, and live trading.&lt;br&gt;&lt;br&gt;
However, for beginners, &lt;strong&gt;the functionality and usage of various commands may not be intuitive&lt;/strong&gt;. This article categorizes, explains, and provides practical examples of all core Freqtrade commands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrlfkjatdz957z14hc9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrlfkjatdz957z14hc9j.png" width="315" height="160"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  🚀 Want to Learn Quantitative Trading?
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Visit: &lt;a href="https://www.itrade.icu/" rel="noopener noreferrer"&gt;https://www.itrade.icu&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Here you'll find &lt;strong&gt;Freqtrade beginner tutorials&lt;/strong&gt;, &lt;strong&gt;strategy walkthroughs&lt;/strong&gt;, &lt;strong&gt;indicator explanations&lt;/strong&gt;, and more to help you easily master quantitative trading skills!&lt;/p&gt;
&lt;h2&gt;
  
  
  🎯 Command Structure Overview
&lt;/h2&gt;

&lt;p&gt;Freqtrade’s command-line tool uses &lt;code&gt;freqtrade&lt;/code&gt; as the main command, with different subcommands to perform various tasks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade &amp;lt;subcommand&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;options]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use &lt;code&gt;freqtrade -h&lt;/code&gt; to view the main command help or &lt;code&gt;freqtrade &amp;lt;subcommand&amp;gt; -h&lt;/code&gt; to see detailed parameters for a specific subcommand.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Command Categories Quick Reference Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Command Examples&lt;/th&gt;
&lt;th&gt;Purpose Overview&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data Processing&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;download-data&lt;/code&gt;, &lt;code&gt;convert-data&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Download/process historical market data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strategy Development &amp;amp; Testing&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;new-strategy&lt;/code&gt;, &lt;code&gt;backtesting&lt;/code&gt;, &lt;code&gt;hyperopt&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Create and test trading strategies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Live Trading&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;trade&lt;/code&gt;, &lt;code&gt;webserver&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Start the bot for trading or dry-run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Configuration&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;new-config&lt;/code&gt;, &lt;code&gt;create-userdir&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Initialize configuration and project structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query &amp;amp; Diagnostics&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;show-trades&lt;/code&gt;, &lt;code&gt;list-data&lt;/code&gt;, &lt;code&gt;list-pairs&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Query strategies, data, and trade records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;&lt;code&gt;plot-dataframe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Visualize strategy behavior with charts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🚀 1. Live and Simulated Trading Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;trade&lt;/code&gt; - Start the Trading Bot (Live or Dry-run)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--dry-run&lt;/code&gt;: Simulate trading without placing real orders (recommended by default)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--db-url&lt;/code&gt;: Specify the database (for storing trade history)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--logfile&lt;/code&gt;: Specify the log output location
&amp;gt; ⚠️ Ensure the strategy has been backtested and &lt;code&gt;config.json&lt;/code&gt; is correctly configured before starting!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📥 2. Data Download and Processing Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;download-data&lt;/code&gt; - Download Historical Market Data
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--exchange&lt;/span&gt; binance &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--pairs&lt;/span&gt; BTC/USDT &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframes&lt;/span&gt; 1h &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230301
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--exchange&lt;/code&gt;: Supports exchanges like Binance, Bybit, etc.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--pairs&lt;/code&gt;: Specify multiple trading pairs at once&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--timeframes&lt;/code&gt;: Download data for timeframes like 1m, 5m, 15m, 1h, 1d, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;convert-data&lt;/code&gt; - Convert Data Format (CSV → JSON)
&lt;/h3&gt;

&lt;p&gt;Convert external data sources (e.g., CCXT, Kaggle) into Freqtrade’s format.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 3. Strategy Development and Backtesting Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;new-strategy&lt;/code&gt; - Create a Strategy Template
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade new-strategy &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyNewStrategy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates a &lt;code&gt;.py&lt;/code&gt; file with structured comments in the &lt;code&gt;user_data/strategies/&lt;/code&gt; directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;backtesting&lt;/code&gt; - Backtest Strategy Performance
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade backtesting &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timeframe&lt;/span&gt; 15m &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20220101-20230101
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Simulates historical trades to evaluate strategy profitability&lt;/li&gt;
&lt;li&gt;Allows setting timeframes, trading pairs, etc.&lt;/li&gt;
&lt;li&gt;Use with &lt;code&gt;backtesting-show&lt;/code&gt; to view chart results&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;hyperopt&lt;/code&gt; - Parameter Optimization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade hyperopt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--hyperopt-loss&lt;/span&gt; SharpeHyperOptLoss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Automatically searches for optimal parameter combinations (e.g., RSI thresholds, take-profit ratios)&lt;/li&gt;
&lt;li&gt;Supports multiple evaluation metrics (Sharpe, Sortino, pure profit, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📊 4. Data Visualization Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;plot-dataframe&lt;/code&gt; - Visualize Strategy Behavior
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade plot-dataframe &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--timerange&lt;/span&gt; 20230101-20230201
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Generates HTML charts showing buy/sell points, candlesticks, indicators, etc.&lt;/li&gt;
&lt;li&gt;Charts are saved in the &lt;code&gt;user_data/plot/&lt;/code&gt; directory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚙️ 5. Configuration and Project Initialization Commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;new-config&lt;/code&gt; - Create Configuration File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade new-config &lt;span class="nt"&gt;--config&lt;/span&gt; user_data/config.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Includes trading pairs, strategy name, risk management, and capital management settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;create-userdir&lt;/code&gt; - Initialize Project Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade create-userdir &lt;span class="nt"&gt;--userdir&lt;/span&gt; user_data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates a standard directory structure (&lt;code&gt;logs&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, &lt;code&gt;strategies&lt;/code&gt;, &lt;code&gt;configs&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 6. Query and Utility Commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Functionality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;show-trades&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display trade records/backtest results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list-data&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View available local historical data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list-pairs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show supported trading pairs in the current config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list-exchanges&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List exchanges supported by Freqtrade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list-strategies&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;List strategies in the &lt;code&gt;strategies&lt;/code&gt; directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list-timeframes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show supported timeframe formats&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  ✅ Recommended Commands to Master for Daily Use:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;freqtrade download-data
freqtrade backtesting
freqtrade hyperopt
freqtrade trade
freqtrade show-trades
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🐳 Using Docker
&lt;/h2&gt;

&lt;p&gt;Most commands work in Docker as well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose run &lt;span class="nt"&gt;--rm&lt;/span&gt; freqtrade trade &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--config&lt;/span&gt; /freqtrade/user_data/config.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--strategy&lt;/span&gt; MyStrategy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure the &lt;code&gt;docker-compose.yml&lt;/code&gt; file has correctly mounted paths.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Summary
&lt;/h2&gt;

&lt;p&gt;Freqtrade’s command-line tools cover the entire quantitative trading workflow: from data to backtesting, optimization, and live trading, making it ideal for developers and strategy researchers.&lt;/p&gt;

&lt;p&gt;Recommended steps to get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download data (&lt;code&gt;download-data&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Write a strategy (&lt;code&gt;new-strategy&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Backtest and optimize (&lt;code&gt;backtesting&lt;/code&gt; + &lt;code&gt;hyperopt&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Run live trading (&lt;code&gt;trade&lt;/code&gt; + Web UI)&lt;/li&gt;
&lt;li&gt;Visualize analysis (&lt;code&gt;plot-dataframe&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Master these commands, and you’ll be able to independently manage a cryptocurrency automated trading system!&lt;/p&gt;

</description>
      <category>freqtrad</category>
      <category>python</category>
      <category>btc</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
