mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-15 12:43:56 +00:00
2219 lines
93 KiB
HTML
2219 lines
93 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="../docker/">
|
|
|
|
|
|
<link rel="next" href="../strategy-customization/">
|
|
|
|
|
|
<link rel="icon" href="../assets/images/favicon.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">
|
|
About
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../installation/" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Installation
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../docker/" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Installation Docker
|
|
</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="#understand-stake_amount" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Understand stake_amount
|
|
</span>
|
|
</a>
|
|
|
|
</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="#understand-ask_last_balance" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Understand ask_last_balance
|
|
</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="#pairlists" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Pairlists
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Pairlists">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#available-pairlists" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Available Pairlists
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Available Pairlists">
|
|
<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="#precision-filter" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Precision Filter
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#price-pair-filter" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Price Pair Filter
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#full-pairlist-example" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Full Pairlist example
|
|
</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>
|
|
|
|
</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="#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="#embedding-strategies" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Embedding Strategies
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Embedding Strategies">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#encoding-a-string-as-base64" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Encoding a string as BASE64
|
|
</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_8" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_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_8_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_8">
|
|
<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="../utils/" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Utility Subcommands
|
|
</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="../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_16" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_16" id="__nav_16_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_16_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_16">
|
|
<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="../advanced-setup/" class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Advanced Post-installation Tasks
|
|
</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="../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="#understand-stake_amount" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Understand stake_amount
|
|
</span>
|
|
</a>
|
|
|
|
</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="#understand-ask_last_balance" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Understand ask_last_balance
|
|
</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="#pairlists" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Pairlists
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Pairlists">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#available-pairlists" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Available Pairlists
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Available Pairlists">
|
|
<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="#precision-filter" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Precision Filter
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#price-pair-filter" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Price Pair Filter
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#full-pairlist-example" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Full Pairlist example
|
|
</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>
|
|
|
|
</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="#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="#embedding-strategies" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Embedding Strategies
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Embedding Strategies">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#encoding-a-string-as-base64" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Encoding a string as BASE64
|
|
</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 copy and use the <code>config.json.example</code> as a template
|
|
for your bot configuration.</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 market 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>Command</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>max_open_trades</code></td>
|
|
<td><strong>Required.</strong> Number of trades open your bot will have. If -1 then it is ignored (i.e. potentially unlimited open trades).<br> <strong><em>Datatype:</em></strong> <em>Positive integer or -1.</em></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><em>Datatype:</em></strong> <em>String</em></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="#understand-stake_amount">More information below</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong><em>Datatype:</em></strong> <em>Positive float or <code>"unlimited"</code>.</em></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><em>Datatype:</em></strong> <em>Positive Float as ratio.</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>ticker_interval</code></td>
|
|
<td>The 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><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>dry_run_wallet</code></td>
|
|
<td>Overrides the default amount of 999.9 stake currency units in the wallet used by the bot running in the Dry Run mode if you need it for any reason. <br> <strong><em>Datatype:</em></strong> <em>Float</em></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><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>minimal_roi</code></td>
|
|
<td><strong>Required.</strong> Set the threshold in percent 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><em>Datatype:</em></strong> <em>Dict</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>stoploss</code></td>
|
|
<td><strong>Required.</strong> Value of the stoploss in percent 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><em>Datatype:</em></strong> <em>Float (as ratio)</em></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/">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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/">stoploss documentation</a>. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br> <strong><em>Datatype:</em></strong> <em>Float</em></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/">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><em>Datatype:</em></strong> <em>Float</em></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><em>Datatype:</em></strong> <em>Boolean</em></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. <br> <strong><em>Datatype:</em></strong> <em>Integer</em></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. <br> <strong><em>Datatype:</em></strong> <em>Integer</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>bid_strategy.ask_last_balance</code></td>
|
|
<td><strong>Required.</strong> Set the bidding price. More information <a href="#understand-ask_last_balance">below</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>bid_strategy.use_order_book</code></td>
|
|
<td>Enable buying using the rates in Order Book Bids. <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>bid_strategy.order_book_top</code></td>
|
|
<td>Bot will use the top N rate in Order Book Bids. I.e. a value of 2 will allow the bot to pick the 2<sup>nd</sup> bid rate in Order Book Bids. <em>Defaults to <code>1</code>.</em> <br> <strong><em>Datatype:</em></strong> <em>Positive Integer</em></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. <br><em>Defaults to <code>false</code>.</em> <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>bid_strategy. check_depth_of_market.bids_to_ask_delta</code></td>
|
|
<td>The % difference of buy orders and sell orders found in Order Book. A value lesser than 1 means sell orders is greater, while value greater than 1 means buy orders is higher. <em>Defaults to <code>0</code>.</em> <br> <strong><em>Datatype:</em></strong> <em>Float (as ratio)</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>ask_strategy.use_order_book</code></td>
|
|
<td>Enable selling of open trades using Order Book Asks. <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>Positive Integer</em></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><em>Datatype:</em></strong> <em>Positive Integer</em></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><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>ask_strategy.sell_profit_only</code></td>
|
|
<td>Wait until the bot makes a positive profit before taking a sell decision. <a href="#parameters-in-the-strategy">Strategy Override</a>. <br><em>Defaults to <code>false</code>.</em> <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>Dict</em></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><em>Datatype:</em></strong> <em>Dict</em></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><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>Boolean</em></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. <strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong><em>Datatype:</em></strong> <em>String</em></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. <strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong><em>Datatype:</em></strong> <em>String</em></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. <strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong><em>Datatype:</em></strong> <em>String</em></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. Not used by VolumePairList (see <a href="#dynamic-pairlists">below</a>). <br> <strong><em>Datatype:</em></strong> <em>List</em></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="#dynamic-pairlists">below</a>). <br> <strong><em>Datatype:</em></strong> <em>List</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>exchange.ccxt_config</code></td>
|
|
<td>Additional CCXT parameters passed to the regular 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><em>Datatype:</em></strong> <em>Dict</em></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><em>Datatype:</em></strong> <em>Dict</em></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><em>Datatype:</em></strong> <em>Positive Integer</em></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><em>Datatype:</em></strong> <em>Boolean</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>pairlists</code></td>
|
|
<td>Define one or more pairlists to be used. <a href="#dynamic-pairlists">More information below</a>. <br><em>Defaults to <code>StaticPairList</code>.</em> <br> <strong><em>Datatype:</em></strong> <em>List of Dicts</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>telegram.enabled</code></td>
|
|
<td>Enable the usage of Telegram. <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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>. <strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong><em>Datatype:</em></strong> <em>String</em></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>. <strong>Keep it in secret, do not disclose publicly.</strong> <br> <strong><em>Datatype:</em></strong> <em>String</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>webhook.enabled</code></td>
|
|
<td>Enable usage of Webhook notifications <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>String</em></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 documentationV</a> for more details. <br> <strong><em>Datatype:</em></strong> <em>String</em></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 documentationV</a> for more details. <br> <strong><em>Datatype:</em></strong> <em>String</em></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 documentationV</a> for more details. <br> <strong><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>IPv4</em></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><em>Datatype:</em></strong> <em>Integer between 1024 and 65535</em></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. <strong>Keep it in secret, do not disclose publicly.</strong><br> <strong><em>Datatype:</em></strong> <em>String</em></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. <strong>Keep it in secret, do not disclose publicly.</strong><br> <strong><em>Datatype:</em></strong> <em>String</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>db_url</code></td>
|
|
<td>Declares database URL to use. NOTE: This defaults to <code>sqlite://</code> if <code>dry_run</code> is <code>true</code>, and to <code>sqlite:///tradesv3.sqlite</code> for production instances. <br> <strong><em>Datatype:</em></strong> <em>String, SQLAlchemy connect string</em></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><em>Datatype:</em></strong> <em>Enum, either <code>stopped</code> or <code>running</code></em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>forcebuy_enable</code></td>
|
|
<td>Enables the RPC Commands to force a buy. More information below. <br> <strong><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>ClassName</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>strategy_path</code></td>
|
|
<td>Adds an additional strategy lookup path (must be a directory). <br> <strong><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>Positive Integer</em></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><em>Datatype:</em></strong> <em>Positive Integer or 0</em></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><em>Datatype:</em></strong> <em>Boolean</em></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><em>Datatype:</em></strong> <em>String</em></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><em>Datatype:</em></strong> <em>String</em></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>ticker_interval</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>use_sell_signal</code> (ask_strategy)</li>
|
|
<li><code>sell_profit_only</code> (ask_strategy)</li>
|
|
<li><code>ignore_roi_if_buy_signal</code> (ask_strategy)</li>
|
|
</ul>
|
|
<h3 id="understand-stake_amount">Understand stake_amount<a class="headerlink" href="#understand-stake_amount" title="Permanent link">¶</a></h3>
|
|
<p>The <code>stake_amount</code> configuration parameter is an amount of crypto-currency your bot will use for each trade.</p>
|
|
<p>The minimal configuration value is 0.0001. Please check your exchange's trading minimums 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>
|
|
<p>To allow the bot to trade all the available <code>stake_currency</code> in your account 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>
|
|
</code></pre></div>
|
|
<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>
|
|
<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 in percent.
|
|
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>
|
|
<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="understand-ask_last_balance">Understand ask_last_balance<a class="headerlink" href="#understand-ask_last_balance" title="Permanent link">¶</a></h3>
|
|
<p>The <code>ask_last_balance</code> configuration parameter sets the bidding price. Value <code>0.0</code> will use <code>ask</code> price, <code>1.0</code> will
|
|
use the <code>last</code> price and values between those interpolate between ask and last
|
|
price. Using <code>ask</code> price will guarantee quick success in bid, but bot will also
|
|
end up paying more then would probably have been necessary.</p>
|
|
<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>) 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 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.
|
|
If <code>stoploss_on_exchange</code> and <code>trailing_stop</code> are both set, then the bot will use <code>stoploss_on_exchange_interval</code> to check and update the stoploss on exchange periodically.
|
|
<code>order_types</code> can be set in the configuration file or in the strategy.
|
|
<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><code>emergencysell</code> is an optional value, which defaults to <code>market</code> and is used when creating stoploss on exchange orders fails.
|
|
The below is the default which is used if this is not configured in either strategy or configuration file.</p>
|
|
<p>Since <code>stoploss_on_exchange</code> uses limit orders, the exchange needs 2 prices, the stoploss_price and the Limit price.
|
|
<code>stoploss</code> defines the stop-price - and limit should be slightly below this. This defaults to 0.99 / 1%.
|
|
Calculation example: we bought the asset at 100<span class="arithmatex"><span class="MathJax_Preview">.
|
|
Stop-price is 95</span><script type="math/tex">.
|
|
Stop-price is 95</script></span>, then limit would be <code>95 * 0.99 = 94.05$</code> - so the stoploss will happen between 95$ and 94.05$.</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">Note</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></p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="admonition-title">Note</p>
|
|
<p>Stoploss on exchange interval 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>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="admonition-title">Note</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 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 (Full 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
|
|
with only Bittrex and Binance.</p>
|
|
<p>The bot was tested with the following exchanges:</p>
|
|
<ul>
|
|
<li><a href="https://bittrex.com/">Bittrex</a>: "bittrex"</li>
|
|
<li><a href="https://www.binance.com/">Binance</a>: "binance"</li>
|
|
</ul>
|
|
<p>Feel free to test other exchanges and submit your PR to improve the bot.</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 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="pairlists">Pairlists<a class="headerlink" href="#pairlists" title="Permanent link">¶</a></h2>
|
|
<p>Pairlists define the list of pairs that the bot should trade.
|
|
There are <a href="#static-pair-list"><code>StaticPairList</code></a> and dynamic Whitelists available.</p>
|
|
<p><a href="#precision-filter"><code>PrecisionFilter</code></a> and <a href="#price-pair-filter"><code>PriceFilter</code></a> act as filters, removing low-value pairs.</p>
|
|
<p>All pairlists can be chained, and a combination of all pairlists will become your new whitelist. Pairlists are executed in the sequence they are configured. You should always configure either <code>StaticPairList</code> or <code>DynamicPairList</code> as starting pairlists.</p>
|
|
<p>Inactive markets and blacklisted pairs are always removed from the resulting <code>pair_whitelist</code>.</p>
|
|
<h3 id="available-pairlists">Available Pairlists<a class="headerlink" href="#available-pairlists" 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="#precision-filter"><code>PrecisionFilter</code></a></li>
|
|
<li><a href="#price-pair-filter"><code>PriceFilter</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> subcommand 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. </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>
|
|
<h4 id="volume-pair-list">Volume Pair List<a class="headerlink" href="#volume-pair-list" title="Permanent link">¶</a></h4>
|
|
<p><code>VolumePairList</code> selects <code>number_assets</code> top pairs based on <code>sort_key</code>, which can be one of <code>askVolume</code>, <code>bidVolume</code> and <code>quoteVolume</code> and defaults to <code>quoteVolume</code>.</p>
|
|
<p><code>VolumePairList</code> considers outputs of previous pairlists unless it's the first configured pairlist, it does not consider <code>pair_whitelist</code>, but selects the top assets from all available markets (with matching stake-currency) on the exchange.</p>
|
|
<p><code>refresh_period</code> allows setting the period (in seconds), at which the pairlist will be refreshed. Defaults to 1800s (30 minutes).</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="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>
|
|
<span class="p">],</span>
|
|
</code></pre></div>
|
|
<h4 id="precision-filter">Precision Filter<a class="headerlink" href="#precision-filter" title="Permanent link">¶</a></h4>
|
|
<p>Filters low-value coins which would not allow setting a stoploss.</p>
|
|
<h4 id="price-pair-filter">Price Pair Filter<a class="headerlink" href="#price-pair-filter" title="Permanent link">¶</a></h4>
|
|
<p>The <code>PriceFilter</code> allows filtering of pairs by price.
|
|
Currently, only <code>low_price_ratio</code> is implemented, where a raise of 1 price unit (pip) is below the <code>low_price_ratio</code> ratio.
|
|
This option is disabled by default, and will only apply if set to <> 0.</p>
|
|
<p>Calculation example:<br />
|
|
Min price precision is 8 decimals. If price is 0.00000011 - one step would be 0.00000012 - which is almost 10% higher than the previous value. </p>
|
|
<p>These pairs are dangerous since it may be impossible to place the desired stoploss - and often result in high losses.</p>
|
|
<h3 id="full-pairlist-example">Full Pairlist example<a class="headerlink" href="#full-pairlist-example" title="Permanent link">¶</a></h3>
|
|
<p>The below example blacklists <code>BNB/BTC</code>, uses <code>VolumePairList</code> with <code>20</code> assets, sorting by <code>quoteVolume</code> and applies both <a href="#precision-filter"><code>PrecisionFilter</code></a> and <a href="#price-pair-filter"><code>PriceFilter</code></a>, filtering all assets where 1 priceunit is > 1%.</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">"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>
|
|
</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>
|
|
<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="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>
|
|
<div class="admonition note">
|
|
<p class="admonition-title">Note</p>
|
|
<p>If you have an exchange API key yet, <a href="/pre-requisite">see our tutorial</a>.</p>
|
|
</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="embedding-strategies">Embedding Strategies<a class="headerlink" href="#embedding-strategies" title="Permanent link">¶</a></h2>
|
|
<p>FreqTrade provides you with with an easy way to embed the strategy into your configuration file.
|
|
This is done by utilizing BASE64 encoding and providing this string at the strategy configuration field,
|
|
in your chosen config file.</p>
|
|
<h3 id="encoding-a-string-as-base64">Encoding a string as BASE64<a class="headerlink" href="#encoding-a-string-as-base64" title="Permanent link">¶</a></h3>
|
|
<p>This is a quick example, how to generate the BASE64 string in python</p>
|
|
<div class="highlight"><pre><span></span><code><span class="kn">from</span> <span class="nn">base64</span> <span class="kn">import</span> <span class="n">urlsafe_b64encode</span>
|
|
|
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
|
<span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
|
<span class="n">content</span> <span class="o">=</span> <span class="n">urlsafe_b64encode</span><span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span>
|
|
</code></pre></div>
|
|
<p>The variable 'content', will contain the strategy file in a BASE64 encoded form. Which can now be set in your configurations file as following</p>
|
|
<div class="highlight"><pre><span></span><code><span class="nt">"strategy"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NameOfStrategy:BASE64String"</span>
|
|
</code></pre></div>
|
|
<p>Please ensure that 'NameOfStrategy' is identical to the strategy name!</p>
|
|
<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>
|
|
|
|
|
|
</body>
|
|
</html> |