mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-15 04:33:57 +00:00
3483 lines
160 KiB
HTML
3483 lines
160 KiB
HTML
|
|
||
|
<!doctype html>
|
||
|
<html lang="en" class="no-js">
|
||
|
<head>
|
||
|
|
||
|
<meta charset="utf-8">
|
||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="prev" href="../bot-basics/">
|
||
|
|
||
|
|
||
|
<link rel="next" href="../strategy-customization/">
|
||
|
|
||
|
|
||
|
<link rel="icon" href="../images/logo.png">
|
||
|
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
|
||
|
|
||
|
|
||
|
|
||
|
<title>Configuration - Freqtrade</title>
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="../assets/stylesheets/main.3cba04c6.min.css">
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||
|
|
||
|
|
||
|
|
||
|
<link rel="stylesheet" href="../stylesheets/ft.extra.css">
|
||
|
|
||
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</head>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="tear">
|
||
|
|
||
|
|
||
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
|
<label class="md-overlay" for="__drawer"></label>
|
||
|
<div data-md-component="skip">
|
||
|
|
||
|
|
||
|
<a href="#configure-the-bot" class="md-skip">
|
||
|
Skip to content
|
||
|
</a>
|
||
|
|
||
|
</div>
|
||
|
<div data-md-component="announce">
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<header class="md-header md-header--shadow" data-md-component="header">
|
||
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
||
|
<a href=".." title="Freqtrade" class="md-header__button md-logo" aria-label="Freqtrade" data-md-component="logo">
|
||
|
|
||
|
<img src="../images/logo.png" alt="logo">
|
||
|
|
||
|
</a>
|
||
|
<label class="md-header__button md-icon" for="__drawer">
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
||
|
</label>
|
||
|
<div class="md-header__title" data-md-component="header-title">
|
||
|
<div class="md-header__ellipsis">
|
||
|
<div class="md-header__topic">
|
||
|
<span class="md-ellipsis">
|
||
|
Freqtrade
|
||
|
</span>
|
||
|
</div>
|
||
|
<div class="md-header__topic" data-md-component="header-topic">
|
||
|
<span class="md-ellipsis">
|
||
|
|
||
|
Configuration
|
||
|
|
||
|
</span>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<label class="md-header__button md-icon" for="__search">
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
|
</label>
|
||
|
<div class="md-search" data-md-component="search" role="dialog">
|
||
|
<label class="md-search__overlay" for="__search"></label>
|
||
|
<div class="md-search__inner" role="search">
|
||
|
<form class="md-search__form" name="search">
|
||
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||
|
<label class="md-search__icon md-icon" for="__search">
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||
|
</label>
|
||
|
<nav class="md-search__options" aria-label="Search">
|
||
|
|
||
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||
|
</button>
|
||
|
</nav>
|
||
|
|
||
|
</form>
|
||
|
<div class="md-search__output">
|
||
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
||
|
<div class="md-search-result" data-md-component="search-result">
|
||
|
<div class="md-search-result__meta">
|
||
|
Initializing search
|
||
|
</div>
|
||
|
<ol class="md-search-result__list" role="presentation"></ol>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
</nav>
|
||
|
|
||
|
</header>
|
||
|
|
||
|
<div class="md-container" data-md-component="container">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<main class="md-main" data-md-component="main">
|
||
|
<div class="md-main__inner md-grid">
|
||
|
|
||
|
|
||
|
|
||
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||
|
<div class="md-sidebar__scrollwrap">
|
||
|
<div class="md-sidebar__inner">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
||
|
<label class="md-nav__title" for="__drawer">
|
||
|
<a href=".." title="Freqtrade" class="md-nav__button md-logo" aria-label="Freqtrade" data-md-component="logo">
|
||
|
|
||
|
<img src="../images/logo.png" alt="logo">
|
||
|
|
||
|
</a>
|
||
|
Freqtrade
|
||
|
</label>
|
||
|
|
||
|
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href=".." class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Home
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../docker_quickstart/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Quickstart with Docker
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item md-nav__item--nested">
|
||
|
|
||
|
|
||
|
|
||
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
||
|
|
||
|
|
||
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Installation
|
||
|
</span>
|
||
|
|
||
|
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
</label>
|
||
|
|
||
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||
|
<label class="md-nav__title" for="__nav_3">
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
Installation
|
||
|
</label>
|
||
|
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../installation/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Linux/MacOS/Raspberry
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../windows_installation/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Windows
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../bot-basics/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Freqtrade Basics
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item md-nav__item--active">
|
||
|
|
||
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Configuration
|
||
|
</span>
|
||
|
|
||
|
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
</label>
|
||
|
|
||
|
<a href="./" class="md-nav__link md-nav__link--active">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Configuration
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
|
||
|
|
||
|
|
||
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<label class="md-nav__title" for="__toc">
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
Table of contents
|
||
|
</label>
|
||
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#the-freqtrade-configuration-file" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
The Freqtrade configuration file
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#configuration-parameters" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Configuration parameters
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Configuration parameters">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#parameters-in-the-strategy" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Parameters in the strategy
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#configuring-amount-per-trade" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Configuring amount per trade
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Configuring amount per trade">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-balance" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available balance
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#amend-last-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Amend last stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#static-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Static stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#dynamic-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Dynamic stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-minimal_roi" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand minimal_roi
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-stoploss" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand stoploss
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-trailing-stoploss" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand trailing stoploss
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-initial_state" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand initial_state
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-forcebuy_enable" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand forcebuy_enable
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-process_throttle_secs" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand process_throttle_secs
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#ignoring-expired-candles" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Ignoring expired candles
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-order_types" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand order_types
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-order_time_in_force" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand order_time_in_force
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Exchange configuration">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sample-exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sample exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#advanced-freqtrade-exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Advanced Freqtrade Exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#what-values-can-be-used-for-fiat_display_currency" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
What values can be used for fiat_display_currency?
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#prices-used-for-orders" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Prices used for orders
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Prices used for orders">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Buy price">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#check-depth-of-market" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Check depth of market
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-side" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price side
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-with-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price with Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-without-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price without Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Sell price">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-side" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price side
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-with-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price with Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-without-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price without Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#market-order-pricing" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Market order pricing
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pairlists-and-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Pairlists and Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Pairlists and Pairlist Handlers">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pair-blacklist" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Pair blacklist
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Available Pairlist Handlers">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#static-pair-list" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Static Pair List
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#volume-pair-list" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Volume Pair List
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#agefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
AgeFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#performancefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PerformanceFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#precisionfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PrecisionFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pricefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PriceFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#shufflefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
ShuffleFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#spreadfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
SpreadFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#rangestabilityfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
RangeStabilityFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#full-example-of-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Full example of Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Protections">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#common-settings-to-all-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Common settings to all Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Common settings to all Protections">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#stoploss-guard" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Stoploss Guard
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#maxdrawdown" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
MaxDrawdown
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#low-profit-pairs" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Low Profit Pairs
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#cooldown-period" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Cooldown Period
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#full-example-of-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Full example of Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#switch-to-dry-run-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Switch to Dry-run mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Switch to Dry-run mode">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#considerations-for-dry-run" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Considerations for dry-run
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#switch-to-production-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Switch to production mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Switch to production mode">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#setup-your-exchange-account" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Setup your exchange account
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#to-switch-your-bot-in-production-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
To switch your bot in production mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#using-proxy-with-freqtrade" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Using proxy with Freqtrade
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#next-step" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Next step
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../strategy-customization/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Strategy Customization
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../stoploss/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Stoploss
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../bot-usage/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Start the bot
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item md-nav__item--nested">
|
||
|
|
||
|
|
||
|
|
||
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
|
||
|
|
||
|
|
||
|
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Control the bot
|
||
|
</span>
|
||
|
|
||
|
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
</label>
|
||
|
|
||
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
|
||
|
<label class="md-nav__title" for="__nav_9">
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
Control the bot
|
||
|
</label>
|
||
|
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../telegram-usage/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Telegram
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../webhook-config/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Web Hook
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../rest-api/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
REST API
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../data-download/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Data Downloading
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../backtesting/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Backtesting
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../hyperopt/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Hyperopt
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../edge/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Edge Positioning
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../plugins/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Plugins
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../utils/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Utility Subcommands
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../faq/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
FAQ
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item md-nav__item--nested">
|
||
|
|
||
|
|
||
|
|
||
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
|
||
|
|
||
|
|
||
|
<label class="md-nav__link" for="__nav_17" id="__nav_17_label" tabindex="0">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Data Analysis
|
||
|
</span>
|
||
|
|
||
|
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
</label>
|
||
|
|
||
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_17_label" aria-expanded="false">
|
||
|
<label class="md-nav__title" for="__nav_17">
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
Data Analysis
|
||
|
</label>
|
||
|
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../data-analysis/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Jupyter Notebooks
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../strategy_analysis_example/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Strategy analysis
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../plotting/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Plotting
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../sql_cheatsheet/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
SQL Cheatsheet
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../exchanges/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Exchange-specific Notes
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../advanced-setup/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Advanced Post-installation Tasks
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../strategy-advanced/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Advanced Strategy
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../advanced-hyperopt/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Advanced Hyperopt
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../sandbox-testing/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Sandbox Testing
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../updating/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Updating Freqtrade
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../deprecated/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Deprecated Features
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="../developer/" class="md-nav__link">
|
||
|
|
||
|
|
||
|
<span class="md-ellipsis">
|
||
|
Contributors Guide
|
||
|
</span>
|
||
|
|
||
|
|
||
|
</a>
|
||
|
</li>
|
||
|
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||
|
<div class="md-sidebar__scrollwrap">
|
||
|
<div class="md-sidebar__inner">
|
||
|
|
||
|
|
||
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<label class="md-nav__title" for="__toc">
|
||
|
<span class="md-nav__icon md-icon"></span>
|
||
|
Table of contents
|
||
|
</label>
|
||
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#the-freqtrade-configuration-file" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
The Freqtrade configuration file
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#configuration-parameters" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Configuration parameters
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Configuration parameters">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#parameters-in-the-strategy" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Parameters in the strategy
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#configuring-amount-per-trade" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Configuring amount per trade
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Configuring amount per trade">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-balance" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available balance
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#amend-last-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Amend last stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#static-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Static stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#dynamic-stake-amount" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Dynamic stake amount
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-minimal_roi" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand minimal_roi
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-stoploss" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand stoploss
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-trailing-stoploss" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand trailing stoploss
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-initial_state" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand initial_state
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-forcebuy_enable" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand forcebuy_enable
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-process_throttle_secs" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand process_throttle_secs
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#ignoring-expired-candles" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Ignoring expired candles
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-order_types" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand order_types
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#understand-order_time_in_force" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Understand order_time_in_force
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Exchange configuration">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sample-exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sample exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#advanced-freqtrade-exchange-configuration" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Advanced Freqtrade Exchange configuration
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#what-values-can-be-used-for-fiat_display_currency" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
What values can be used for fiat_display_currency?
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#prices-used-for-orders" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Prices used for orders
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Prices used for orders">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Buy price">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#check-depth-of-market" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Check depth of market
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-side" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price side
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-with-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price with Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#buy-price-without-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Buy price without Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Sell price">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-side" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price side
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-with-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price with Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#sell-price-without-orderbook-enabled" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Sell price without Orderbook enabled
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#market-order-pricing" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Market order pricing
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pairlists-and-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Pairlists and Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Pairlists and Pairlist Handlers">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pair-blacklist" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Pair blacklist
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Available Pairlist Handlers">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#static-pair-list" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Static Pair List
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#volume-pair-list" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Volume Pair List
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#agefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
AgeFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#performancefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PerformanceFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#precisionfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PrecisionFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#pricefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
PriceFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#shufflefilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
ShuffleFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#spreadfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
SpreadFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#rangestabilityfilter" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
RangeStabilityFilter
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#full-example-of-pairlist-handlers" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Full example of Pairlist Handlers
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Protections">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#available-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Available Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#common-settings-to-all-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Common settings to all Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Common settings to all Protections">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#stoploss-guard" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Stoploss Guard
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#maxdrawdown" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
MaxDrawdown
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#low-profit-pairs" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Low Profit Pairs
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#cooldown-period" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Cooldown Period
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#full-example-of-protections" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Full example of Protections
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#switch-to-dry-run-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Switch to Dry-run mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Switch to Dry-run mode">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#considerations-for-dry-run" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Considerations for dry-run
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#switch-to-production-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Switch to production mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
<nav class="md-nav" aria-label="Switch to production mode">
|
||
|
<ul class="md-nav__list">
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#setup-your-exchange-account" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Setup your exchange account
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#to-switch-your-bot-in-production-mode" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
To switch your bot in production mode
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#using-proxy-with-freqtrade" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Using proxy with Freqtrade
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
</nav>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
<li class="md-nav__item">
|
||
|
<a href="#next-step" class="md-nav__link">
|
||
|
<span class="md-ellipsis">
|
||
|
Next step
|
||
|
</span>
|
||
|
</a>
|
||
|
|
||
|
</li>
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
</nav>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
<div class="md-content" data-md-component="content">
|
||
|
<article class="md-content__inner md-typeset">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<h1 id="configure-the-bot">Configure the bot<a class="headerlink" href="#configure-the-bot" title="Permanent link">¶</a></h1>
|
||
|
<p>Freqtrade has many configurable features and possibilities.
|
||
|
By default, these settings are configured via the configuration file (see below).</p>
|
||
|
<h2 id="the-freqtrade-configuration-file">The Freqtrade configuration file<a class="headerlink" href="#the-freqtrade-configuration-file" title="Permanent link">¶</a></h2>
|
||
|
<p>The bot uses a set of configuration parameters during its operation that all together conform the bot configuration. It normally reads its configuration from a file (Freqtrade configuration file).</p>
|
||
|
<p>Per default, the bot loads the configuration from the <code>config.json</code> file, located in the current working directory.</p>
|
||
|
<p>You can specify a different configuration file used by the bot with the <code>-c/--config</code> command line option.</p>
|
||
|
<p>In some advanced use cases, multiple configuration files can be specified and used by the bot or the bot can read its configuration parameters from the process standard input stream.</p>
|
||
|
<p>If you used the <a href="../installation/#quick-start">Quick start</a> method for installing
|
||
|
the bot, the installation script should have already created the default configuration file (<code>config.json</code>) for you.</p>
|
||
|
<p>If default configuration file is not created we recommend you to use <code>freqtrade new-config --config config.json</code> to generate a basic configuration file.</p>
|
||
|
<p>The Freqtrade configuration file is to be written in the JSON format.</p>
|
||
|
<p>Additionally to the standard JSON syntax, you may use one-line <code>// ...</code> and multi-line <code>/* ... */</code> comments in your configuration files and trailing commas in the lists of parameters.</p>
|
||
|
<p>Do not worry if you are not familiar with JSON format -- simply open the configuration file with an editor of your choice, make some changes to the parameters you need, save your changes and, finally, restart the bot or, if it was previously stopped, run it again with the changes you made to the configuration. The bot validates syntax of the configuration file at startup and will warn you if you made any errors editing it, pointing out problematic lines.</p>
|
||
|
<h2 id="configuration-parameters">Configuration parameters<a class="headerlink" href="#configuration-parameters" title="Permanent link">¶</a></h2>
|
||
|
<p>The table below will list all configuration parameters available.</p>
|
||
|
<p>Freqtrade can also load many options via command line (CLI) arguments (check out the commands <code>--help</code> output for details).
|
||
|
The prevelance for all Options is as follows:</p>
|
||
|
<ul>
|
||
|
<li>CLI arguments override any other option</li>
|
||
|
<li>Configuration files are used in sequence (last file wins), and override Strategy configurations.</li>
|
||
|
<li>Strategy configurations are only used if they are not set via configuration or via command line arguments. These options are marked with <a href="#parameters-in-the-strategy">Strategy Override</a> in the below table.</li>
|
||
|
</ul>
|
||
|
<p>Mandatory parameters are marked as <strong>Required</strong>, which means that they are required to be set in one of the possible ways.</p>
|
||
|
<table>
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th>Parameter</th>
|
||
|
<th>Description</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td><code>max_open_trades</code></td>
|
||
|
<td><strong>Required.</strong> Number of open trades your bot is allowed to have. Only one open trade per pair is possible, so the length of your pairlist is another limitation which can apply. If -1 then it is ignored (i.e. potentially unlimited open trades, limited by the pairlist). <a href="#configuring-amount-per-trade">More information below</a>.<br> <strong>Datatype:</strong> Positive integer or -1.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>stake_currency</code></td>
|
||
|
<td><strong>Required.</strong> Crypto-currency used for trading. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>stake_amount</code></td>
|
||
|
<td><strong>Required.</strong> Amount of crypto-currency your bot will use for each trade. Set it to <code>"unlimited"</code> to allow the bot to use all available balance. <a href="#configuring-amount-per-trade">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Positive float or <code>"unlimited"</code>.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>tradable_balance_ratio</code></td>
|
||
|
<td>Ratio of the total account balance the bot is allowed to trade. <a href="#configuring-amount-per-trade">More information below</a>. <br><em>Defaults to <code>0.99</code> 99%).</em><br> <strong>Datatype:</strong> Positive float between <code>0.1</code> and <code>1.0</code>.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>amend_last_stake_amount</code></td>
|
||
|
<td>Use reduced last stake amount if necessary. <a href="#configuring-amount-per-trade">More information below</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>last_stake_amount_min_ratio</code></td>
|
||
|
<td>Defines minimum stake amount that has to be left and executed. Applies only to the last stake amount when it's amended to a reduced value (i.e. if <code>amend_last_stake_amount</code> is set to <code>true</code>). <a href="#configuring-amount-per-trade">More information below</a>. <br><em>Defaults to <code>0.5</code>.</em> <br> <strong>Datatype:</strong> Float (as ratio)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>amount_reserve_percent</code></td>
|
||
|
<td>Reserve some amount in min pair stake amount. The bot will reserve <code>amount_reserve_percent</code> + stoploss value when calculating min pair stake amount in order to avoid possible trade refusals. <br><em>Defaults to <code>0.05</code> (5%).</em> <br> <strong>Datatype:</strong> Positive Float as ratio.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>timeframe</code></td>
|
||
|
<td>The timeframe (former ticker interval) to use (e.g <code>1m</code>, <code>5m</code>, <code>15m</code>, <code>30m</code>, <code>1h</code> ...). <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>fiat_display_currency</code></td>
|
||
|
<td>Fiat currency used to show your profits. <a href="#what-values-can-be-used-for-fiat_display_currency">More information below</a>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>dry_run</code></td>
|
||
|
<td><strong>Required.</strong> Define if the bot must be in Dry Run or production mode. <br><em>Defaults to <code>true</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>dry_run_wallet</code></td>
|
||
|
<td>Define the starting amount in stake currency for the simulated wallet used by the bot running in the Dry Run mode.<br><em>Defaults to <code>1000</code>.</em> <br> <strong>Datatype:</strong> Float</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>cancel_open_orders_on_exit</code></td>
|
||
|
<td>Cancel open orders when the <code>/stop</code> RPC command is issued, <code>Ctrl+C</code> is pressed or the bot dies unexpectedly. When set to <code>true</code>, this allows you to use <code>/stop</code> to cancel unfilled and partially filled orders in the event of a market crash. It does not impact open positions. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>process_only_new_candles</code></td>
|
||
|
<td>Enable processing of indicators only when new candles arrive. If false each loop populates the indicators, this will mean the same candle is processed many times creating system load but can be useful of your strategy depends on tick data not only candle. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>minimal_roi</code></td>
|
||
|
<td><strong>Required.</strong> Set the threshold as ratio the bot will use to sell a trade. <a href="#understand-minimal_roi">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>stoploss</code></td>
|
||
|
<td><strong>Required.</strong> Value as ratio of the stoploss used by the bot. More details in the <a href="../stoploss/">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Float (as ratio)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>trailing_stop</code></td>
|
||
|
<td>Enables trailing stoploss (based on <code>stoploss</code> in either configuration or strategy file). More details in the <a href="../stoploss/#trailing-stop-loss">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>trailing_stop_positive</code></td>
|
||
|
<td>Changes stoploss once profit has been reached. More details in the <a href="../stoploss/#trailing-stop-loss-custom-positive-loss">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Float</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>trailing_stop_positive_offset</code></td>
|
||
|
<td>Offset on when to apply <code>trailing_stop_positive</code>. Percentage value which should be positive. More details in the <a href="../stoploss/#trailing-stop-loss-only-once-the-trade-has-reached-a-certain-offset">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>0.0</code> (no offset).</em> <br> <strong>Datatype:</strong> Float</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>trailing_only_offset_is_reached</code></td>
|
||
|
<td>Only apply trailing stoploss when the offset is reached. <a href="../stoploss/">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>unfilledtimeout.buy</code></td>
|
||
|
<td><strong>Required.</strong> How long (in minutes) the bot will wait for an unfilled buy order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. <a href="#parameters-in-the-strategy">Strategy Override</a>.<br> <strong>Datatype:</strong> Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>unfilledtimeout.sell</code></td>
|
||
|
<td><strong>Required.</strong> How long (in minutes) the bot will wait for an unfilled sell order to complete, after which the order will be cancelled and repeated at current (new) price, as long as there is a signal. <a href="#parameters-in-the-strategy">Strategy Override</a>.<br> <strong>Datatype:</strong> Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy.price_side</code></td>
|
||
|
<td>Select the side of the spread the bot should look at to get the buy rate. <a href="#buy-price-side">More information below</a>.<br> <em>Defaults to <code>bid</code>.</em> <br> <strong>Datatype:</strong> String (either <code>ask</code> or <code>bid</code>).</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy.ask_last_balance</code></td>
|
||
|
<td><strong>Required.</strong> Set the bidding price. More information <a href="#buy-price-without-orderbook-enabled">below</a>.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy.use_order_book</code></td>
|
||
|
<td>Enable buying using the rates in <a href="#buy-price-with-orderbook-enabled">Order Book Bids</a>. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy.order_book_top</code></td>
|
||
|
<td>Bot will use the top N rate in Order Book Bids to buy. I.e. a value of 2 will allow the bot to pick the 2<sup>nd</sup> bid rate in <a href="#buy-price-with-orderbook-enabled">Order Book Bids</a>. <br><em>Defaults to <code>1</code>.</em> <br> <strong>Datatype:</strong> Positive Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy. check_depth_of_market.enabled</code></td>
|
||
|
<td>Do not buy if the difference of buy orders and sell orders is met in Order Book. <a href="#check-depth-of-market">Check market depth</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bid_strategy. check_depth_of_market.bids_to_ask_delta</code></td>
|
||
|
<td>The difference ratio of buy orders and sell orders found in Order Book. A value below 1 means sell order size is greater, while value greater than 1 means buy order size is higher. <a href="#check-depth-of-market">Check market depth</a> <br> <em>Defaults to <code>0</code>.</em> <br> <strong>Datatype:</strong> Float (as ratio)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.price_side</code></td>
|
||
|
<td>Select the side of the spread the bot should look at to get the sell rate. <a href="#sell-price-side">More information below</a>.<br> <em>Defaults to <code>ask</code>.</em> <br> <strong>Datatype:</strong> String (either <code>ask</code> or <code>bid</code>).</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.use_order_book</code></td>
|
||
|
<td>Enable selling of open trades using <a href="#sell-price-with-orderbook-enabled">Order Book Asks</a>. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.order_book_min</code></td>
|
||
|
<td>Bot will scan from the top min to max Order Book Asks searching for a profitable rate. <br><em>Defaults to <code>1</code>.</em> <br> <strong>Datatype:</strong> Positive Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.order_book_max</code></td>
|
||
|
<td>Bot will scan from the top min to max Order Book Asks searching for a profitable rate. <br><em>Defaults to <code>1</code>.</em> <br> <strong>Datatype:</strong> Positive Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.use_sell_signal</code></td>
|
||
|
<td>Use sell signals produced by the strategy in addition to the <code>minimal_roi</code>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>true</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.sell_profit_only</code></td>
|
||
|
<td>Wait until the bot reaches <code>ask_strategy.sell_profit_offset</code> before taking a sell decision. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.sell_profit_offset</code></td>
|
||
|
<td>Sell-signal is only active above this value. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>0.0</code>.</em> <br> <strong>Datatype:</strong> Float (as ratio)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.ignore_roi_if_buy_signal</code></td>
|
||
|
<td>Do not sell if the buy signal is still active. This setting takes preference over <code>minimal_roi</code> and <code>use_sell_signal</code>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>ask_strategy.ignore_buying_expired_candle_after</code></td>
|
||
|
<td>Specifies the number of seconds until a buy signal is no longer used. <br> <strong>Datatype:</strong> Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>order_types</code></td>
|
||
|
<td>Configure order-types depending on the action (<code>"buy"</code>, <code>"sell"</code>, <code>"stoploss"</code>, <code>"stoploss_on_exchange"</code>). <a href="#understand-order_types">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>.<br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>order_time_in_force</code></td>
|
||
|
<td>Configure time in force for buy and sell orders. <a href="#understand-order_time_in_force">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.name</code></td>
|
||
|
<td><strong>Required.</strong> Name of the exchange class to use. <a href="#user-content-what-values-for-exchangename">List below</a>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.sandbox</code></td>
|
||
|
<td>Use the 'sandbox' version of the exchange, where the exchange provides a sandbox for risk-free integration. See <a href="../sandbox-testing/">here</a> in more details.<br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.key</code></td>
|
||
|
<td>API key to use for the exchange. Only required when you are in production mode.<br><strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.secret</code></td>
|
||
|
<td>API secret to use for the exchange. Only required when you are in production mode.<br><strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.password</code></td>
|
||
|
<td>API password to use for the exchange. Only required when you are in production mode and for exchanges that use password for API requests.<br><strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.pair_whitelist</code></td>
|
||
|
<td>List of pairs to use by the bot for trading and to check for potential trades during backtesting. Supports regex pairs as <code>.*/BTC</code>. Not used by VolumePairList (see <a href="#pairlists-and-pairlist-handlers">below</a>). <br> <strong>Datatype:</strong> List</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.pair_blacklist</code></td>
|
||
|
<td>List of pairs the bot must absolutely avoid for trading and backtesting (see <a href="#pairlists-and-pairlist-handlers">below</a>). <br> <strong>Datatype:</strong> List</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.ccxt_config</code></td>
|
||
|
<td>Additional CCXT parameters passed to both ccxt instances (sync and async). This is usually the correct place for ccxt configurations. Parameters may differ from exchange to exchange and are documented in the <a href="https://ccxt.readthedocs.io/en/latest/manual.html#instantiation">ccxt documentation</a> <br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.ccxt_sync_config</code></td>
|
||
|
<td>Additional CCXT parameters passed to the regular (sync) ccxt instance. Parameters may differ from exchange to exchange and are documented in the <a href="https://ccxt.readthedocs.io/en/latest/manual.html#instantiation">ccxt documentation</a> <br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.ccxt_async_config</code></td>
|
||
|
<td>Additional CCXT parameters passed to the async ccxt instance. Parameters may differ from exchange to exchange and are documented in the <a href="https://ccxt.readthedocs.io/en/latest/manual.html#instantiation">ccxt documentation</a> <br> <strong>Datatype:</strong> Dict</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.markets_refresh_interval</code></td>
|
||
|
<td>The interval in minutes in which markets are reloaded. <br><em>Defaults to <code>60</code> minutes.</em> <br> <strong>Datatype:</strong> Positive Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>exchange.skip_pair_validation</code></td>
|
||
|
<td>Skip pairlist validation on startup.<br><em>Defaults to <code>false</code><br> </em><em>Datatype:</em>* Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>edge.*</code></td>
|
||
|
<td>Please refer to <a href="../edge/">edge configuration document</a> for detailed explanation.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>experimental.block_bad_exchanges</code></td>
|
||
|
<td>Block exchanges known to not work with freqtrade. Leave on default unless you want to test if that exchange works now. <br><em>Defaults to <code>true</code>.</em> <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>pairlists</code></td>
|
||
|
<td>Define one or more pairlists to be used. <a href="#pairlists-and-pairlist-handlers">More information below</a>. <br><em>Defaults to <code>StaticPairList</code>.</em> <br> <strong>Datatype:</strong> List of Dicts</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>protections</code></td>
|
||
|
<td>Define one or more protections to be used. <a href="#protections">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong>Datatype:</strong> List of Dicts</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>telegram.enabled</code></td>
|
||
|
<td>Enable the usage of Telegram. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>telegram.token</code></td>
|
||
|
<td>Your Telegram bot token. Only required if <code>telegram.enabled</code> is <code>true</code>. <br><strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>telegram.chat_id</code></td>
|
||
|
<td>Your personal Telegram account id. Only required if <code>telegram.enabled</code> is <code>true</code>. <br><strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.enabled</code></td>
|
||
|
<td>Enable usage of Webhook notifications <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.url</code></td>
|
||
|
<td>URL for the webhook. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.webhookbuy</code></td>
|
||
|
<td>Payload to send on buy. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.webhookbuycancel</code></td>
|
||
|
<td>Payload to send on buy order cancel. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.webhooksell</code></td>
|
||
|
<td>Payload to send on sell. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.webhooksellcancel</code></td>
|
||
|
<td>Payload to send on sell order cancel. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>webhook.webhookstatus</code></td>
|
||
|
<td>Payload to send on status calls. Only required if <code>webhook.enabled</code> is <code>true</code>. See the <a href="../webhook-config/">webhook documentation</a> for more details. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.enabled</code></td>
|
||
|
<td>Enable usage of API Server. See the <a href="../rest-api/">API Server documentation</a> for more details. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.listen_ip_address</code></td>
|
||
|
<td>Bind IP address. See the <a href="../rest-api/">API Server documentation</a> for more details. <br> <strong>Datatype:</strong> IPv4</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.listen_port</code></td>
|
||
|
<td>Bind Port. See the <a href="../rest-api/">API Server documentation</a> for more details. <br><strong>Datatype:</strong> Integer between 1024 and 65535</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.verbosity</code></td>
|
||
|
<td>Logging verbosity. <code>info</code> will print all RPC Calls, while "error" will only display errors. <br><strong>Datatype:</strong> Enum, either <code>info</code> or <code>error</code>. Defaults to <code>info</code>.</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.username</code></td>
|
||
|
<td>Username for API server. See the <a href="../rest-api/">API Server documentation</a> for more details. <br><strong>Keep it in secret, do not disclose publicly.</strong><br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>api_server.password</code></td>
|
||
|
<td>Password for API server. See the <a href="../rest-api/">API Server documentation</a> for more details. <br><strong>Keep it in secret, do not disclose publicly.</strong><br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>bot_name</code></td>
|
||
|
<td>Name of the bot. Passed via API to a client - can be shown to distinguish / name bots.<br> <em>Defaults to <code>freqtrade</code></em><br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>db_url</code></td>
|
||
|
<td>Declares database URL to use. NOTE: This defaults to <code>sqlite:///tradesv3.dryrun.sqlite</code> if <code>dry_run</code> is <code>true</code>, and to <code>sqlite:///tradesv3.sqlite</code> for production instances. <br> <strong>Datatype:</strong> String, SQLAlchemy connect string</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>initial_state</code></td>
|
||
|
<td>Defines the initial application state. More information below. <br><em>Defaults to <code>stopped</code>.</em> <br> <strong>Datatype:</strong> Enum, either <code>stopped</code> or <code>running</code></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>forcebuy_enable</code></td>
|
||
|
<td>Enables the RPC Commands to force a buy. More information below. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>disable_dataframe_checks</code></td>
|
||
|
<td>Disable checking the OHLCV dataframe returned from the strategy methods for correctness. Only use when intentionally changing the dataframe and understand what you are doing. <a href="#parameters-in-the-strategy">Strategy Override</a>.<br> <em>Defaults to <code>False</code></em>. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>strategy</code></td>
|
||
|
<td><strong>Required</strong> Defines Strategy class to use. Recommended to be set via <code>--strategy NAME</code>. <br> <strong>Datatype:</strong> ClassName</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>strategy_path</code></td>
|
||
|
<td>Adds an additional strategy lookup path (must be a directory). <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>internals.process_throttle_secs</code></td>
|
||
|
<td>Set the process throttle. Value in second. <br><em>Defaults to <code>5</code> seconds.</em> <br> <strong>Datatype:</strong> Positive Integer</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>internals.heartbeat_interval</code></td>
|
||
|
<td>Print heartbeat message every N seconds. Set to 0 to disable heartbeat messages. <br><em>Defaults to <code>60</code> seconds.</em> <br> <strong>Datatype:</strong> Positive Integer or 0</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>internals.sd_notify</code></td>
|
||
|
<td>Enables use of the sd_notify protocol to tell systemd service manager about changes in the bot state and issue keep-alive pings. See <a href="../installation/#7-optional-configure-freqtrade-as-a-systemd-service">here</a> for more details. <br> <strong>Datatype:</strong> Boolean</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>logfile</code></td>
|
||
|
<td>Specifies logfile name. Uses a rolling strategy for log file rotation for 10 files with the 1MB limit per file. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>user_data_dir</code></td>
|
||
|
<td>Directory containing user data. <br> <em>Defaults to <code>./user_data/</code></em>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>dataformat_ohlcv</code></td>
|
||
|
<td>Data format to use to store historical candle (OHLCV) data. <br> <em>Defaults to <code>json</code></em>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>dataformat_trades</code></td>
|
||
|
<td>Data format to use to store historical trades data. <br> <em>Defaults to <code>jsongz</code></em>. <br> <strong>Datatype:</strong> String</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
<h3 id="parameters-in-the-strategy">Parameters in the strategy<a class="headerlink" href="#parameters-in-the-strategy" title="Permanent link">¶</a></h3>
|
||
|
<p>The following parameters can be set in either configuration file or strategy.
|
||
|
Values set in the configuration file always overwrite values set in the strategy.</p>
|
||
|
<ul>
|
||
|
<li><code>minimal_roi</code></li>
|
||
|
<li><code>timeframe</code></li>
|
||
|
<li><code>stoploss</code></li>
|
||
|
<li><code>trailing_stop</code></li>
|
||
|
<li><code>trailing_stop_positive</code></li>
|
||
|
<li><code>trailing_stop_positive_offset</code></li>
|
||
|
<li><code>trailing_only_offset_is_reached</code></li>
|
||
|
<li><code>process_only_new_candles</code></li>
|
||
|
<li><code>order_types</code></li>
|
||
|
<li><code>order_time_in_force</code></li>
|
||
|
<li><code>stake_currency</code></li>
|
||
|
<li><code>stake_amount</code></li>
|
||
|
<li><code>unfilledtimeout</code></li>
|
||
|
<li><code>disable_dataframe_checks</code></li>
|
||
|
<li><code>protections</code></li>
|
||
|
<li><code>use_sell_signal</code> (ask_strategy)</li>
|
||
|
<li><code>sell_profit_only</code> (ask_strategy)</li>
|
||
|
<li><code>sell_profit_offset</code> (ask_strategy)</li>
|
||
|
<li><code>ignore_roi_if_buy_signal</code> (ask_strategy)</li>
|
||
|
<li><code>ignore_buying_expired_candle_after</code> (ask_strategy)</li>
|
||
|
</ul>
|
||
|
<h3 id="configuring-amount-per-trade">Configuring amount per trade<a class="headerlink" href="#configuring-amount-per-trade" title="Permanent link">¶</a></h3>
|
||
|
<p>There are several methods to configure how much of the stake currency the bot will use to enter a trade. All methods respect the <a href="#available-balance">available balance configuration</a> as explained below.</p>
|
||
|
<h4 id="available-balance">Available balance<a class="headerlink" href="#available-balance" title="Permanent link">¶</a></h4>
|
||
|
<p>By default, the bot assumes that the <code>complete amount - 1%</code> is at it's disposal, and when using <a href="#dynamic-stake-amount">dynamic stake amount</a>, it will split the complete balance into <code>max_open_trades</code> buckets per trade.
|
||
|
Freqtrade will reserve 1% for eventual fees when entering a trade and will therefore not touch that by default.</p>
|
||
|
<p>You can configure the "untouched" amount by using the <code>tradable_balance_ratio</code> setting.</p>
|
||
|
<p>For example, if you have 10 ETH available in your wallet on the exchange and <code>tradable_balance_ratio=0.5</code> (which is 50%), then the bot will use a maximum amount of 5 ETH for trading and considers this as available balance. The rest of the wallet is untouched by the trades.</p>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Warning</p>
|
||
|
<p>The <code>tradable_balance_ratio</code> setting applies to the current balance (free balance + tied up in trades). Therefore, assuming the starting balance of 1000, a configuration with <code>tradable_balance_ratio=0.99</code> will not guarantee that 10 currency units will always remain available on the exchange. For example, the free amount may reduce to 5 units if the total balance is reduced to 500 (either by a losing streak, or by withdrawing balance).</p>
|
||
|
</div>
|
||
|
<h4 id="amend-last-stake-amount">Amend last stake amount<a class="headerlink" href="#amend-last-stake-amount" title="Permanent link">¶</a></h4>
|
||
|
<p>Assuming we have the tradable balance of 1000 USDT, <code>stake_amount=400</code>, and <code>max_open_trades=3</code>.
|
||
|
The bot would open 2 trades, and will be unable to fill the last trading slot, since the requested 400 USDT are no longer available, since 800 USDT are already tied in other trades.</p>
|
||
|
<p>To overcome this, the option <code>amend_last_stake_amount</code> can be set to <code>True</code>, which will enable the bot to reduce stake_amount to the available balance in order to fill the last trade slot.</p>
|
||
|
<p>In the example above this would mean:</p>
|
||
|
<ul>
|
||
|
<li>Trade1: 400 USDT</li>
|
||
|
<li>Trade2: 400 USDT</li>
|
||
|
<li>Trade3: 200 USDT</li>
|
||
|
</ul>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>This option only applies with <a href="#static-stake-amount">Static stake amount</a> - since <a href="#dynamic-stake-amount">Dynamic stake amount</a> divides the balances evenly.</p>
|
||
|
</div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>The minimum last stake amount can be configured using <code>last_stake_amount_min_ratio</code> - which defaults to 0.5 (50%). This means that the minimum stake amount that's ever used is <code>stake_amount * 0.5</code>. This avoids very low stake amounts, that are close to the minimum tradable amount for the pair and can be refused by the exchange.</p>
|
||
|
</div>
|
||
|
<h4 id="static-stake-amount">Static stake amount<a class="headerlink" href="#static-stake-amount" title="Permanent link">¶</a></h4>
|
||
|
<p>The <code>stake_amount</code> configuration statically configures the amount of stake-currency your bot will use for each trade.</p>
|
||
|
<p>The minimal configuration value is 0.0001, however, please check your exchange's trading minimums for the stake currency you're using to avoid problems.</p>
|
||
|
<p>This setting works in combination with <code>max_open_trades</code>. The maximum capital engaged in trades is <code>stake_amount * max_open_trades</code>.
|
||
|
For example, the bot will at most use (0.05 BTC x 3) = 0.15 BTC, assuming a configuration of <code>max_open_trades=3</code> and <code>stake_amount=0.05</code>.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>This setting respects the <a href="#available-balance">available balance configuration</a>.</p>
|
||
|
</div>
|
||
|
<h4 id="dynamic-stake-amount">Dynamic stake amount<a class="headerlink" href="#dynamic-stake-amount" title="Permanent link">¶</a></h4>
|
||
|
<p>Alternatively, you can use a dynamic stake amount, which will use the available balance on the exchange, and divide that equally by the amount of allowed trades (<code>max_open_trades</code>).</p>
|
||
|
<p>To configure this, set <code>stake_amount="unlimited"</code>. We also recommend to set <code>tradable_balance_ratio=0.99</code> (99%) - to keep a minimum balance for eventual fees.</p>
|
||
|
<p>In this case a trade amount is calculated as:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="n">currency_balance</span> <span class="o">/</span> <span class="p">(</span><span class="n">max_open_trades</span> <span class="o">-</span> <span class="n">current_open_trades</span><span class="p">)</span>
|
||
|
</code></pre></div>
|
||
|
<p>To allow the bot to trade all the available <code>stake_currency</code> in your account (minus <code>tradable_balance_ratio</code>) set</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"stake_amount"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"unlimited"</span><span class="p">,</span>
|
||
|
<span class="nt">"tradable_balance_ratio"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.99</span><span class="p">,</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>This configuration will allow increasing / decreasing stakes depending on the performance of the bot (lower stake if bot is loosing, higher stakes if the bot has a winning record, since higher balances are available).</p>
|
||
|
</div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">When using Dry-Run Mode</p>
|
||
|
<p>When using <code>"stake_amount" : "unlimited",</code> in combination with Dry-Run, the balance will be simulated starting with a stake of <code>dry_run_wallet</code> which will evolve over time. It is therefore important to set <code>dry_run_wallet</code> to a sensible value (like 0.05 or 0.01 for BTC and 1000 or 100 for USDT, for example), otherwise it may simulate trades with 100 BTC (or more) or 0.05 USDT (or less) at once - which may not correspond to your real available balance or is less than the exchange minimal limit for the order amount for the stake currency.</p>
|
||
|
</div>
|
||
|
<h3 id="understand-minimal_roi">Understand minimal_roi<a class="headerlink" href="#understand-minimal_roi" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>minimal_roi</code> configuration parameter is a JSON object where the key is a duration
|
||
|
in minutes and the value is the minimum ROI as ratio.
|
||
|
See the example below:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"minimal_roi"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"40"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.0</span><span class="p">,</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="err">Sell</span><span class="w"> </span><span class="err">a</span><span class="kc">fter</span><span class="w"> </span><span class="mi">40</span><span class="w"> </span><span class="err">mi</span><span class="kc">nutes</span><span class="w"> </span><span class="err">i</span><span class="kc">f</span><span class="w"> </span><span class="kc">t</span><span class="err">he</span><span class="w"> </span><span class="err">pro</span><span class="kc">f</span><span class="err">i</span><span class="kc">t</span><span class="w"> </span><span class="err">is</span><span class="w"> </span><span class="kc">n</span><span class="err">o</span><span class="kc">t</span><span class="w"> </span><span class="kc">ne</span><span class="err">ga</span><span class="kc">t</span><span class="err">ive</span>
|
||
|
<span class="w"> </span><span class="nt">"30"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.01</span><span class="p">,</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="err">Sell</span><span class="w"> </span><span class="err">a</span><span class="kc">fter</span><span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="err">mi</span><span class="kc">nutes</span><span class="w"> </span><span class="err">i</span><span class="kc">f</span><span class="w"> </span><span class="kc">t</span><span class="err">here</span><span class="w"> </span><span class="err">is</span><span class="w"> </span><span class="err">a</span><span class="kc">t</span><span class="w"> </span><span class="err">leas</span><span class="kc">t</span><span class="w"> </span><span class="mi">1</span><span class="err">%</span><span class="w"> </span><span class="err">pro</span><span class="kc">f</span><span class="err">i</span><span class="kc">t</span>
|
||
|
<span class="w"> </span><span class="nt">"20"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.02</span><span class="p">,</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="err">Sell</span><span class="w"> </span><span class="err">a</span><span class="kc">fter</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="err">mi</span><span class="kc">nutes</span><span class="w"> </span><span class="err">i</span><span class="kc">f</span><span class="w"> </span><span class="kc">t</span><span class="err">here</span><span class="w"> </span><span class="err">is</span><span class="w"> </span><span class="err">a</span><span class="kc">t</span><span class="w"> </span><span class="err">leas</span><span class="kc">t</span><span class="w"> </span><span class="mi">2</span><span class="err">%</span><span class="w"> </span><span class="err">pro</span><span class="kc">f</span><span class="err">i</span><span class="kc">t</span>
|
||
|
<span class="w"> </span><span class="nt">"0"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.04</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="err">Sell</span><span class="w"> </span><span class="err">immedia</span><span class="kc">tel</span><span class="err">y</span><span class="w"> </span><span class="err">i</span><span class="kc">f</span><span class="w"> </span><span class="kc">t</span><span class="err">here</span><span class="w"> </span><span class="err">is</span><span class="w"> </span><span class="err">a</span><span class="kc">t</span><span class="w"> </span><span class="err">leas</span><span class="kc">t</span><span class="w"> </span><span class="mi">4</span><span class="err">%</span><span class="w"> </span><span class="err">pro</span><span class="kc">f</span><span class="err">i</span><span class="kc">t</span>
|
||
|
<span class="p">},</span>
|
||
|
</code></pre></div>
|
||
|
<p>Most of the strategy files already include the optimal <code>minimal_roi</code> value.
|
||
|
This parameter can be set in either Strategy or Configuration file. If you use it in the configuration file, it will override the
|
||
|
<code>minimal_roi</code> value from the strategy file.
|
||
|
If it is not set in either Strategy or Configuration, a default of 1000% <code>{"0": 10}</code> is used, and minimal roi is disabled unless your trade generates 1000% profit.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Special case to forcesell after a specific time</p>
|
||
|
<p>A special case presents using <code>"<N>": -1</code> as ROI. This forces the bot to sell a trade after N Minutes, no matter if it's positive or negative, so represents a time-limited force-sell.</p>
|
||
|
</div>
|
||
|
<h3 id="understand-stoploss">Understand stoploss<a class="headerlink" href="#understand-stoploss" title="Permanent link">¶</a></h3>
|
||
|
<p>Go to the <a href="../stoploss/">stoploss documentation</a> for more details.</p>
|
||
|
<h3 id="understand-trailing-stoploss">Understand trailing stoploss<a class="headerlink" href="#understand-trailing-stoploss" title="Permanent link">¶</a></h3>
|
||
|
<p>Go to the <a href="../stoploss/#trailing-stop-loss">trailing stoploss Documentation</a> for details on trailing stoploss.</p>
|
||
|
<h3 id="understand-initial_state">Understand initial_state<a class="headerlink" href="#understand-initial_state" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>initial_state</code> configuration parameter is an optional field that defines the initial application state.
|
||
|
Possible values are <code>running</code> or <code>stopped</code>. (default=<code>running</code>)
|
||
|
If the value is <code>stopped</code> the bot has to be started with <code>/start</code> first.</p>
|
||
|
<h3 id="understand-forcebuy_enable">Understand forcebuy_enable<a class="headerlink" href="#understand-forcebuy_enable" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>forcebuy_enable</code> configuration parameter enables the usage of forcebuy commands via Telegram.
|
||
|
This is disabled for security reasons by default, and will show a warning message on startup if enabled.
|
||
|
For example, you can send <code>/forcebuy ETH/BTC</code> Telegram command when this feature if enabled to the bot,
|
||
|
who then buys the pair and holds it until a regular sell-signal (ROI, stoploss, /forcesell) appears.</p>
|
||
|
<p>This can be dangerous with some strategies, so use with care.</p>
|
||
|
<p>See <a href="../telegram-usage/">the telegram documentation</a> for details on usage.</p>
|
||
|
<h3 id="understand-process_throttle_secs">Understand process_throttle_secs<a class="headerlink" href="#understand-process_throttle_secs" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>process_throttle_secs</code> configuration parameter is an optional field that defines in seconds how long the bot should wait
|
||
|
before asking the strategy if we should buy or a sell an asset. After each wait period, the strategy is asked again for
|
||
|
every opened trade wether or not we should sell, and for all the remaining pairs (either the dynamic list of pairs or
|
||
|
the static list of pairs) if we should buy.</p>
|
||
|
<h3 id="ignoring-expired-candles">Ignoring expired candles<a class="headerlink" href="#ignoring-expired-candles" title="Permanent link">¶</a></h3>
|
||
|
<p>When working with larger timeframes (for example 1h or more) and using a low <code>max_open_trades</code> value, the last candle can be processed as soon as a trade slot becomes available. When processing the last candle, this can lead to a situation where it may not be desirable to use the buy signal on that candle. For example, when using a condition in your strategy where you use a cross-over, that point may have passed too long ago for you to start a trade on it.</p>
|
||
|
<p>In these situations, you can enable the functionality to ignore candles that are beyond a specified period by setting <code>ask_strategy.ignore_buying_expired_candle_after</code> to a positive number, indicating the number of seconds after which the buy signal becomes expired.</p>
|
||
|
<p>For example, if your strategy is using a 1h timeframe, and you only want to buy within the first 5 minutes when a new candle comes in, you can add the following configuration to your strategy:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="w"> </span><span class="nt">"ask_strategy"</span><span class="p">:{</span>
|
||
|
<span class="w"> </span><span class="nt">"ignore_buying_expired_candle_after"</span><span class="p">:</span><span class="w"> </span><span class="mi">300</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"price_side"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bid"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="c1">// ...</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
</code></pre></div>
|
||
|
<h3 id="understand-order_types">Understand order_types<a class="headerlink" href="#understand-order_types" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>order_types</code> configuration parameter maps actions (<code>buy</code>, <code>sell</code>, <code>stoploss</code>, <code>emergencysell</code>) to order-types (<code>market</code>, <code>limit</code>, ...) as well as configures stoploss to be on the exchange and defines stoploss on exchange update interval in seconds.</p>
|
||
|
<p>This allows to buy using limit orders, sell using
|
||
|
limit-orders, and create stoplosses using market orders. It also allows to set the
|
||
|
stoploss "on exchange" which means stoploss order would be placed immediately once
|
||
|
the buy order is fulfilled.</p>
|
||
|
<p><code>order_types</code> set in the configuration file overwrites values set in the strategy as a whole, so you need to configure the whole <code>order_types</code> dictionary in one place.</p>
|
||
|
<p>If this is configured, the following 4 values (<code>buy</code>, <code>sell</code>, <code>stoploss</code> and
|
||
|
<code>stoploss_on_exchange</code>) need to be present, otherwise the bot will fail to start.</p>
|
||
|
<p>For information on (<code>emergencysell</code>,<code>stoploss_on_exchange</code>,<code>stoploss_on_exchange_interval</code>,<code>stoploss_on_exchange_limit_ratio</code>) please see stop loss documentation <a href="../stoploss/">stop loss on exchange</a></p>
|
||
|
<p>Syntax for Strategy:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="n">order_types</span> <span class="o">=</span> <span class="p">{</span>
|
||
|
<span class="s2">"buy"</span><span class="p">:</span> <span class="s2">"limit"</span><span class="p">,</span>
|
||
|
<span class="s2">"sell"</span><span class="p">:</span> <span class="s2">"limit"</span><span class="p">,</span>
|
||
|
<span class="s2">"emergencysell"</span><span class="p">:</span> <span class="s2">"market"</span><span class="p">,</span>
|
||
|
<span class="s2">"stoploss"</span><span class="p">:</span> <span class="s2">"market"</span><span class="p">,</span>
|
||
|
<span class="s2">"stoploss_on_exchange"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
|
||
|
<span class="s2">"stoploss_on_exchange_interval"</span><span class="p">:</span> <span class="mi">60</span><span class="p">,</span>
|
||
|
<span class="s2">"stoploss_on_exchange_limit_ratio"</span><span class="p">:</span> <span class="mf">0.99</span><span class="p">,</span>
|
||
|
<span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<p>Configuration:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"order_types"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"buy"</span><span class="p">:</span><span class="w"> </span><span class="s2">"limit"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"sell"</span><span class="p">:</span><span class="w"> </span><span class="s2">"limit"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"emergencysell"</span><span class="p">:</span><span class="w"> </span><span class="s2">"market"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stoploss"</span><span class="p">:</span><span class="w"> </span><span class="s2">"market"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stoploss_on_exchange"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stoploss_on_exchange_interval"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span>
|
||
|
<span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Market order support</p>
|
||
|
<p>Not all exchanges support "market" orders.
|
||
|
The following message will be shown if your exchange does not support market orders:
|
||
|
<code>"Exchange <yourexchange> does not support market orders."</code> and the bot will refuse to start.</p>
|
||
|
</div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Using market orders</p>
|
||
|
<p>Please carefully read the section <a href="#market-order-pricing">Market order pricing</a> section when using market orders.</p>
|
||
|
</div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Stoploss on exchange</p>
|
||
|
<p><code>stoploss_on_exchange_interval</code> is not mandatory. Do not change its value if you are
|
||
|
unsure of what you are doing. For more information about how stoploss works please
|
||
|
refer to <a href="../stoploss/">the stoploss documentation</a>.</p>
|
||
|
<p>If <code>stoploss_on_exchange</code> is enabled and the stoploss is cancelled manually on the exchange, then the bot will create a new stoploss order.</p>
|
||
|
</div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Warning: stoploss_on_exchange failures</p>
|
||
|
<p>If stoploss on exchange creation fails for some reason, then an "emergency sell" is initiated. By default, this will sell the asset using a market order. The order-type for the emergency-sell can be changed by setting the <code>emergencysell</code> value in the <code>order_types</code> dictionary - however this is not advised.</p>
|
||
|
</div>
|
||
|
<h3 id="understand-order_time_in_force">Understand order_time_in_force<a class="headerlink" href="#understand-order_time_in_force" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>order_time_in_force</code> configuration parameter defines the policy by which the order
|
||
|
is executed on the exchange. Three commonly used time in force are:</p>
|
||
|
<p><strong>GTC (Good Till Canceled):</strong></p>
|
||
|
<p>This is most of the time the default time in force. It means the order will remain
|
||
|
on exchange till it is canceled by user. It can be fully or partially fulfilled.
|
||
|
If partially fulfilled, the remaining will stay on the exchange till cancelled.</p>
|
||
|
<p><strong>FOK (Fill Or Kill):</strong></p>
|
||
|
<p>It means if the order is not executed immediately AND fully then it is canceled by the exchange.</p>
|
||
|
<p><strong>IOC (Immediate Or Canceled):</strong></p>
|
||
|
<p>It is the same as FOK (above) except it can be partially fulfilled. The remaining part
|
||
|
is automatically cancelled by the exchange.</p>
|
||
|
<p>The <code>order_time_in_force</code> parameter contains a dict with buy and sell time in force policy values.
|
||
|
This can be set in the configuration file or in the strategy.
|
||
|
Values set in the configuration file overwrites values set in the strategy.</p>
|
||
|
<p>The possible values are: <code>gtc</code> (default), <code>fok</code> or <code>ioc</code>.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="s2">"order_time_in_force"</span><span class="p">:</span> <span class="p">{</span>
|
||
|
<span class="s2">"buy"</span><span class="p">:</span> <span class="s2">"gtc"</span><span class="p">,</span>
|
||
|
<span class="s2">"sell"</span><span class="p">:</span> <span class="s2">"gtc"</span>
|
||
|
<span class="p">},</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Warning</p>
|
||
|
<p>This is an ongoing work. For now it is supported only for binance and only for buy orders.
|
||
|
Please don't change the default value unless you know what you are doing.</p>
|
||
|
</div>
|
||
|
<h3 id="exchange-configuration">Exchange configuration<a class="headerlink" href="#exchange-configuration" title="Permanent link">¶</a></h3>
|
||
|
<p>Freqtrade is based on <a href="https://github.com/ccxt/ccxt">CCXT library</a> that supports over 100 cryptocurrency
|
||
|
exchange markets and trading APIs. The complete up-to-date list can be found in the
|
||
|
<a href="https://github.com/ccxt/ccxt/tree/master/python">CCXT repo homepage</a>.
|
||
|
However, the bot was tested by the development team with only Bittrex, Binance and Kraken,
|
||
|
so the these are the only officially supported exchanges:</p>
|
||
|
<ul>
|
||
|
<li><a href="https://bittrex.com/">Bittrex</a>: "bittrex"</li>
|
||
|
<li><a href="https://www.binance.com/">Binance</a>: "binance"</li>
|
||
|
<li><a href="https://kraken.com/">Kraken</a>: "kraken"</li>
|
||
|
</ul>
|
||
|
<p>Feel free to test other exchanges and submit your PR to improve the bot.</p>
|
||
|
<p>Some exchanges require special configuration, which can be found on the <a href="../exchanges/">Exchange-specific Notes</a> documentation page.</p>
|
||
|
<h4 id="sample-exchange-configuration">Sample exchange configuration<a class="headerlink" href="#sample-exchange-configuration" title="Permanent link">¶</a></h4>
|
||
|
<p>A exchange configuration for "binance" would look as follows:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"binance"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"your_exchange_key"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"secret"</span><span class="p">:</span><span class="w"> </span><span class="s2">"your_exchange_secret"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"ccxt_config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nt">"enableRateLimit"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="nt">"ccxt_async_config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"enableRateLimit"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"rateLimit"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
</code></pre></div>
|
||
|
<p>This configuration enables binance, as well as rate limiting to avoid bans from the exchange.
|
||
|
<code>"rateLimit": 200</code> defines a wait-event of 0.2s between each call. This can also be completely disabled by setting <code>"enableRateLimit"</code> to false.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>Optimal settings for rate limiting depend on the exchange and the size of the whitelist, so an ideal parameter will vary on many other settings.
|
||
|
We try to provide sensible defaults per exchange where possible, if you encounter bans please make sure that <code>"enableRateLimit"</code> is enabled and increase the <code>"rateLimit"</code> parameter step by step.</p>
|
||
|
</div>
|
||
|
<h4 id="advanced-freqtrade-exchange-configuration">Advanced Freqtrade Exchange configuration<a class="headerlink" href="#advanced-freqtrade-exchange-configuration" title="Permanent link">¶</a></h4>
|
||
|
<p>Advanced options can be configured using the <code>_ft_has_params</code> setting, which will override Defaults and exchange-specific behaviours.</p>
|
||
|
<p>Available options are listed in the exchange-class as <code>_ft_has_default</code>.</p>
|
||
|
<p>For example, to test the order type <code>FOK</code> with Kraken, and modify candle limit to 200 (so you only get 200 candles per API call):</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"kraken"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"_ft_has_params"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"order_time_in_force"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"gtc"</span><span class="p">,</span><span class="w"> </span><span class="s2">"fok"</span><span class="p">],</span>
|
||
|
<span class="w"> </span><span class="nt">"ohlcv_candle_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Warning</p>
|
||
|
<p>Please make sure to fully understand the impacts of these settings before modifying them.</p>
|
||
|
</div>
|
||
|
<h3 id="what-values-can-be-used-for-fiat_display_currency">What values can be used for fiat_display_currency?<a class="headerlink" href="#what-values-can-be-used-for-fiat_display_currency" title="Permanent link">¶</a></h3>
|
||
|
<p>The <code>fiat_display_currency</code> configuration parameter sets the base currency to use for the
|
||
|
conversion from coin to fiat in the bot Telegram reports.</p>
|
||
|
<p>The valid values are:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="s2">"AUD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"BRL"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CAD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CHF"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CLP"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CNY"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CZK"</span><span class="p">,</span><span class="w"> </span><span class="s2">"DKK"</span><span class="p">,</span><span class="w"> </span><span class="s2">"EUR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"GBP"</span><span class="p">,</span><span class="w"> </span><span class="s2">"HKD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"HUF"</span><span class="p">,</span><span class="w"> </span><span class="s2">"IDR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"ILS"</span><span class="p">,</span><span class="w"> </span><span class="s2">"INR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"JPY"</span><span class="p">,</span><span class="w"> </span><span class="s2">"KRW"</span><span class="p">,</span><span class="w"> </span><span class="s2">"MXN"</span><span class="p">,</span><span class="w"> </span><span class="s2">"MYR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"NOK"</span><span class="p">,</span><span class="w"> </span><span class="s2">"NZD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"PHP"</span><span class="p">,</span><span class="w"> </span><span class="s2">"PKR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"PLN"</span><span class="p">,</span><span class="w"> </span><span class="s2">"RUB"</span><span class="p">,</span><span class="w"> </span><span class="s2">"SEK"</span><span class="p">,</span><span class="w"> </span><span class="s2">"SGD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"THB"</span><span class="p">,</span><span class="w"> </span><span class="s2">"TRY"</span><span class="p">,</span><span class="w"> </span><span class="s2">"TWD"</span><span class="p">,</span><span class="w"> </span><span class="s2">"ZAR"</span><span class="p">,</span><span class="w"> </span><span class="s2">"USD"</span>
|
||
|
</code></pre></div>
|
||
|
<p>In addition to fiat currencies, a range of cryto currencies are supported.</p>
|
||
|
<p>The valid values are:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="s2">"BTC"</span><span class="p">,</span><span class="w"> </span><span class="s2">"ETH"</span><span class="p">,</span><span class="w"> </span><span class="s2">"XRP"</span><span class="p">,</span><span class="w"> </span><span class="s2">"LTC"</span><span class="p">,</span><span class="w"> </span><span class="s2">"BCH"</span><span class="p">,</span><span class="w"> </span><span class="s2">"USDT"</span>
|
||
|
</code></pre></div>
|
||
|
<h2 id="prices-used-for-orders">Prices used for orders<a class="headerlink" href="#prices-used-for-orders" title="Permanent link">¶</a></h2>
|
||
|
<p>Prices for regular orders can be controlled via the parameter structures <code>bid_strategy</code> for buying and <code>ask_strategy</code> for selling.
|
||
|
Prices are always retrieved right before an order is placed, either by querying the exchange tickers or by using the orderbook data.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>Orderbook data used by Freqtrade are the data retrieved from exchange by the ccxt's function <code>fetch_order_book()</code>, i.e. are usually data from the L2-aggregated orderbook, while the ticker data are the structures returned by the ccxt's <code>fetch_ticker()</code>/<code>fetch_tickers()</code> functions. Refer to the ccxt library <a href="https://github.com/ccxt/ccxt/wiki/Manual#market-data">documentation</a> for more details.</p>
|
||
|
</div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Using market orders</p>
|
||
|
<p>Please read the section <a href="#market-order-pricing">Market order pricing</a> section when using market orders.</p>
|
||
|
</div>
|
||
|
<h3 id="buy-price">Buy price<a class="headerlink" href="#buy-price" title="Permanent link">¶</a></h3>
|
||
|
<h4 id="check-depth-of-market">Check depth of market<a class="headerlink" href="#check-depth-of-market" title="Permanent link">¶</a></h4>
|
||
|
<p>When check depth of market is enabled (<code>bid_strategy.check_depth_of_market.enabled=True</code>), the buy signals are filtered based on the orderbook depth (sum of all amounts) for each orderbook side.</p>
|
||
|
<p>Orderbook <code>bid</code> (buy) side depth is then divided by the orderbook <code>ask</code> (sell) side depth and the resulting delta is compared to the value of the <code>bid_strategy.check_depth_of_market.bids_to_ask_delta</code> parameter. The buy order is only executed if the orderbook delta is greater than or equal to the configured delta value.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>A delta value below 1 means that <code>ask</code> (sell) orderbook side depth is greater than the depth of the <code>bid</code> (buy) orderbook side, while a value greater than 1 means opposite (depth of the buy side is higher than the depth of the sell side).</p>
|
||
|
</div>
|
||
|
<h4 id="buy-price-side">Buy price side<a class="headerlink" href="#buy-price-side" title="Permanent link">¶</a></h4>
|
||
|
<p>The configuration setting <code>bid_strategy.price_side</code> defines the side of the spread the bot looks for when buying.</p>
|
||
|
<p>The following displays an orderbook.</p>
|
||
|
<div class="highlight"><pre><span></span><code>...
|
||
|
103
|
||
|
102
|
||
|
101 # ask
|
||
|
-------------Current spread
|
||
|
99 # bid
|
||
|
98
|
||
|
97
|
||
|
...
|
||
|
</code></pre></div>
|
||
|
<p>If <code>bid_strategy.price_side</code> is set to <code>"bid"</code>, then the bot will use 99 as buying price.<br />
|
||
|
In line with that, if <code>bid_strategy.price_side</code> is set to <code>"ask"</code>, then the bot will use 101 as buying price.</p>
|
||
|
<p>Using <code>ask</code> price often guarantees quicker filled orders, but the bot can also end up paying more than what would have been necessary.
|
||
|
Taker fees instead of maker fees will most likely apply even when using limit buy orders.
|
||
|
Also, prices at the "ask" side of the spread are higher than prices at the "bid" side in the orderbook, so the order behaves similar to a market order (however with a maximum price).</p>
|
||
|
<h4 id="buy-price-with-orderbook-enabled">Buy price with Orderbook enabled<a class="headerlink" href="#buy-price-with-orderbook-enabled" title="Permanent link">¶</a></h4>
|
||
|
<p>When buying with the orderbook enabled (<code>bid_strategy.use_order_book=True</code>), Freqtrade fetches the <code>bid_strategy.order_book_top</code> entries from the orderbook and then uses the entry specified as <code>bid_strategy.order_book_top</code> on the configured side (<code>bid_strategy.price_side</code>) of the orderbook. 1 specifies the topmost entry in the orderbook, while 2 would use the 2<sup>nd</sup> entry in the orderbook, and so on.</p>
|
||
|
<h4 id="buy-price-without-orderbook-enabled">Buy price without Orderbook enabled<a class="headerlink" href="#buy-price-without-orderbook-enabled" title="Permanent link">¶</a></h4>
|
||
|
<p>The following section uses <code>side</code> as the configured <code>bid_strategy.price_side</code>.</p>
|
||
|
<p>When not using orderbook (<code>bid_strategy.use_order_book=False</code>), Freqtrade uses the best <code>side</code> price from the ticker if it's below the <code>last</code> traded price from the ticker. Otherwise (when the <code>side</code> price is above the <code>last</code> price), it calculates a rate between <code>side</code> and <code>last</code> price.</p>
|
||
|
<p>The <code>bid_strategy.ask_last_balance</code> configuration parameter controls this. A value of <code>0.0</code> will use <code>side</code> price, while <code>1.0</code> will use the <code>last</code> price and values between those interpolate between ask and last price.</p>
|
||
|
<h3 id="sell-price">Sell price<a class="headerlink" href="#sell-price" title="Permanent link">¶</a></h3>
|
||
|
<h4 id="sell-price-side">Sell price side<a class="headerlink" href="#sell-price-side" title="Permanent link">¶</a></h4>
|
||
|
<p>The configuration setting <code>ask_strategy.price_side</code> defines the side of the spread the bot looks for when selling.</p>
|
||
|
<p>The following displays an orderbook:</p>
|
||
|
<div class="highlight"><pre><span></span><code>...
|
||
|
103
|
||
|
102
|
||
|
101 # ask
|
||
|
-------------Current spread
|
||
|
99 # bid
|
||
|
98
|
||
|
97
|
||
|
...
|
||
|
</code></pre></div>
|
||
|
<p>If <code>ask_strategy.price_side</code> is set to <code>"ask"</code>, then the bot will use 101 as selling price.<br />
|
||
|
In line with that, if <code>ask_strategy.price_side</code> is set to <code>"bid"</code>, then the bot will use 99 as selling price.</p>
|
||
|
<h4 id="sell-price-with-orderbook-enabled">Sell price with Orderbook enabled<a class="headerlink" href="#sell-price-with-orderbook-enabled" title="Permanent link">¶</a></h4>
|
||
|
<p>When selling with the orderbook enabled (<code>ask_strategy.use_order_book=True</code>), Freqtrade fetches the <code>ask_strategy.order_book_max</code> entries in the orderbook. Then each of the orderbook steps between <code>ask_strategy.order_book_min</code> and <code>ask_strategy.order_book_max</code> on the configured orderbook side are validated for a profitable sell-possibility based on the strategy configuration (<code>minimal_roi</code> conditions) and the sell order is placed at the first profitable spot.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>Using <code>order_book_max</code> higher than <code>order_book_min</code> only makes sense when ask_strategy.price_side is set to <code>"ask"</code>.</p>
|
||
|
</div>
|
||
|
<p>The idea here is to place the sell order early, to be ahead in the queue.</p>
|
||
|
<p>A fixed slot (mirroring <code>bid_strategy.order_book_top</code>) can be defined by setting <code>ask_strategy.order_book_min</code> and <code>ask_strategy.order_book_max</code> to the same number.</p>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Order_book_max > 1 - increased risks for stoplosses!</p>
|
||
|
<p>Using <code>ask_strategy.order_book_max</code> higher than 1 will increase the risk the stoploss on exchange is cancelled too early, since an eventual <a href="#understand-order_types">stoploss on exchange</a> will be cancelled as soon as the order is placed.
|
||
|
Also, the sell order will remain on the exchange for <code>unfilledtimeout.sell</code> (or until it's filled) - which can lead to missed stoplosses (with or without using stoploss on exchange).</p>
|
||
|
</div>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Order_book_max > 1 in dry-run</p>
|
||
|
<p>Using <code>ask_strategy.order_book_max</code> higher than 1 will result in improper dry-run results (significantly better than real orders executed on exchange), since dry-run assumes orders to be filled almost instantly.
|
||
|
It is therefore advised to not use this setting for dry-runs.</p>
|
||
|
</div>
|
||
|
<h4 id="sell-price-without-orderbook-enabled">Sell price without Orderbook enabled<a class="headerlink" href="#sell-price-without-orderbook-enabled" title="Permanent link">¶</a></h4>
|
||
|
<p>When not using orderbook (<code>ask_strategy.use_order_book=False</code>), the price at the <code>ask_strategy.price_side</code> side (defaults to <code>"ask"</code>) from the ticker will be used as the sell price.</p>
|
||
|
<h3 id="market-order-pricing">Market order pricing<a class="headerlink" href="#market-order-pricing" title="Permanent link">¶</a></h3>
|
||
|
<p>When using market orders, prices should be configured to use the "correct" side of the orderbook to allow realistic pricing detection.
|
||
|
Assuming both buy and sell are using market orders, a configuration similar to the following might be used</p>
|
||
|
<div class="highlight"><pre><span></span><code> "order_types": {
|
||
|
"buy": "market",
|
||
|
"sell": "market"
|
||
|
// ...
|
||
|
},
|
||
|
"bid_strategy": {
|
||
|
"price_side": "ask",
|
||
|
// ...
|
||
|
},
|
||
|
"ask_strategy":{
|
||
|
"price_side": "bid",
|
||
|
// ...
|
||
|
},
|
||
|
</code></pre></div>
|
||
|
<p>Obviously, if only one side is using limit orders, different pricing combinations can be used.</p>
|
||
|
<h2 id="pairlists-and-pairlist-handlers">Pairlists and Pairlist Handlers<a class="headerlink" href="#pairlists-and-pairlist-handlers" title="Permanent link">¶</a></h2>
|
||
|
<p>Pairlist Handlers define the list of pairs (pairlist) that the bot should trade. They are configured in the <code>pairlists</code> section of the configuration settings.</p>
|
||
|
<p>In your configuration, you can use Static Pairlist (defined by the <a href="#static-pair-list"><code>StaticPairList</code></a> Pairlist Handler) and Dynamic Pairlist (defined by the <a href="#volume-pair-list"><code>VolumePairList</code></a> Pairlist Handler).</p>
|
||
|
<p>Additionally, <a href="#agefilter"><code>AgeFilter</code></a>, <a href="#precisionfilter"><code>PrecisionFilter</code></a>, <a href="#pricefilter"><code>PriceFilter</code></a>, <a href="#shufflefilter"><code>ShuffleFilter</code></a> and <a href="#spreadfilter"><code>SpreadFilter</code></a> act as Pairlist Filters, removing certain pairs and/or moving their positions in the pairlist.</p>
|
||
|
<p>If multiple Pairlist Handlers are used, they are chained and a combination of all Pairlist Handlers forms the resulting pairlist the bot uses for trading and backtesting. Pairlist Handlers are executed in the sequence they are configured. You should always configure either <code>StaticPairList</code> or <code>VolumePairList</code> as the starting Pairlist Handler.</p>
|
||
|
<p>Inactive markets are always removed from the resulting pairlist. Explicitly blacklisted pairs (those in the <code>pair_blacklist</code> configuration setting) are also always removed from the resulting pairlist.</p>
|
||
|
<h3 id="pair-blacklist">Pair blacklist<a class="headerlink" href="#pair-blacklist" title="Permanent link">¶</a></h3>
|
||
|
<p>The pair blacklist (configured via <code>exchange.pair_blacklist</code> in the configuration) disallows certain pairs from trading.
|
||
|
This can be as simple as excluding <code>DOGE/BTC</code> - which will remove exactly this pair.</p>
|
||
|
<p>The pair-blacklist does also support wildcards (in regex-style) - so <code>BNB/.*</code> will exclude ALL pairs that start with BNB.
|
||
|
You may also use something like <code>.*DOWN/BTC</code> or <code>.*UP/BTC</code> to exclude leveraged tokens (check Pair naming conventions for your exchange!)</p>
|
||
|
<h3 id="available-pairlist-handlers">Available Pairlist Handlers<a class="headerlink" href="#available-pairlist-handlers" title="Permanent link">¶</a></h3>
|
||
|
<ul>
|
||
|
<li><a href="#static-pair-list"><code>StaticPairList</code></a> (default, if not configured differently)</li>
|
||
|
<li><a href="#volume-pair-list"><code>VolumePairList</code></a></li>
|
||
|
<li><a href="#agefilter"><code>AgeFilter</code></a></li>
|
||
|
<li><a href="#performancefilter"><code>PerformanceFilter</code></a></li>
|
||
|
<li><a href="#precisionfilter"><code>PrecisionFilter</code></a></li>
|
||
|
<li><a href="#pricefilter"><code>PriceFilter</code></a></li>
|
||
|
<li><a href="#shufflefilter"><code>ShuffleFilter</code></a></li>
|
||
|
<li><a href="#spreadfilter"><code>SpreadFilter</code></a></li>
|
||
|
<li><a href="#rangestabilityfilter"><code>RangeStabilityFilter</code></a></li>
|
||
|
</ul>
|
||
|
<div class="admonition tip">
|
||
|
<p class="admonition-title">Testing pairlists</p>
|
||
|
<p>Pairlist configurations can be quite tricky to get right. Best use the <a href="../utils/#test-pairlist"><code>test-pairlist</code></a> utility sub-command to test your configuration quickly.</p>
|
||
|
</div>
|
||
|
<h4 id="static-pair-list">Static Pair List<a class="headerlink" href="#static-pair-list" title="Permanent link">¶</a></h4>
|
||
|
<p>By default, the <code>StaticPairList</code> method is used, which uses a statically defined pair whitelist from the configuration. The pairlist also supports wildcards (in regex-style) - so <code>.*/BTC</code> will include all pairs with BTC as a stake.</p>
|
||
|
<p>It uses configuration from <code>exchange.pair_whitelist</code> and <code>exchange.pair_blacklist</code>.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"pairlists"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"StaticPairList"</span><span class="p">}</span>
|
||
|
<span class="w"> </span><span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<p>By default, only currently enabled pairs are allowed.
|
||
|
To skip pair validation against active markets, set <code>"allow_inactive": true</code> within the <code>StaticPairList</code> configuration.
|
||
|
This can be useful for backtesting expired pairs (like quarterly spot-markets).
|
||
|
This option must be configured along with <code>exchange.skip_pair_validation</code> in the exchange configuration.</p>
|
||
|
<h4 id="volume-pair-list">Volume Pair List<a class="headerlink" href="#volume-pair-list" title="Permanent link">¶</a></h4>
|
||
|
<p><code>VolumePairList</code> employs sorting/filtering of pairs by their trading volume. It selects <code>number_assets</code> top pairs with sorting based on the <code>sort_key</code> (which can only be <code>quoteVolume</code>).</p>
|
||
|
<p>When used in the chain of Pairlist Handlers in a non-leading position (after StaticPairList and other Pairlist Filters), <code>VolumePairList</code> considers outputs of previous Pairlist Handlers, adding its sorting/selection of the pairs by the trading volume.</p>
|
||
|
<p>When used on the leading position of the chain of Pairlist Handlers, it does not consider <code>pair_whitelist</code> configuration setting, but selects the top assets from all available markets (with matching stake-currency) on the exchange.</p>
|
||
|
<p>The <code>refresh_period</code> setting allows to define the period (in seconds), at which the pairlist will be refreshed. Defaults to 1800s (30 minutes).</p>
|
||
|
<p><code>VolumePairList</code> is based on the ticker data from exchange, as reported by the ccxt library:</p>
|
||
|
<ul>
|
||
|
<li>The <code>quoteVolume</code> is the amount of quote (stake) currency traded (bought or sold) in last 24 hours.</li>
|
||
|
</ul>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"pairlists"</span><span class="p">:</span><span class="w"> </span><span class="p">[{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"VolumePairList"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"number_assets"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"sort_key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"quoteVolume"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"refresh_period"</span><span class="p">:</span><span class="w"> </span><span class="mi">1800</span>
|
||
|
<span class="p">}],</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p><code>VolumePairList</code> does not support backtesting mode.</p>
|
||
|
</div>
|
||
|
<h4 id="agefilter">AgeFilter<a class="headerlink" href="#agefilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Removes pairs that have been listed on the exchange for less than <code>min_days_listed</code> days (defaults to <code>10</code>).</p>
|
||
|
<p>When pairs are first listed on an exchange they can suffer huge price drops and volatility
|
||
|
in the first few days while the pair goes through its price-discovery period. Bots can often
|
||
|
be caught out buying before the pair has finished dropping in price.</p>
|
||
|
<p>This filter allows freqtrade to ignore pairs until they have been listed for at least <code>min_days_listed</code> days.</p>
|
||
|
<h4 id="performancefilter">PerformanceFilter<a class="headerlink" href="#performancefilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Sorts pairs by past trade performance, as follows:
|
||
|
1. Positive performance.
|
||
|
2. No closed trades yet.
|
||
|
3. Negative performance.</p>
|
||
|
<p>Trade count is used as a tie breaker.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p><code>PerformanceFilter</code> does not support backtesting mode.</p>
|
||
|
</div>
|
||
|
<h4 id="precisionfilter">PrecisionFilter<a class="headerlink" href="#precisionfilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Filters low-value coins which would not allow setting stoplosses.</p>
|
||
|
<h4 id="pricefilter">PriceFilter<a class="headerlink" href="#pricefilter" title="Permanent link">¶</a></h4>
|
||
|
<p>The <code>PriceFilter</code> allows filtering of pairs by price. Currently the following price filters are supported:</p>
|
||
|
<ul>
|
||
|
<li><code>min_price</code></li>
|
||
|
<li><code>max_price</code></li>
|
||
|
<li><code>low_price_ratio</code></li>
|
||
|
</ul>
|
||
|
<p>The <code>min_price</code> setting removes pairs where the price is below the specified price. This is useful if you wish to avoid trading very low-priced pairs.
|
||
|
This option is disabled by default, and will only apply if set to > 0.</p>
|
||
|
<p>The <code>max_price</code> setting removes pairs where the price is above the specified price. This is useful if you wish to trade only low-priced pairs.
|
||
|
This option is disabled by default, and will only apply if set to > 0.</p>
|
||
|
<p>The <code>low_price_ratio</code> setting removes pairs where a raise of 1 price unit (pip) is above the <code>low_price_ratio</code> ratio.
|
||
|
This option is disabled by default, and will only apply if set to > 0.</p>
|
||
|
<p>For <code>PriceFiler</code> at least one of its <code>min_price</code>, <code>max_price</code> or <code>low_price_ratio</code> settings must be applied.</p>
|
||
|
<p>Calculation example:</p>
|
||
|
<p>Min price precision for SHITCOIN/BTC is 8 decimals. If its price is 0.00000011 - one price step above would be 0.00000012, which is ~9% higher than the previous price value. You may filter out this pair by using PriceFilter with <code>low_price_ratio</code> set to 0.09 (9%) or with <code>min_price</code> set to 0.00000011, correspondingly.</p>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Low priced pairs</p>
|
||
|
<p>Low priced pairs with high "1 pip movements" are dangerous since they are often illiquid and it may also be impossible to place the desired stoploss, which can often result in high losses since price needs to be rounded to the next tradable price - so instead of having a stoploss of -5%, you could end up with a stoploss of -9% simply due to price rounding.</p>
|
||
|
</div>
|
||
|
<h4 id="shufflefilter">ShuffleFilter<a class="headerlink" href="#shufflefilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Shuffles (randomizes) pairs in the pairlist. It can be used for preventing the bot from trading some of the pairs more frequently then others when you want all pairs be treated with the same priority.</p>
|
||
|
<div class="admonition tip">
|
||
|
<p class="admonition-title">Tip</p>
|
||
|
<p>You may set the <code>seed</code> value for this Pairlist to obtain reproducible results, which can be useful for repeated backtesting sessions. If <code>seed</code> is not set, the pairs are shuffled in the non-repeatable random order.</p>
|
||
|
</div>
|
||
|
<h4 id="spreadfilter">SpreadFilter<a class="headerlink" href="#spreadfilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Removes pairs that have a difference between asks and bids above the specified ratio, <code>max_spread_ratio</code> (defaults to <code>0.005</code>).</p>
|
||
|
<p>Example:</p>
|
||
|
<p>If <code>DOGE/BTC</code> maximum bid is 0.00000026 and minimum ask is 0.00000027, the ratio is calculated as: <code>1 - bid/ask ~= 0.037</code> which is <code>> 0.005</code> and this pair will be filtered out.</p>
|
||
|
<h4 id="rangestabilityfilter">RangeStabilityFilter<a class="headerlink" href="#rangestabilityfilter" title="Permanent link">¶</a></h4>
|
||
|
<p>Removes pairs where the difference between lowest low and highest high over <code>lookback_days</code> days is below <code>min_rate_of_change</code>. Since this is a filter that requires additional data, the results are cached for <code>refresh_period</code>.</p>
|
||
|
<p>In the below example:
|
||
|
If the trading range over the last 10 days is <1%, remove the pair from the whitelist.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"pairlists"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"RangeStabilityFilter"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_days"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"min_rate_of_change"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.01</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"refresh_period"</span><span class="p">:</span><span class="w"> </span><span class="mi">1440</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
<span class="p">]</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition tip">
|
||
|
<p class="admonition-title">Tip</p>
|
||
|
<p>This Filter can be used to automatically remove stable coin pairs, which have a very low trading range, and are therefore extremely difficult to trade with profit.</p>
|
||
|
</div>
|
||
|
<h3 id="full-example-of-pairlist-handlers">Full example of Pairlist Handlers<a class="headerlink" href="#full-example-of-pairlist-handlers" title="Permanent link">¶</a></h3>
|
||
|
<p>The below example blacklists <code>BNB/BTC</code>, uses <code>VolumePairList</code> with <code>20</code> assets, sorting pairs by <code>quoteVolume</code> and applies both <a href="#precisionfilter"><code>PrecisionFilter</code></a> and <a href="#price-filter"><code>PriceFilter</code></a>, filtering all assets where 1 price unit is > 1%. Then the <code>SpreadFilter</code> is applied and pairs are finally shuffled with the random seed set to some predefined value.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"pair_whitelist"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span>
|
||
|
<span class="w"> </span><span class="nt">"pair_blacklist"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"BNB/BTC"</span><span class="p">]</span>
|
||
|
<span class="p">},</span>
|
||
|
<span class="nt">"pairlists"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"VolumePairList"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"number_assets"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"sort_key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"quoteVolume"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"AgeFilter"</span><span class="p">,</span><span class="w"> </span><span class="nt">"min_days_listed"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PrecisionFilter"</span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PriceFilter"</span><span class="p">,</span><span class="w"> </span><span class="nt">"low_price_ratio"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.01</span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SpreadFilter"</span><span class="p">,</span><span class="w"> </span><span class="nt">"max_spread_ratio"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.005</span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"RangeStabilityFilter"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_days"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"min_rate_of_change"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.01</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"refresh_period"</span><span class="p">:</span><span class="w"> </span><span class="mi">1440</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ShuffleFilter"</span><span class="p">,</span><span class="w"> </span><span class="nt">"seed"</span><span class="p">:</span><span class="w"> </span><span class="mi">42</span><span class="p">}</span>
|
||
|
<span class="w"> </span><span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<h2 id="protections">Protections<a class="headerlink" href="#protections" title="Permanent link">¶</a></h2>
|
||
|
<div class="admonition warning">
|
||
|
<p class="admonition-title">Beta feature</p>
|
||
|
<p>This feature is still in it's testing phase. Should you notice something you think is wrong please let us know via Discord, Slack or via Github Issue.</p>
|
||
|
</div>
|
||
|
<p>Protections will protect your strategy from unexpected events and market conditions by temporarily stop trading for either one pair, or for all pairs.
|
||
|
All protection end times are rounded up to the next candle to avoid sudden, unexpected intra-candle buys.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>Not all Protections will work for all strategies, and parameters will need to be tuned for your strategy to improve performance.<br />
|
||
|
To align your protection with your strategy, you can define protections in the strategy.</p>
|
||
|
</div>
|
||
|
<div class="admonition tip">
|
||
|
<p class="admonition-title">Tip</p>
|
||
|
<p>Each Protection can be configured multiple times with different parameters, to allow different levels of protection (short-term / long-term).</p>
|
||
|
</div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Backtesting</p>
|
||
|
<p>Protections are supported by backtesting and hyperopt, but must be explicitly enabled by using the <code>--enable-protections</code> flag.</p>
|
||
|
</div>
|
||
|
<h3 id="available-protections">Available Protections<a class="headerlink" href="#available-protections" title="Permanent link">¶</a></h3>
|
||
|
<ul>
|
||
|
<li><a href="#stoploss-guard"><code>StoplossGuard</code></a> Stop trading if a certain amount of stoploss occurred within a certain time window.</li>
|
||
|
<li><a href="#maxdrawdown"><code>MaxDrawdown</code></a> Stop trading if max-drawdown is reached.</li>
|
||
|
<li><a href="#low-profit-pairs"><code>LowProfitPairs</code></a> Lock pairs with low profits</li>
|
||
|
<li><a href="#cooldown-period"><code>CooldownPeriod</code></a> Don't enter a trade right after selling a trade.</li>
|
||
|
</ul>
|
||
|
<h3 id="common-settings-to-all-protections">Common settings to all Protections<a class="headerlink" href="#common-settings-to-all-protections" title="Permanent link">¶</a></h3>
|
||
|
<table>
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th>Parameter</th>
|
||
|
<th>Description</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td><code>method</code></td>
|
||
|
<td>Protection name to use. <br> <strong>Datatype:</strong> String, selected from <a href="#available-protections">available Protections</a></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>stop_duration_candles</code></td>
|
||
|
<td>For how many candles should the lock be set? <br> <strong>Datatype:</strong> Positive integer (in candles)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>stop_duration</code></td>
|
||
|
<td>how many minutes should protections be locked. <br>Cannot be used together with <code>stop_duration_candles</code>. <br> <strong>Datatype:</strong> Float (in minutes)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>lookback_period_candles</code></td>
|
||
|
<td>Only trades that completed within the last <code>lookback_period_candles</code> candles will be considered. This setting may be ignored by some Protections. <br> <strong>Datatype:</strong> Positive integer (in candles).</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>lookback_period</code></td>
|
||
|
<td>Only trades that completed after <code>current_time - lookback_period</code> will be considered. <br>Cannot be used together with <code>lookback_period_candles</code>. <br>This setting may be ignored by some Protections. <br> <strong>Datatype:</strong> Float (in minutes)</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td><code>trade_limit</code></td>
|
||
|
<td>Number of trades required at minimum (not used by all Protections). <br> <strong>Datatype:</strong> Positive integer</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Durations</p>
|
||
|
<p>Durations (<code>stop_duration*</code> and <code>lookback_period*</code> can be defined in either minutes or candles).
|
||
|
For more flexibility when testing different timeframes, all below examples will use the "candle" definition.</p>
|
||
|
</div>
|
||
|
<h4 id="stoploss-guard">Stoploss Guard<a class="headerlink" href="#stoploss-guard" title="Permanent link">¶</a></h4>
|
||
|
<p><code>StoplossGuard</code> selects all trades within <code>lookback_period</code> in minutes (or in candles when using <code>lookback_period_candles</code>), and determines if the amount of trades that resulted in stoploss are above <code>trade_limit</code> - in which case trading will stop for <code>stop_duration</code> in minutes (or in candles when using <code>stop_duration_candles</code>).
|
||
|
This applies across all pairs, unless <code>only_per_pair</code> is set to true, which will then only look at one pair at a time.</p>
|
||
|
<p>The below example stops trading for all pairs for 4 candles after the last trade if the bot hit stoploss 4 times within the last 24 candles.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"protections"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"StoplossGuard"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">24</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"only_per_pair"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
<span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p><code>StoplossGuard</code> considers all trades with the results <code>"stop_loss"</code>, <code>"stoploss_on_exchange"</code> and <code>"trailing_stop_loss"</code> if the resulting profit was negative.
|
||
|
<code>trade_limit</code> and <code>lookback_period</code> will need to be tuned for your strategy.</p>
|
||
|
</div>
|
||
|
<h4 id="maxdrawdown">MaxDrawdown<a class="headerlink" href="#maxdrawdown" title="Permanent link">¶</a></h4>
|
||
|
<p><code>MaxDrawdown</code> uses all trades within <code>lookback_period</code> in minutes (or in candles when using <code>lookback_period_candles</code>) to determine the maximum drawdown. If the drawdown is below <code>max_allowed_drawdown</code>, trading will stop for <code>stop_duration</code> in minutes (or in candles when using <code>stop_duration_candles</code>) after the last trade - assuming that the bot needs some time to let markets recover.</p>
|
||
|
<p>The below sample stops trading for 12 candles if max-drawdown is > 20% considering all pairs - with a minimum of <code>trade_limit</code> trades - within the last 48 candles. If desired, <code>lookback_period</code> and/or <code>stop_duration</code> can be used.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"protections"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MaxDrawdown"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">48</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"max_allowed_drawdown"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.2</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<h4 id="low-profit-pairs">Low Profit Pairs<a class="headerlink" href="#low-profit-pairs" title="Permanent link">¶</a></h4>
|
||
|
<p><code>LowProfitPairs</code> uses all trades for a pair within <code>lookback_period</code> in minutes (or in candles when using <code>lookback_period_candles</code>) to determine the overall profit ratio.
|
||
|
If that ratio is below <code>required_profit</code>, that pair will be locked for <code>stop_duration</code> in minutes (or in candles when using <code>stop_duration_candles</code>).</p>
|
||
|
<p>The below example will stop trading a pair for 60 minutes if the pair does not have a required profit of 2% (and a minimum of 2 trades) within the last 6 candles.</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"protections"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"LowProfitPairs"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"required_profit"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.02</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
<span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<h4 id="cooldown-period">Cooldown Period<a class="headerlink" href="#cooldown-period" title="Permanent link">¶</a></h4>
|
||
|
<p><code>CooldownPeriod</code> locks a pair for <code>stop_duration</code> in minutes (or in candles when using <code>stop_duration_candles</code>) after selling, avoiding a re-entry for this pair for <code>stop_duration</code> minutes.</p>
|
||
|
<p>The below example will stop trading a pair for 2 candles after closing a trade, allowing this pair to "cool down".</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"protections"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CooldownPeriod"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
<span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>This Protection applies only at pair-level, and will never lock all pairs globally.
|
||
|
This Protection does not consider <code>lookback_period</code> as it only looks at the latest trade.</p>
|
||
|
</div>
|
||
|
<h3 id="full-example-of-protections">Full example of Protections<a class="headerlink" href="#full-example-of-protections" title="Permanent link">¶</a></h3>
|
||
|
<p>All protections can be combined at will, also with different parameters, creating a increasing wall for under-performing pairs.
|
||
|
All protections are evaluated in the sequence they are defined.</p>
|
||
|
<p>The below example assumes a timeframe of 1 hour:</p>
|
||
|
<ul>
|
||
|
<li>Locks each pair after selling for an additional 5 candles (<code>CooldownPeriod</code>), giving other pairs a chance to get filled.</li>
|
||
|
<li>Stops trading for 4 hours (<code>4 * 1h candles</code>) if the last 2 days (<code>48 * 1h candles</code>) had 20 trades, which caused a max-drawdown of more than 20%. (<code>MaxDrawdown</code>).</li>
|
||
|
<li>Stops trading if more than 4 stoploss occur for all pairs within a 1 day (<code>24 * 1h candles</code>) limit (<code>StoplossGuard</code>).</li>
|
||
|
<li>Locks all pairs that had 4 Trades within the last 6 hours (<code>6 * 1h candles</code>) with a combined profit ratio of below 0.02 (<2%) (<code>LowProfitPairs</code>).</li>
|
||
|
<li>Locks all pairs for 2 candles that had a profit of below 0.01 (<1%) within the last 24h (<code>24 * 1h candles</code>), a minimum of 4 trades.</li>
|
||
|
</ul>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"timeframe"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1h"</span><span class="p">,</span>
|
||
|
<span class="nt">"protections"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CooldownPeriod"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MaxDrawdown"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">48</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"max_allowed_drawdown"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.2</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"StoplossGuard"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">24</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"only_per_pair"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"LowProfitPairs"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"required_profit"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.02</span>
|
||
|
<span class="w"> </span><span class="p">},</span>
|
||
|
<span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"LowProfitPairs"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"lookback_period_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">24</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"trade_limit"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"stop_duration_candles"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"required_profit"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.01</span>
|
||
|
<span class="w"> </span><span class="p">}</span>
|
||
|
<span class="w"> </span><span class="p">],</span>
|
||
|
</code></pre></div>
|
||
|
<p>You can use the same in your strategy, the syntax is only slightly different:</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">freqtrade.strategy</span> <span class="kn">import</span> <span class="n">IStrategy</span>
|
||
|
|
||
|
<span class="k">class</span> <span class="nc">AwesomeStrategy</span><span class="p">(</span><span class="n">IStrategy</span><span class="p">)</span>
|
||
|
<span class="n">timeframe</span> <span class="o">=</span> <span class="s1">'1h'</span>
|
||
|
<span class="n">protections</span> <span class="o">=</span> <span class="p">[</span>
|
||
|
<span class="p">{</span>
|
||
|
<span class="s2">"method"</span><span class="p">:</span> <span class="s2">"CooldownPeriod"</span><span class="p">,</span>
|
||
|
<span class="s2">"stop_duration_candles"</span><span class="p">:</span> <span class="mi">5</span>
|
||
|
<span class="p">},</span>
|
||
|
<span class="p">{</span>
|
||
|
<span class="s2">"method"</span><span class="p">:</span> <span class="s2">"MaxDrawdown"</span><span class="p">,</span>
|
||
|
<span class="s2">"lookback_period_candles"</span><span class="p">:</span> <span class="mi">48</span><span class="p">,</span>
|
||
|
<span class="s2">"trade_limit"</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
|
||
|
<span class="s2">"stop_duration_candles"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="s2">"max_allowed_drawdown"</span><span class="p">:</span> <span class="mf">0.2</span>
|
||
|
<span class="p">},</span>
|
||
|
<span class="p">{</span>
|
||
|
<span class="s2">"method"</span><span class="p">:</span> <span class="s2">"StoplossGuard"</span><span class="p">,</span>
|
||
|
<span class="s2">"lookback_period_candles"</span><span class="p">:</span> <span class="mi">24</span><span class="p">,</span>
|
||
|
<span class="s2">"trade_limit"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="s2">"stop_duration_candles"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="s2">"only_per_pair"</span><span class="p">:</span> <span class="kc">False</span>
|
||
|
<span class="p">},</span>
|
||
|
<span class="p">{</span>
|
||
|
<span class="s2">"method"</span><span class="p">:</span> <span class="s2">"LowProfitPairs"</span><span class="p">,</span>
|
||
|
<span class="s2">"lookback_period_candles"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
|
||
|
<span class="s2">"trade_limit"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="s2">"stop_duration_candles"</span><span class="p">:</span> <span class="mi">60</span><span class="p">,</span>
|
||
|
<span class="s2">"required_profit"</span><span class="p">:</span> <span class="mf">0.02</span>
|
||
|
<span class="p">},</span>
|
||
|
<span class="p">{</span>
|
||
|
<span class="s2">"method"</span><span class="p">:</span> <span class="s2">"LowProfitPairs"</span><span class="p">,</span>
|
||
|
<span class="s2">"lookback_period_candles"</span><span class="p">:</span> <span class="mi">24</span><span class="p">,</span>
|
||
|
<span class="s2">"trade_limit"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
|
||
|
<span class="s2">"stop_duration_candles"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
|
||
|
<span class="s2">"required_profit"</span><span class="p">:</span> <span class="mf">0.01</span>
|
||
|
<span class="p">}</span>
|
||
|
<span class="p">]</span>
|
||
|
<span class="c1"># ...</span>
|
||
|
</code></pre></div>
|
||
|
<h2 id="switch-to-dry-run-mode">Switch to Dry-run mode<a class="headerlink" href="#switch-to-dry-run-mode" title="Permanent link">¶</a></h2>
|
||
|
<p>We recommend starting the bot in the Dry-run mode to see how your bot will
|
||
|
behave and what is the performance of your strategy. In the Dry-run mode the
|
||
|
bot does not engage your money. It only runs a live simulation without
|
||
|
creating trades on the exchange.</p>
|
||
|
<ol>
|
||
|
<li>Edit your <code>config.json</code> configuration file.</li>
|
||
|
<li>Switch <code>dry-run</code> to <code>true</code> and specify <code>db_url</code> for a persistence database.</li>
|
||
|
</ol>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"dry_run"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||
|
<span class="nt">"db_url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"sqlite:///tradesv3.dryrun.sqlite"</span><span class="p">,</span>
|
||
|
</code></pre></div>
|
||
|
<ol>
|
||
|
<li>Remove your Exchange API key and secret (change them by empty values or fake credentials):</li>
|
||
|
</ol>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bittrex"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"key"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"secret"</span><span class="p">:</span><span class="w"> </span><span class="s2">"secret"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="err">...</span>
|
||
|
<span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<p>Once you will be happy with your bot performance running in the Dry-run mode, you can switch it to production mode.</p>
|
||
|
<div class="admonition note">
|
||
|
<p class="admonition-title">Note</p>
|
||
|
<p>A simulated wallet is available during dry-run mode, and will assume a starting capital of <code>dry_run_wallet</code> (defaults to 1000).</p>
|
||
|
</div>
|
||
|
<h3 id="considerations-for-dry-run">Considerations for dry-run<a class="headerlink" href="#considerations-for-dry-run" title="Permanent link">¶</a></h3>
|
||
|
<ul>
|
||
|
<li>API-keys may or may not be provided. Only Read-Only operations (i.e. operations that do not alter account state) on the exchange are performed in the dry-run mode.</li>
|
||
|
<li>Wallets (<code>/balance</code>) are simulated.</li>
|
||
|
<li>Orders are simulated, and will not be posted to the exchange.</li>
|
||
|
<li>In combination with <code>stoploss_on_exchange</code>, the stop_loss price is assumed to be filled.</li>
|
||
|
<li>Open orders (not trades, which are stored in the database) are reset on bot restart.</li>
|
||
|
</ul>
|
||
|
<h2 id="switch-to-production-mode">Switch to production mode<a class="headerlink" href="#switch-to-production-mode" title="Permanent link">¶</a></h2>
|
||
|
<p>In production mode, the bot will engage your money. Be careful, since a wrong
|
||
|
strategy can lose all your money. Be aware of what you are doing when
|
||
|
you run it in production mode.</p>
|
||
|
<h3 id="setup-your-exchange-account">Setup your exchange account<a class="headerlink" href="#setup-your-exchange-account" title="Permanent link">¶</a></h3>
|
||
|
<p>You will need to create API Keys (usually you get <code>key</code> and <code>secret</code>, some exchanges require an additional <code>password</code>) from the Exchange website and you'll need to insert this into the appropriate fields in the configuration or when asked by the <code>freqtrade new-config</code> command.
|
||
|
API Keys are usually only required for live trading (trading for real money, bot running in "production mode", executing real orders on the exchange) and are not required for the bot running in dry-run (trade simulation) mode. When you setup the bot in dry-run mode, you may fill these fields with empty values.</p>
|
||
|
<h3 id="to-switch-your-bot-in-production-mode">To switch your bot in production mode<a class="headerlink" href="#to-switch-your-bot-in-production-mode" title="Permanent link">¶</a></h3>
|
||
|
<p><strong>Edit your <code>config.json</code> file.</strong></p>
|
||
|
<p><strong>Switch dry-run to false and don't forget to adapt your database URL if set:</strong></p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"dry_run"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
|
</code></pre></div>
|
||
|
<p><strong>Insert your Exchange API key (change them by fake api keys):</strong></p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"exchange"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bittrex"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"key"</span><span class="p">:</span><span class="w"> </span><span class="s2">"af8ddd35195e9dc500b9a6f799f6f5c93d89193b"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="nt">"secret"</span><span class="p">:</span><span class="w"> </span><span class="s2">"08a9dc6db3d7b53e1acebd9275677f4b0a04f1a5"</span><span class="p">,</span>
|
||
|
<span class="w"> </span><span class="err">...</span>
|
||
|
<span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<p>You should also make sure to read the <a href="../exchanges/">Exchanges</a> section of the documentation to be aware of potential configuration details specific to your exchange.</p>
|
||
|
<h3 id="using-proxy-with-freqtrade">Using proxy with Freqtrade<a class="headerlink" href="#using-proxy-with-freqtrade" title="Permanent link">¶</a></h3>
|
||
|
<p>To use a proxy with freqtrade, add the kwarg <code>"aiohttp_trust_env"=true</code> to the <code>"ccxt_async_kwargs"</code> dict in the exchange section of the configuration.</p>
|
||
|
<p>An example for this can be found in <code>config_full.json.example</code></p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nt">"ccxt_async_config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
|
<span class="w"> </span><span class="nt">"aiohttp_trust_env"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
|
||
|
<span class="p">}</span>
|
||
|
</code></pre></div>
|
||
|
<p>Then, export your proxy settings using the variables <code>"HTTP_PROXY"</code> and <code>"HTTPS_PROXY"</code> set to the appropriate values</p>
|
||
|
<div class="highlight"><pre><span></span><code><span class="nb">export</span><span class="w"> </span><span class="nv">HTTP_PROXY</span><span class="o">=</span><span class="s2">"http://addr:port"</span>
|
||
|
<span class="nb">export</span><span class="w"> </span><span class="nv">HTTPS_PROXY</span><span class="o">=</span><span class="s2">"http://addr:port"</span>
|
||
|
freqtrade
|
||
|
</code></pre></div>
|
||
|
<h2 id="next-step">Next step<a class="headerlink" href="#next-step" title="Permanent link">¶</a></h2>
|
||
|
<p>Now you have configured your config.json, the next step is to <a href="../bot-usage/">start your bot</a>.</p>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</article>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
|
</div>
|
||
|
|
||
|
</main>
|
||
|
|
||
|
<footer class="md-footer">
|
||
|
|
||
|
<div class="md-footer-meta md-typeset">
|
||
|
<div class="md-footer-meta__inner md-grid">
|
||
|
<div class="md-copyright">
|
||
|
|
||
|
|
||
|
Made with
|
||
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||
|
Material for MkDocs
|
||
|
</a>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
</footer>
|
||
|
|
||
|
</div>
|
||
|
<div class="md-dialog" data-md-component="dialog">
|
||
|
<div class="md-dialog__inner md-typeset"></div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
|
||
|
|
||
|
|
||
|
<script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
|
||
|
|
||
|
<script src="../javascripts/config.js"></script>
|
||
|
|
||
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||
|
|
||
|
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||
|
|
||
|
|
||
|
</body>
|
||
|
</html>
|