2814 lines
71 KiB
HTML
2814 lines
71 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">
|
|
|
|
<meta name="description" content="Freqtrade is a free and open source crypto trading bot written in Python, designed to support all major exchanges and be controlled via Telegram or builtin Web UI">
|
|
|
|
|
|
|
|
<link rel="canonical" href="https://www.freqtrade.io/en/stable/rest-api/">
|
|
|
|
|
|
<link rel="prev" href="../freq-ui/">
|
|
|
|
|
|
<link rel="next" href="../webhook-config/">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="../images/logo.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
|
|
|
|
|
|
|
|
<title>REST API - Freqtrade</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-VH170LG9M5"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-VH170LG9M5",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-VH170LG9M5",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
|
|
|
|
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</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="#rest-api" 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 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></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">
|
|
|
|
REST API
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="tear" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4M7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="blue-grey" data-md-color-accent="tear" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<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.52 6.52 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 5"/></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.52 6.52 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 5"/></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 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
|
|
</a>
|
|
|
|
<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 12z"/></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>
|
|
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/freqtrade/freqtrade" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</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">
|
|
|
|
|
|
<!-- Main navigation -->
|
|
|
|
|
|
<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>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/freqtrade/freqtrade" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href=".." class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Home
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../docker_quickstart/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Quickstart with Docker
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../installation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Installation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../bot-basics/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Freqtrade Basics
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../configuration/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Configuration
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../strategy-101/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Strategy Quickstart
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</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="../strategy-callbacks/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Strategy Callbacks
|
|
|
|
|
|
|
|
</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="../plugins/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Plugins
|
|
|
|
|
|
|
|
</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--active md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_12" id="__nav_12_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_12_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_12">
|
|
<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="../freq-ui/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
freqUI
|
|
|
|
|
|
|
|
</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">
|
|
|
|
|
|
REST API
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
REST API
|
|
|
|
|
|
|
|
</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="#frequi" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
FreqUI
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Configuration">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#security" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Security
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration-with-docker" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration with docker
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#rest-api_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Rest API
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Rest API">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#consuming-the-api" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Consuming the API
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Consuming the API">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#minimalistic-client-config" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Minimalistic client config
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../webhook-config/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Web Hook
|
|
|
|
|
|
|
|
</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 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">
|
|
|
|
|
|
FreqAI
|
|
|
|
|
|
|
|
</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>
|
|
|
|
|
|
FreqAI
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Introduction
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-configuration/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Configuration
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-parameter-table/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Parameter table
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-feature-engineering/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Feature engineering
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-running/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Running FreqAI
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-reinforcement-learning/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Reinforcement Learning
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../freqai-developers/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Developer guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../leverage/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Short / Leverage
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../utils/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Utility Sub-commands
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../plotting/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Plotting
|
|
|
|
|
|
|
|
</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 md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_21" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_21" id="__nav_21_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_21_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_21">
|
|
<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="../advanced-backtesting/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Backtest analysis
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_22" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_22" id="__nav_22_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Advanced Topics
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_22_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_22">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Advanced Topics
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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="../trade-object/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Trade Object
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../lookahead-analysis/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Lookahead analysis
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../recursive-analysis/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Recursive analysis
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../strategy-advanced/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Advanced Strategy
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../advanced-hyperopt/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Advanced Hyperopt
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../advanced-orderflow/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Orderflow
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../producer-consumer/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Producer/Consumer mode
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../sql_cheatsheet/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
SQL Cheat-sheet
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</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">
|
|
<a href="../strategy_migration/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Strategy migration
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../updating/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Updating Freqtrade
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../deprecated/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Deprecated Features
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../developer/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Contributors Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Table of contents -->
|
|
|
|
|
|
<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="#frequi" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
FreqUI
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Configuration">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#security" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Security
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#configuration-with-docker" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Configuration with docker
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#rest-api_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Rest API
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Rest API">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#consuming-the-api" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Consuming the API
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Consuming the API">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#minimalistic-client-config" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Minimalistic client config
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/freqtrade/freqtrade/edit/develop/docs/rest-api.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<h1 id="rest-api">REST API<a class="headerlink" href="#rest-api" title="Permanent link">¶</a></h1>
|
|
<h2 id="frequi">FreqUI<a class="headerlink" href="#frequi" title="Permanent link">¶</a></h2>
|
|
<p>FreqUI now has it's own dedicated <a href="../freq-ui/">documentation section</a> - please refer to that section for all information regarding the FreqUI.</p>
|
|
<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">¶</a></h2>
|
|
<p>Enable the rest API by adding the api_server section to your configuration and setting <code>api_server.enabled</code> to <code>true</code>.</p>
|
|
<p>Sample configuration:</p>
|
|
<p><code>json
|
|
"api_server": {
|
|
"enabled": true,
|
|
"listen_ip_address": "127.0.0.1",
|
|
"listen_port": 8080,
|
|
"verbosity": "error",
|
|
"enable_openapi": false,
|
|
"jwt_secret_key": "somethingRandomSomethingRandom123",
|
|
"CORS_origins": [],
|
|
"username": "Freqtrader",
|
|
"password": "SuperSecret1!",
|
|
"ws_token": "sercet_Ws_t0ken"
|
|
},</code></p>
|
|
<div class="admonition danger">
|
|
<p class="admonition-title">Security warning</p>
|
|
<p>By default, the configuration listens on localhost only (so it's not reachable from other systems). We strongly recommend to not expose this API to the internet and choose a strong, unique password, since others will potentially be able to control your bot.</p>
|
|
</div>
|
|
<details class="note">
|
|
<summary>API/UI Access on a remote servers</summary>
|
|
<p>If you're running on a VPS, you should consider using either a ssh tunnel, or setup a VPN (openVPN, wireguard) to connect to your bot.
|
|
This will ensure that freqUI is not directly exposed to the internet, which is not recommended for security reasons (freqUI does not support https out of the box).
|
|
Setup of these tools is not part of this tutorial, however many good tutorials can be found on the internet.</p>
|
|
</details>
|
|
<p>You can then access the API by going to <code>http://127.0.0.1:8080/api/v1/ping</code> in a browser to check if the API is running correctly.
|
|
This should return the response:</p>
|
|
<p><code>output
|
|
{"status":"pong"}</code></p>
|
|
<p>All other endpoints return sensitive info and require authentication and are therefore not available through a web browser.</p>
|
|
<h3 id="security">Security<a class="headerlink" href="#security" title="Permanent link">¶</a></h3>
|
|
<p>To generate a secure password, best use a password manager, or use the below code.</p>
|
|
<p><code>python
|
|
import secrets
|
|
secrets.token_hex()</code></p>
|
|
<div class="admonition hint">
|
|
<p class="admonition-title">JWT token</p>
|
|
<p>Use the same method to also generate a JWT secret key (<code>jwt_secret_key</code>).</p>
|
|
</div>
|
|
<div class="admonition danger">
|
|
<p class="admonition-title">Password selection</p>
|
|
<p>Please make sure to select a very strong, unique password to protect your bot from unauthorized access.
|
|
Also change <code>jwt_secret_key</code> to something random (no need to remember this, but it'll be used to encrypt your session, so it better be something unique!). This value should also be 32 characters or longer to be safe.</p>
|
|
</div>
|
|
<h3 id="configuration-with-docker">Configuration with docker<a class="headerlink" href="#configuration-with-docker" title="Permanent link">¶</a></h3>
|
|
<p>If you run your bot using docker, you'll need to have the bot listen to incoming connections. The security is then handled by docker.</p>
|
|
<p><code>json
|
|
"api_server": {
|
|
"enabled": true,
|
|
"listen_ip_address": "0.0.0.0",
|
|
"listen_port": 8080,
|
|
"username": "Freqtrader",
|
|
"password": "SuperSecret1!",
|
|
//...
|
|
},</code></p>
|
|
<p>Make sure that the following 2 lines are available in your docker-compose file:</p>
|
|
<p><code>yml
|
|
ports:
|
|
- "127.0.0.1:8080:8080"</code></p>
|
|
<div class="admonition danger">
|
|
<p class="admonition-title">Security warning</p>
|
|
<p>By using <code>"8080:8080"</code> (or <code>"0.0.0.0:8080:8080"</code>) in the docker port mapping, the API will be available to everyone connecting to the server under the correct port, so others may be able to control your bot.
|
|
This <strong>may</strong> be safe if you're running the bot in a secure environment (like your home network), but it's not recommended to expose the API to the internet.</p>
|
|
</div>
|
|
<h2 id="rest-api_1">Rest API<a class="headerlink" href="#rest-api_1" title="Permanent link">¶</a></h2>
|
|
<h3 id="consuming-the-api">Consuming the API<a class="headerlink" href="#consuming-the-api" title="Permanent link">¶</a></h3>
|
|
<p>We advise consuming the API by using the supported <code>freqtrade-client</code> package (also available as <code>scripts/rest_client.py</code>).</p>
|
|
<p>This command can be installed independent of any running freqtrade bot by using <code>pip install freqtrade-client</code>.</p>
|
|
<p>This module is designed to be lightweight, and only depends on the <code>requests</code> and <code>python-rapidjson</code> modules, skipping all heavy dependencies freqtrade otherwise needs.</p>
|
|
<p><code>bash
|
|
freqtrade-client <command> [optional parameters]</code></p>
|
|
<p>By default, the script assumes <code>127.0.0.1</code> (localhost) and port <code>8080</code> to be used, however you can specify a configuration file to override this behaviour.</p>
|
|
<h4 id="minimalistic-client-config">Minimalistic client config<a class="headerlink" href="#minimalistic-client-config" title="Permanent link">¶</a></h4>
|
|
<p><code>json
|
|
{
|
|
"api_server": {
|
|
"enabled": true,
|
|
"listen_ip_address": "0.0.0.0",
|
|
"listen_port": 8080,
|
|
"username": "Freqtrader",
|
|
"password": "SuperSecret1!",
|
|
//...
|
|
}
|
|
}</code></p>
|
|
<p><code>bash
|
|
freqtrade-client --config rest_config.json <command> [optional parameters]</code></p>
|
|
<p>Commands with many arguments may require keyword arguments (for clarity) - which can be provided as follows:</p>
|
|
<p><code>bash
|
|
freqtrade-client --config rest_config.json forceenter BTC/USDT long enter_tag=GutFeeling</code></p>
|
|
<p>This method will work for all arguments - check the "show" command for a list of available parameters.</p>
|
|
<details class="note">
|
|
<summary>Programmatic use</summary>
|
|
<p>The <code>freqtrade-client</code> package (installable independent of freqtrade) can be used in your own scripts to interact with the freqtrade API.
|
|
to do so, please use the following:</p>
|
|
<p>``` python
|
|
from freqtrade_client import FtRestClient</p>
|
|
<p>client = FtRestClient(server_url, username, password)</p>
|
|
<h1 id="get-the-status-of-the-bot">Get the status of the bot<a class="headerlink" href="#get-the-status-of-the-bot" title="Permanent link">¶</a></h1>
|
|
<p>ping = client.ping()
|
|
print(ping)</p>
|
|
<h1 id="add-pairs-to-blacklist">Add pairs to blacklist<a class="headerlink" href="#add-pairs-to-blacklist" title="Permanent link">¶</a></h1>
|
|
<p>client.blacklist("BTC/USDT", "ETH/USDT")</p>
|
|
<h1 id="add-pairs-to-blacklist-by-supplying-a-list">Add pairs to blacklist by supplying a list<a class="headerlink" href="#add-pairs-to-blacklist-by-supplying-a-list" title="Permanent link">¶</a></h1>
|
|
<p>client.blacklist(*listPairs)</p>
|
|
<h1 id="_1">...<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1>
|
|
<p>```</p>
|
|
<p>For a full list of available commands, please refer to the list below.</p>
|
|
</details>
|
|
<h4 id="freqtrade-client-available-commands">Freqtrade client- available commands<a class="headerlink" href="#freqtrade-client-available-commands" title="Permanent link">¶</a></h4>
|
|
<p>Possible commands can be listed from the rest-client script using the <code>help</code> command.</p>
|
|
<p><code>bash
|
|
freqtrade-client help</code></p>
|
|
<p>``` output
|
|
Possible commands:</p>
|
|
<p>available_pairs
|
|
Return available pair (backtest data) based on timeframe / stake_currency selection</p>
|
|
<p>:param timeframe: Only pairs with this timeframe available.
|
|
:param stake_currency: Only pairs that include this stake currency.</p>
|
|
<p>balance
|
|
Get the account balance.</p>
|
|
<p>blacklist
|
|
Show the current blacklist.</p>
|
|
<p>:param add: List of coins to add (example: "BNB/BTC")</p>
|
|
<p>cancel_open_order
|
|
Cancel open order for trade.</p>
|
|
<p>:param trade_id: Cancels open orders for this trade.</p>
|
|
<p>count
|
|
Return the amount of open trades.</p>
|
|
<p>daily
|
|
Return the profits for each day, and amount of trades.</p>
|
|
<p>delete_lock
|
|
Delete (disable) lock from the database.</p>
|
|
<p>:param lock_id: ID for the lock to delete</p>
|
|
<p>delete_trade
|
|
Delete trade from the database.
|
|
Tries to close open orders. Requires manual handling of this asset on the exchange.</p>
|
|
<p>:param trade_id: Deletes the trade with this ID from the database.</p>
|
|
<p>entries
|
|
Returns List of dicts containing all Trades, based on buy tag performance
|
|
Can either be average for all pairs or a specific pair provided</p>
|
|
<p>exits
|
|
Returns List of dicts containing all Trades, based on exit reason performance
|
|
Can either be average for all pairs or a specific pair provided</p>
|
|
<p>forcebuy
|
|
Buy an asset.</p>
|
|
<p>:param pair: Pair to buy (ETH/BTC)
|
|
:param price: Optional - price to buy</p>
|
|
<p>forceenter
|
|
Force entering a trade</p>
|
|
<p>:param pair: Pair to buy (ETH/BTC)
|
|
:param side: 'long' or 'short'
|
|
:param price: Optional - price to buy
|
|
:param order_type: Optional keyword argument - 'limit' or 'market'
|
|
:param stake_amount: Optional keyword argument - stake amount (as float)
|
|
:param leverage: Optional keyword argument - leverage (as float)
|
|
:param enter_tag: Optional keyword argument - entry tag (as string, default: 'force_enter')</p>
|
|
<p>forceexit
|
|
Force-exit a trade.</p>
|
|
<p>:param tradeid: Id of the trade (can be received via status command)
|
|
:param ordertype: Order type to use (must be market or limit)
|
|
:param amount: Amount to sell. Full sell if not given</p>
|
|
<p>health
|
|
Provides a quick health check of the running bot.</p>
|
|
<p>list_custom_data
|
|
List custom-data of the running bot for a specific trade.</p>
|
|
<p>:param trade_id: ID of the trade
|
|
:param key: str, optional - Key of the custom-data</p>
|
|
<p>list_open_trades_custom_data
|
|
List open trades custom-data of the running bot.</p>
|
|
<p>:param key: str, optional - Key of the custom-data
|
|
:param limit: limit of trades
|
|
:param offset: trades offset for pagination</p>
|
|
<p>lock_add
|
|
Lock pair</p>
|
|
<p>:param pair: Pair to lock
|
|
:param until: Lock until this date (format "2024-03-30 16:00:00Z")
|
|
:param side: Side to lock (long, short, *)
|
|
:param reason: Reason for the lock</p>
|
|
<p>locks
|
|
Return current locks</p>
|
|
<p>logs
|
|
Show latest logs.</p>
|
|
<p>:param limit: Limits log messages to the last <limit> logs. No limit to get the entire log.</p>
|
|
<p>mix_tags
|
|
Returns List of dicts containing all Trades, based on entry_tag + exit_reason performance
|
|
Can either be average for all pairs or a specific pair provided</p>
|
|
<p>monthly
|
|
Return the profits for each month, and amount of trades.</p>
|
|
<p>pair_candles
|
|
Return live dataframe for <pair><timeframe>.</p>
|
|
<p>:param pair: Pair to get data for
|
|
:param timeframe: Only pairs with this timeframe available.
|
|
:param limit: Limit result to the last n candles.
|
|
:param columns: List of dataframe columns to return. Empty list will return OHLCV.</p>
|
|
<p>pair_history
|
|
Return historic, analyzed dataframe</p>
|
|
<p>:param pair: Pair to get data for
|
|
:param timeframe: Only pairs with this timeframe available.
|
|
:param strategy: Strategy to analyze and get values for
|
|
:param freqaimodel: FreqAI model to use for analysis
|
|
:param timerange: Timerange to get data for (same format than --timerange endpoints)</p>
|
|
<p>pairlists_available
|
|
Lists available pairlist providers</p>
|
|
<p>performance
|
|
Return the performance of the different coins.</p>
|
|
<p>ping
|
|
simple ping</p>
|
|
<p>plot_config
|
|
Return plot configuration if the strategy defines one.</p>
|
|
<p>profit
|
|
Return the profit summary.</p>
|
|
<p>reload_config
|
|
Reload configuration.</p>
|
|
<p>show_config
|
|
Returns part of the configuration, relevant for trading operations.</p>
|
|
<p>start
|
|
Start the bot if it's in the stopped state.</p>
|
|
<p>stats
|
|
Return the stats report (durations, sell-reasons).</p>
|
|
<p>status
|
|
Get the status of open trades.</p>
|
|
<p>stop
|
|
Stop the bot. Use <code>start</code> to restart.</p>
|
|
<p>stopbuy
|
|
Stop buying (but handle sells gracefully). Use <code>reload_config</code> to reset.</p>
|
|
<p>strategies
|
|
Lists available strategies</p>
|
|
<p>strategy
|
|
Get strategy details</p>
|
|
<p>:param strategy: Strategy class name</p>
|
|
<p>sysinfo
|
|
Provides system information (CPU, RAM usage)</p>
|
|
<p>trade
|
|
Return specific trade</p>
|
|
<p>:param trade_id: Specify which trade to get.</p>
|
|
<p>trades
|
|
Return trades history, sorted by id (or by latest timestamp if order_by_id=False)</p>
|
|
<p>:param limit: Limits trades to the X last trades. Max 500 trades.
|
|
:param offset: Offset by this amount of trades.
|
|
:param order_by_id: Sort trades by id (default: True). If False, sorts by latest timestamp.</p>
|
|
<p>version
|
|
Return the version of the bot.</p>
|
|
<p>weekly
|
|
Return the profits for each week, and amount of trades.</p>
|
|
<p>whitelist
|
|
Show the current whitelist.</p>
|
|
<p>```</p>
|
|
<h3 id="available-endpoints">Available endpoints<a class="headerlink" href="#available-endpoints" title="Permanent link">¶</a></h3>
|
|
<p>If you wish to call the REST API manually via another route, e.g. directly via <code>curl</code>, the table below shows the relevant URL endpoints and parameters.
|
|
All endpoints in the below table need to be prefixed with the base URL of the API, e.g. <code>http://127.0.0.1:8080/api/v1/</code> - so the command becomes <code>http://127.0.0.1:8080/api/v1/<command></code>.</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Endpoint</th>
|
|
<th>Method</th>
|
|
<th>Description / Parameters</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>/ping</code></td>
|
|
<td>GET</td>
|
|
<td>Simple command testing the API Readiness - requires no authentication.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/start</code></td>
|
|
<td>POST</td>
|
|
<td>Starts the trader.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/pause</code></td>
|
|
<td>POST</td>
|
|
<td>Pause the trader. Gracefully handle open trades according to their rules. Do not enter new positions.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/stop</code></td>
|
|
<td>POST</td>
|
|
<td>Stops the trader.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/stopbuy</code></td>
|
|
<td>POST</td>
|
|
<td>Stops the trader from opening new trades. Gracefully closes open trades according to their rules.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/reload_config</code></td>
|
|
<td>POST</td>
|
|
<td>Reloads the configuration file.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/trades</code></td>
|
|
<td>GET</td>
|
|
<td>List last trades. Limited to 500 trades per call.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/trade/<tradeid></code></td>
|
|
<td>GET</td>
|
|
<td>Get specific trade.<br/><em>Params:</em><br/>- <code>tradeid</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/trades/<tradeid></code></td>
|
|
<td>DELETE</td>
|
|
<td>Remove trade from the database. Tries to close open orders. Requires manual handling of this trade on the exchange.<br/><em>Params:</em><br/>- <code>tradeid</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/trades/<tradeid>/open-order</code></td>
|
|
<td>DELETE</td>
|
|
<td>Cancel open order for this trade.<br/><em>Params:</em><br/>- <code>tradeid</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/trades/<tradeid>/reload</code></td>
|
|
<td>POST</td>
|
|
<td>Reload a trade from the Exchange. Only works in live, and can potentially help recover a trade that was manually sold on the exchange.<br/><em>Params:</em><br/>- <code>tradeid</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/show_config</code></td>
|
|
<td>GET</td>
|
|
<td>Shows part of the current configuration with relevant settings to operation.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/logs</code></td>
|
|
<td>GET</td>
|
|
<td>Shows last log messages.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/status</code></td>
|
|
<td>GET</td>
|
|
<td>Lists all open trades.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/count</code></td>
|
|
<td>GET</td>
|
|
<td>Displays number of trades used and available.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/entries</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit statistics for each enter tags for given pair (or all pairs if pair isn't given). Pair is optional.<br/><em>Params:</em><br/>- <code>pair</code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/exits</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit statistics for each exit reasons for given pair (or all pairs if pair isn't given). Pair is optional.<br/><em>Params:</em><br/>- <code>pair</code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/mix_tags</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit statistics for each combinations of enter tag + exit reasons for given pair (or all pairs if pair isn't given). Pair is optional.<br/><em>Params:</em><br/>- <code>pair</code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/locks</code></td>
|
|
<td>GET</td>
|
|
<td>Displays currently locked pairs.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/locks</code></td>
|
|
<td>POST</td>
|
|
<td>Locks a pair until "until". (Until will be rounded up to the nearest timeframe). Side is optional and is either <code>long</code> or <code>short</code> (default is <code>long</code>). Reason is optional.<br/><em>Params:</em><br/>- <code><pair></code> (<code>str</code>)<br/>- <code><until></code> (<code>datetime</code>)<br/>- <code>[side]</code> (<code>str</code>)<br/>- <code>[reason]</code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/locks/<lockid></code></td>
|
|
<td>DELETE</td>
|
|
<td>Deletes (disables) the lock by id.<br/><em>Params:</em><br/>- <code>lockid</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/profit</code></td>
|
|
<td>GET</td>
|
|
<td>Display a summary of your profit/loss from close trades and some stats about your performance.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/forceexit</code></td>
|
|
<td>POST</td>
|
|
<td>Instantly exits the given trade (ignoring <code>minimum_roi</code>), using the given order type ("market" or "limit", uses your config setting if not specified), and the chosen amount (full sell if not specified). If <code>all</code> is supplied as the <code>tradeid</code>, then all currently open trades will be forced to exit.<br/><em>Params:</em><br/>- <code><tradeid></code> (<code>int</code> or <code>str</code>)<br/>- <code><ordertype></code> (<code>str</code>)<br/>- <code>[amount]</code> (<code>float</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/forceenter</code></td>
|
|
<td>POST</td>
|
|
<td>Instantly enters the given pair. Side is optional and is either <code>long</code> or <code>short</code> (default is <code>long</code>). Price, stake amount, entry tag and leverage are optional. Order type is optional and is either <code>market</code> or <code>long</code> (default using the value set in config). (<code>force_entry_enable</code> must be set to True)<br/><em>Params:</em><br/>- <code><pair></code> (<code>str</code>)<br/>- <code><side></code> (<code>str</code>)<br/>- <code>[price]</code> (<code>float</code>)<br/>- <code>[ordertype]</code> (<code>str</code>)<br/>- <code>[stakeamount]</code> (<code>float</code>)<br/>- <code>[entry_tag]</code> (<code>str</code>)<br/>- <code>[leverage]</code> (<code>float</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/performance</code></td>
|
|
<td>GET</td>
|
|
<td>Show performance of each finished trade grouped by pair.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/balance</code></td>
|
|
<td>GET</td>
|
|
<td>Show account balance per currency.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/daily</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit or loss per day, over the last n days (n defaults to 7).<br/><em>Params:</em><br/>- <code>timescale</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/weekly</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit or loss per week, over the last n days (n defaults to 4).<br/><em>Params:</em><br/>- <code>timescale</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/monthly</code></td>
|
|
<td>GET</td>
|
|
<td>Shows profit or loss per month, over the last n days (n defaults to 3).<br/><em>Params:</em><br/>- <code>timescale</code> (<code>int</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/stats</code></td>
|
|
<td>GET</td>
|
|
<td>Display a summary of profit / loss reasons as well as average holding times.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/whitelist</code></td>
|
|
<td>GET</td>
|
|
<td>Show the current whitelist.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/blacklist</code></td>
|
|
<td>GET</td>
|
|
<td>Show the current blacklist.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/blacklist</code></td>
|
|
<td>POST</td>
|
|
<td>Adds the specified pair to the blacklist.<br/><em>Params:</em><br/>- <code>blacklist</code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/blacklist</code></td>
|
|
<td>DELETE</td>
|
|
<td>Deletes the specified list of pairs from the blacklist.<br/><em>Params:</em><br/>- <code>[pair,pair]</code> (<code>list[str]</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/pair_candles</code></td>
|
|
<td>GET</td>
|
|
<td>Returns dataframe for a pair / timeframe combination while the bot is running. <strong>Alpha</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/pair_candles</code></td>
|
|
<td>POST</td>
|
|
<td>Returns dataframe for a pair / timeframe combination while the bot is running, filtered by a provided list of columns to return. <strong>Alpha</strong><br/><em>Params:</em><br/>- <code><column_list></code> (<code>list[str]</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/pair_history</code></td>
|
|
<td>GET</td>
|
|
<td>Returns an analyzed dataframe for a given timerange, analyzed by a given strategy. <strong>Alpha</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/pair_history</code></td>
|
|
<td>POST</td>
|
|
<td>Returns an analyzed dataframe for a given timerange, analyzed by a given strategy, filtered by a provided list of columns to return. <strong>Alpha</strong><br/><em>Params:</em><br/>- <code><column_list></code> (<code>list[str]</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/plot_config</code></td>
|
|
<td>GET</td>
|
|
<td>Get plot config from the strategy (or nothing if not configured). <strong>Alpha</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/strategies</code></td>
|
|
<td>GET</td>
|
|
<td>List strategies in strategy directory. <strong>Alpha</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/strategy/<strategy></code></td>
|
|
<td>GET</td>
|
|
<td>Get specific Strategy content by strategy class name. <strong>Alpha</strong><br/><em>Params:</em><br/>- <code><strategy></code> (<code>str</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/available_pairs</code></td>
|
|
<td>GET</td>
|
|
<td>List available backtest data. <strong>Alpha</strong></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/version</code></td>
|
|
<td>GET</td>
|
|
<td>Show version.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/sysinfo</code></td>
|
|
<td>GET</td>
|
|
<td>Show information about the system load.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/health</code></td>
|
|
<td>GET</td>
|
|
<td>Show bot health (last bot loop).</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="admonition warning">
|
|
<p class="admonition-title">Alpha status</p>
|
|
<p>Endpoints labeled with <em>Alpha status</em> above may change at any time without notice.</p>
|
|
</div>
|
|
<h3 id="message-websocket">Message WebSocket<a class="headerlink" href="#message-websocket" title="Permanent link">¶</a></h3>
|
|
<p>The API Server includes a websocket endpoint for subscribing to RPC messages from the freqtrade Bot.
|
|
This can be used to consume real-time data from your bot, such as entry/exit fill messages, whitelist changes, populated indicators for pairs, and more.</p>
|
|
<p>This is also used to setup <a href="../producer-consumer/">Producer/Consumer mode</a> in Freqtrade.</p>
|
|
<p>Assuming your rest API is set to <code>127.0.0.1</code> on port <code>8080</code>, the endpoint is available at <code>http://localhost:8080/api/v1/message/ws</code>.</p>
|
|
<p>To access the websocket endpoint, the <code>ws_token</code> is required as a query parameter in the endpoint URL.</p>
|
|
<p>To generate a safe <code>ws_token</code> you can run the following code:</p>
|
|
<p>``` python</p>
|
|
<blockquote>
|
|
<blockquote>
|
|
<blockquote>
|
|
<p>import secrets
|
|
secrets.token_urlsafe(25)
|
|
'hZ-y58LXyX_HZ8O1cJzVyN6ePWrLpNQv4Q'
|
|
```</p>
|
|
</blockquote>
|
|
</blockquote>
|
|
</blockquote>
|
|
<p>You would then add that token under <code>ws_token</code> in your <code>api_server</code> config. Like so:</p>
|
|
<p><code>json
|
|
"api_server": {
|
|
"enabled": true,
|
|
"listen_ip_address": "127.0.0.1",
|
|
"listen_port": 8080,
|
|
"verbosity": "error",
|
|
"enable_openapi": false,
|
|
"jwt_secret_key": "somethingRandomSomethingRandom123",
|
|
"CORS_origins": [],
|
|
"username": "Freqtrader",
|
|
"password": "SuperSecret1!",
|
|
"ws_token": "hZ-y58LXyX_HZ8O1cJzVyN6ePWrLpNQv4Q" // <-----
|
|
},</code></p>
|
|
<p>You can now connect to the endpoint at <code>http://localhost:8080/api/v1/message/ws?token=hZ-y58LXyX_HZ8O1cJzVyN6ePWrLpNQv4Q</code>.</p>
|
|
<div class="admonition danger">
|
|
<p class="admonition-title">Reuse of example tokens</p>
|
|
<p>Please do not use the above example token. To make sure you are secure, generate a completely new token.</p>
|
|
</div>
|
|
<h4 id="using-the-websocket">Using the WebSocket<a class="headerlink" href="#using-the-websocket" title="Permanent link">¶</a></h4>
|
|
<p>Once connected to the WebSocket, the bot will broadcast RPC messages to anyone who is subscribed to them. To subscribe to a list of messages, you must send a JSON request through the WebSocket like the one below. The <code>data</code> key must be a list of message type strings.</p>
|
|
<p><code>json
|
|
{
|
|
"type": "subscribe",
|
|
"data": ["whitelist", "analyzed_df"] // A list of string message types
|
|
}</code></p>
|
|
<p>For a list of message types, please refer to the RPCMessageType enum in <code>freqtrade/enums/rpcmessagetype.py</code></p>
|
|
<p>Now anytime those types of RPC messages are sent in the bot, you will receive them through the WebSocket as long as the connection is active. They typically take the same form as the request:</p>
|
|
<p><code>json
|
|
{
|
|
"type": "analyzed_df",
|
|
"data": {
|
|
"key": ["NEO/BTC", "5m", "spot"],
|
|
"df": {}, // The dataframe
|
|
"la": "2022-09-08 22:14:41.457786+00:00"
|
|
}
|
|
}</code></p>
|
|
<h4 id="reverse-proxy-setup">Reverse Proxy setup<a class="headerlink" href="#reverse-proxy-setup" title="Permanent link">¶</a></h4>
|
|
<p>When using <a href="https://nginx.org/en/docs/">Nginx</a>, the following configuration is required for WebSockets to work (Note this configuration is incomplete, it's missing some information and can not be used as is):</p>
|
|
<p>Please make sure to replace <code><freqtrade_listen_ip></code> (and the subsequent port) with the IP and Port matching your configuration/setup.</p>
|
|
<p>```
|
|
http {
|
|
map $http_upgrade $connection_upgrade {
|
|
default upgrade;
|
|
'' close;
|
|
}</p>
|
|
<div class="codehilite"><pre><span></span><code>#...
|
|
|
|
server {
|
|
#...
|
|
|
|
location / {
|
|
proxy_http_version 1.1;
|
|
proxy_pass http://<freqtrade_listen_ip>:8080;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection $connection_upgrade;
|
|
proxy_set_header Host $host;
|
|
}
|
|
}
|
|
</code></pre></div>
|
|
|
|
<p>}
|
|
```</p>
|
|
<p>To properly configure your reverse proxy (securely), please consult it's documentation for proxying websockets.</p>
|
|
<ul>
|
|
<li><strong>Traefik</strong>: Traefik supports websockets out of the box, see the <a href="https://doc.traefik.io/traefik/">documentation</a></li>
|
|
<li><strong>Caddy</strong>: Caddy v2 supports websockets out of the box, see the <a href="https://caddyserver.com/docs/v2-upgrade#proxy">documentation</a></li>
|
|
</ul>
|
|
<div class="admonition tip">
|
|
<p class="admonition-title">SSL certificates</p>
|
|
<p>You can use tools like certbot to setup ssl certificates to access your bot's UI through encrypted connection by using any of the above reverse proxies.
|
|
While this will protect your data in transit, we do not recommend to run the freqtrade API outside of your private network (VPN, SSH tunnel).</p>
|
|
</div>
|
|
<h3 id="openapi-interface">OpenAPI interface<a class="headerlink" href="#openapi-interface" title="Permanent link">¶</a></h3>
|
|
<p>To enable the builtin openAPI interface (Swagger UI), specify <code>"enable_openapi": true</code> in the api_server configuration.
|
|
This will enable the Swagger UI at the <code>/docs</code> endpoint. By default, that's running at <a href="http://localhost:8080/docs">http://localhost:8080/docs</a> - but it'll depend on your settings.</p>
|
|
<h3 id="advanced-api-usage-using-jwt-tokens">Advanced API usage using JWT tokens<a class="headerlink" href="#advanced-api-usage-using-jwt-tokens" title="Permanent link">¶</a></h3>
|
|
<div class="admonition note">
|
|
<p class="admonition-title">Note</p>
|
|
<p>The below should be done in an application (a Freqtrade REST API client, which fetches info via API), and is not intended to be used on a regular basis.</p>
|
|
</div>
|
|
<p>Freqtrade's REST API also offers JWT (JSON Web Tokens).
|
|
You can login using the following command, and subsequently use the resulting access_token.</p>
|
|
<p>``` bash</p>
|
|
<blockquote>
|
|
<p _access_token_:_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk2ODEsIm5iZiI6MTU4OTExOTY4MSwianRpIjoiMmEwYmY0NWUtMjhmOS00YTUzLTlmNzItMmM5ZWVlYThkNzc2IiwiZXhwIjoxNTg5MTIwNTgxLCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.qt6MAXYIa-l556OM7arBvYJ0SDI9J8bIk3_glDujF5g_refresh_token_:_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk2ODEsIm5iZiI6MTU4OTExOTY4MSwianRpIjoiZWQ1ZWI3YjAtYjMwMy00YzAyLTg2N2MtNWViMjIxNWQ2YTMxIiwiZXhwIjoxNTkxNzExNjgxLCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJ0eXBlIjoicmVmcmVzaCJ9.d1AT_jYICyTAjD0fiQAr52rkRqtxCjUGEMwlNuuzgNQ_=""access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk2ODEsIm5iZiI6MTU4OTExOTY4MSwianRpIjoiMmEwYmY0NWUtMjhmOS00YTUzLTlmNzItMmM5ZWVlYThkNzc2IiwiZXhwIjoxNTg5MTIwNTgxLCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.qt6MAXYIa-l556OM7arBvYJ0SDI9J8bIk3_glDujF5g","refresh_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk2ODEsIm5iZiI6MTU4OTExOTY4MSwianRpIjoiZWQ1ZWI3YjAtYjMwMy00YzAyLTg2N2MtNWViMjIxNWQ2YTMxIiwiZXhwIjoxNTkxNzExNjgxLCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJ0eXBlIjoicmVmcmVzaCJ9.d1AT_jYICyTAjD0fiQAr52rkRqtxCjUGEMwlNuuzgNQ"">curl -X POST --user Freqtrader <a href="http://localhost:8080/api/v1/token/login">http://localhost:8080/api/v1/token/login</a></p>
|
|
<p>access_token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk2ODEsIm5iZiI6MTU4OTExOTY4MSwianRpIjoiMmEwYmY0NWUtMjhmOS00YTUzLTlmNzItMmM5ZWVlYThkNzc2IiwiZXhwIjoxNTg5MTIwNTgxLCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.qt6MAXYIa-l556OM7arBvYJ0SDI9J8bIk3_glDujF5g"</p>
|
|
</blockquote>
|
|
<h1 id="use-access_token-for-authentication">Use access_token for authentication<a class="headerlink" href="#use-access_token-for-authentication" title="Permanent link">¶</a></h1>
|
|
<blockquote>
|
|
<p>curl -X GET --header "Authorization: Bearer ${access_token}" <a href="http://localhost:8080/api/v1/count">http://localhost:8080/api/v1/count</a></p>
|
|
</blockquote>
|
|
<p>```</p>
|
|
<p>Since the access token has a short timeout (15 min) - the <code>token/refresh</code> request should be used periodically to get a fresh access token:</p>
|
|
<p>``` bash</p>
|
|
<blockquote>
|
|
<p>curl -X POST --header "Authorization: Bearer ${refresh_token}"<a href="http://localhost:8080/api/v1/token/refresh">http://localhost:8080/api/v1/token/refresh</a>
|
|
{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODkxMTk5NzQsIm5iZiI6MTU4OTExOTk3NCwianRpIjoiMDBjNTlhMWUtMjBmYS00ZTk0LTliZjAtNWQwNTg2MTdiZDIyIiwiZXhwIjoxNTg5MTIwODc0LCJpZGVudGl0eSI6eyJ1IjoiRnJlcXRyYWRlciJ9LCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.1seHlII3WprjjclY6DpRhen0rqdF4j6jbvxIhUFaSbs"}
|
|
```</p>
|
|
</blockquote>
|
|
<h2 id="cors">CORS<a class="headerlink" href="#cors" title="Permanent link">¶</a></h2>
|
|
<p>This whole section is only necessary in cross-origin cases (where you multiple bot API's running on <code>localhost:8081</code>, <code>localhost:8082</code>, ...), and want to combine them into one FreqUI instance.</p>
|
|
<details class="info">
|
|
<summary>Technical explanation</summary>
|
|
<p>All web-based front-ends are subject to <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a> - Cross-Origin Resource Sharing.
|
|
Since most of the requests to the Freqtrade API must be authenticated, a proper CORS policy is key to avoid security problems.
|
|
Also, the standard disallows <code>*</code> CORS policies for requests with credentials, so this setting must be set appropriately.</p>
|
|
</details>
|
|
<p>Users can allow access from different origin URL's to the bot API via the <code>CORS_origins</code> configuration setting.
|
|
It consists of a list of allowed URL's that are allowed to consume resources from the bot's API.</p>
|
|
<p>Assuming your application is deployed as <code>https://frequi.freqtrade.io/home/</code> - this would mean that the following configuration becomes necessary:</p>
|
|
<p><code>jsonc
|
|
{
|
|
//...
|
|
"jwt_secret_key": "somethingRandomSomethingRandom123",
|
|
"CORS_origins": ["https://frequi.freqtrade.io"],
|
|
//...
|
|
}</code></p>
|
|
<p>In the following (pretty common) case, FreqUI is accessible on <code>http://localhost:8080/trade</code> (this is what you see in your navbar when navigating to freqUI).
|
|
<img alt="freqUI url" src="../assets/frequi_url.png" /></p>
|
|
<p>The correct configuration for this case is <code>http://localhost:8080</code> - the main part of the URL including the port.</p>
|
|
<p><code>jsonc
|
|
{
|
|
//...
|
|
"jwt_secret_key": "somethingRandomSomethingRandom123",
|
|
"CORS_origins": ["http://localhost:8080"],
|
|
//...
|
|
}</code></p>
|
|
<div class="admonition tip">
|
|
<p class="admonition-title">trailing Slash</p>
|
|
<p>The trailing slash is not allowed in the <code>CORS_origins</code> configuration (e.g. <code>"http://localhots:8080/"</code>).
|
|
Such a configuration will not take effect, and the cors errors will remain.</p>
|
|
</div>
|
|
<div class="admonition note">
|
|
<p class="admonition-title">Note</p>
|
|
<p>We strongly recommend to also set <code>jwt_secret_key</code> to something random and known only to yourself to avoid unauthorized access to your bot.</p>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|
Back to top
|
|
</button>
|
|
|
|
</main>
|
|
|
|
|
|
<footer class="md-footer">
|
|
|
|
|
|
|
|
<nav class="md-footer__inner md-grid" aria-label="Footer" >
|
|
|
|
|
|
<a href="../freq-ui/" class="md-footer__link md-footer__link--prev" aria-label="Previous: freqUI">
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<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 11z"/></svg>
|
|
</div>
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Previous
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
freqUI
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="../webhook-config/" class="md-footer__link md-footer__link--next" aria-label="Next: Web Hook">
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Next
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
Web Hook
|
|
</div>
|
|
</div>
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
|
|
</div>
|
|
</a>
|
|
|
|
</nav>
|
|
|
|
|
|
<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>
|
|
|
|
|
|
<!-- Place this tag in your head or just before your close body tag. -->
|
|
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
|
|
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
|
|
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["content.code.annotate", "search.share", "content.code.copy", "content.action.edit", "navigation.top", "navigation.footer"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "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": {"alias": true, "provider": "mike"}}</script>
|
|
|
|
|
|
<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
|
|
|
|
<script src="../javascripts/config.js"></script>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |