2024-08-20 18:13:15 +00:00
<!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" >
2024-10-20 10:36:45 +00:00
< link rel = "canonical" href = "https://www.freqtrade.io/en/stable/telegram-usage/" >
2024-08-20 18:13:15 +00:00
< link rel = "prev" href = "../bot-usage/" >
< link rel = "next" href = "../freq-ui/" >
< link rel = "icon" href = "../images/logo.png" >
2024-11-04 05:27:51 +00:00
< meta name = "generator" content = "mkdocs-1.6.1, mkdocs-material-9.5.43" >
2024-08-20 18:13:15 +00:00
< title > Telegram - Freqtrade< / title >
2024-10-21 05:32:43 +00:00
< link rel = "stylesheet" href = "../assets/stylesheets/main.0253249f.min.css" >
2024-08-20 18:13:15 +00:00
< 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" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
2024-09-04 19:11:37 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
< / 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 = "#telegram-usage" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
2024-08-20 18:20:59 +00:00
< div data-md-color-scheme = "default" data-md-component = "outdated" hidden >
< / div >
2024-08-20 18:13:15 +00:00
< 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" >
2024-09-02 04:57:49 +00:00
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z" / > < / svg >
2024-08-20 18:13:15 +00:00
< / 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" >
Telegram
< / 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 >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
< / 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 >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
< / label >
< / form >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
2024-08-28 18:28:22 +00:00
< label class = "md-header__button md-icon" for = "__search" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-28 18:28:22 +00:00
< / 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" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-28 18:28:22 +00:00
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-28 18:28:22 +00:00
< / 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" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-28 18:28:22 +00:00
< / a >
< button type = "reset" class = "md-search__icon md-icon" title = "Clear" aria-label = "Clear" tabindex = "-1" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-28 18:28:22 +00:00
< / 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 >
2024-08-20 18:13:15 +00:00
< 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" >
2024-09-02 04:57:49 +00:00
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > <!-- ! Font Awesome Free 6.6.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 2024 Fonticons, Inc. --> < path d = "M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81" / > < / svg >
2024-08-20 18:13:15 +00:00
< / 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" >
2024-09-02 04:57:49 +00:00
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > <!-- ! Font Awesome Free 6.6.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 2024 Fonticons, Inc. --> < path d = "M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81" / > < / svg >
2024-08-20 18:13:15 +00:00
< / 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 md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_3" >
< label class = "md-nav__link" for = "__nav_3" id = "__nav_3_label" tabindex = "0" >
< span class = "md-ellipsis" >
Installation
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_3_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_3" >
< span class = "md-nav__icon md-icon" > < / span >
Installation
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../installation/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Linux/MacOS/Raspberry
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../windows_installation/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Windows
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../bot-basics/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Freqtrade Basics
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../configuration/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Configuration
< / span >
< / a >
< / li >
2024-10-21 04:47:18 +00:00
< li class = "md-nav__item" >
< a href = "../strategy-101/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Strategy Quickstart
< / span >
< / a >
< / li >
2024-08-20 18:13:15 +00:00
< 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" >
2024-10-21 04:47:18 +00:00
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_12" checked >
2024-08-20 18:13:15 +00:00
2024-10-21 04:47:18 +00:00
< label class = "md-nav__link" for = "__nav_12" id = "__nav_12_label" tabindex = "0" >
2024-08-20 18:13:15 +00:00
< span class = "md-ellipsis" >
Control the bot
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
2024-10-21 04:47:18 +00:00
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_12_label" aria-expanded = "true" >
< label class = "md-nav__title" for = "__nav_12" >
2024-08-20 18:13:15 +00:00
< 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 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" >
Telegram
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
< span class = "md-ellipsis" >
Telegram
< / 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 = "#setup-your-telegram-bot" class = "md-nav__link" >
< span class = "md-ellipsis" >
Setup your Telegram bot
< / span >
< / a >
< nav class = "md-nav" aria-label = "Setup your Telegram bot" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#1-create-your-telegram-bot" class = "md-nav__link" >
< span class = "md-ellipsis" >
1. Create your Telegram bot
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#2-telegram-user_id" class = "md-nav__link" >
< span class = "md-ellipsis" >
2. Telegram user_id
< / span >
< / a >
< nav class = "md-nav" aria-label = "2. Telegram user_id" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#get-your-user-id" class = "md-nav__link" >
< span class = "md-ellipsis" >
Get your user id
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#use-group-id" class = "md-nav__link" >
< span class = "md-ellipsis" >
Use Group id
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#control-telegram-noise" class = "md-nav__link" >
< span class = "md-ellipsis" >
Control telegram noise
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-a-custom-keyboard-command-shortcut-buttons" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create a custom keyboard (command shortcut buttons)
< / span >
< / a >
< nav class = "md-nav" aria-label = "Create a custom keyboard (command shortcut buttons)" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#usage" class = "md-nav__link" >
< span class = "md-ellipsis" >
Usage
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#telegram-commands" class = "md-nav__link" >
< span class = "md-ellipsis" >
Telegram commands
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#telegram-commands-in-action" class = "md-nav__link" >
< span class = "md-ellipsis" >
Telegram commands in action
< / span >
< / a >
< nav class = "md-nav" aria-label = "Telegram commands in action" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#start" class = "md-nav__link" >
< span class = "md-ellipsis" >
/start
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#stop" class = "md-nav__link" >
< span class = "md-ellipsis" >
/stop
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#stopbuy" class = "md-nav__link" >
< span class = "md-ellipsis" >
/stopbuy
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#status" class = "md-nav__link" >
< span class = "md-ellipsis" >
/status
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#status-table" class = "md-nav__link" >
< span class = "md-ellipsis" >
/status table
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#count" class = "md-nav__link" >
< span class = "md-ellipsis" >
/count
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#profit" class = "md-nav__link" >
< span class = "md-ellipsis" >
/profit
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#forceexit" class = "md-nav__link" >
< span class = "md-ellipsis" >
/forceexit
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#forcelong-rate-forceshort-rate" class = "md-nav__link" >
< span class = "md-ellipsis" >
/forcelong [rate] | /forceshort [rate]
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#performance" class = "md-nav__link" >
< span class = "md-ellipsis" >
/performance
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#balance" class = "md-nav__link" >
< span class = "md-ellipsis" >
/balance
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#daily" class = "md-nav__link" >
< span class = "md-ellipsis" >
/daily
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#weekly" class = "md-nav__link" >
< span class = "md-ellipsis" >
/weekly
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#monthly" class = "md-nav__link" >
< span class = "md-ellipsis" >
/monthly
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#whitelist" class = "md-nav__link" >
< span class = "md-ellipsis" >
/whitelist
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#blacklist-pair" class = "md-nav__link" >
< span class = "md-ellipsis" >
/blacklist [pair]
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#edge" class = "md-nav__link" >
< span class = "md-ellipsis" >
/edge
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#version" class = "md-nav__link" >
< span class = "md-ellipsis" >
/version
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#marketdir" class = "md-nav__link" >
< span class = "md-ellipsis" >
/marketdir
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / 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" >
< a href = "../rest-api/" class = "md-nav__link" >
< span class = "md-ellipsis" >
REST API
< / 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 >
< / 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" >
2024-10-21 04:47:18 +00:00
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_16" >
2024-08-20 18:13:15 +00:00
2024-10-21 04:47:18 +00:00
< label class = "md-nav__link" for = "__nav_16" id = "__nav_16_label" tabindex = "0" >
2024-08-20 18:13:15 +00:00
< span class = "md-ellipsis" >
FreqAI
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
2024-10-21 04:47:18 +00:00
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_16_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_16" >
2024-08-20 18:13:15 +00:00
< 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" >
2024-10-21 04:47:18 +00:00
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_21" >
2024-08-20 18:13:15 +00:00
2024-10-21 04:47:18 +00:00
< label class = "md-nav__link" for = "__nav_21" id = "__nav_21_label" tabindex = "0" >
2024-08-20 18:13:15 +00:00
< span class = "md-ellipsis" >
Data Analysis
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
2024-10-21 04:47:18 +00:00
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_21_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_21" >
2024-08-20 18:13:15 +00:00
< 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" >
2024-10-21 04:47:18 +00:00
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_22" >
2024-08-20 18:13:15 +00:00
2024-10-21 04:47:18 +00:00
< label class = "md-nav__link" for = "__nav_22" id = "__nav_22_label" tabindex = "0" >
2024-08-20 18:13:15 +00:00
< span class = "md-ellipsis" >
Advanced Topics
< / span >
< span class = "md-nav__icon md-icon" > < / span >
< / label >
2024-10-21 04:47:18 +00:00
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_22_label" aria-expanded = "false" >
< label class = "md-nav__title" for = "__nav_22" >
2024-08-20 18:13:15 +00:00
< 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 >
< li class = "md-nav__item" >
< a href = "../edge/" class = "md-nav__link" >
< span class = "md-ellipsis" >
Edge Positioning
< / 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 = "#setup-your-telegram-bot" class = "md-nav__link" >
< span class = "md-ellipsis" >
Setup your Telegram bot
< / span >
< / a >
< nav class = "md-nav" aria-label = "Setup your Telegram bot" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#1-create-your-telegram-bot" class = "md-nav__link" >
< span class = "md-ellipsis" >
1. Create your Telegram bot
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#2-telegram-user_id" class = "md-nav__link" >
< span class = "md-ellipsis" >
2. Telegram user_id
< / span >
< / a >
< nav class = "md-nav" aria-label = "2. Telegram user_id" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#get-your-user-id" class = "md-nav__link" >
< span class = "md-ellipsis" >
Get your user id
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#use-group-id" class = "md-nav__link" >
< span class = "md-ellipsis" >
Use Group id
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#control-telegram-noise" class = "md-nav__link" >
< span class = "md-ellipsis" >
Control telegram noise
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#create-a-custom-keyboard-command-shortcut-buttons" class = "md-nav__link" >
< span class = "md-ellipsis" >
Create a custom keyboard (command shortcut buttons)
< / span >
< / a >
< nav class = "md-nav" aria-label = "Create a custom keyboard (command shortcut buttons)" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#usage" class = "md-nav__link" >
< span class = "md-ellipsis" >
Usage
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#telegram-commands" class = "md-nav__link" >
< span class = "md-ellipsis" >
Telegram commands
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#telegram-commands-in-action" class = "md-nav__link" >
< span class = "md-ellipsis" >
Telegram commands in action
< / span >
< / a >
< nav class = "md-nav" aria-label = "Telegram commands in action" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#start" class = "md-nav__link" >
< span class = "md-ellipsis" >
/start
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#stop" class = "md-nav__link" >
< span class = "md-ellipsis" >
/stop
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#stopbuy" class = "md-nav__link" >
< span class = "md-ellipsis" >
/stopbuy
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#status" class = "md-nav__link" >
< span class = "md-ellipsis" >
/status
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#status-table" class = "md-nav__link" >
< span class = "md-ellipsis" >
/status table
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#count" class = "md-nav__link" >
< span class = "md-ellipsis" >
/count
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#profit" class = "md-nav__link" >
< span class = "md-ellipsis" >
/profit
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#forceexit" class = "md-nav__link" >
< span class = "md-ellipsis" >
/forceexit
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#forcelong-rate-forceshort-rate" class = "md-nav__link" >
< span class = "md-ellipsis" >
/forcelong [rate] | /forceshort [rate]
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#performance" class = "md-nav__link" >
< span class = "md-ellipsis" >
/performance
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#balance" class = "md-nav__link" >
< span class = "md-ellipsis" >
/balance
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#daily" class = "md-nav__link" >
< span class = "md-ellipsis" >
/daily
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#weekly" class = "md-nav__link" >
< span class = "md-ellipsis" >
/weekly
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#monthly" class = "md-nav__link" >
< span class = "md-ellipsis" >
/monthly
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#whitelist" class = "md-nav__link" >
< span class = "md-ellipsis" >
/whitelist
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#blacklist-pair" class = "md-nav__link" >
< span class = "md-ellipsis" >
/blacklist [pair]
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#edge" class = "md-nav__link" >
< span class = "md-ellipsis" >
/edge
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#version" class = "md-nav__link" >
< span class = "md-ellipsis" >
/version
< / span >
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#marketdir" class = "md-nav__link" >
< span class = "md-ellipsis" >
/marketdir
< / span >
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" data-md-component = "content" >
< article class = "md-content__inner md-typeset" >
< h1 id = "telegram-usage" > Telegram usage< a class = "headerlink" href = "#telegram-usage" title = "Permanent link" > ¶ < / a > < / h1 >
< h2 id = "setup-your-telegram-bot" > Setup your Telegram bot< a class = "headerlink" href = "#setup-your-telegram-bot" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Below we explain how to create your Telegram Bot, and how to get your
Telegram user id.< / p >
< h3 id = "1-create-your-telegram-bot" > 1. Create your Telegram bot< a class = "headerlink" href = "#1-create-your-telegram-bot" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Start a chat with the < a href = "https://telegram.me/BotFather" > Telegram BotFather< / a > < / p >
< p > Send the message < code > /newbot< / code > .< / p >
< p > < em > BotFather response:< / em > < / p >
< blockquote >
< p > Alright, a new bot. How are we going to call it? Please choose a name for your bot.< / p >
< / blockquote >
< p > Choose the public name of your bot (e.x. < code > Freqtrade bot< / code > )< / p >
< p > < em > BotFather response:< / em > < / p >
< blockquote >
< p > Good. Now let's choose a username for your bot. It must end in < code > bot< / code > . Like this, for example: TetrisBot or tetris_bot.< / p >
< / blockquote >
< p > Choose the name id of your bot and send it to the BotFather (e.g. "< code > My_own_freqtrade_bot< / code > ")< / p >
< p > < em > BotFather response:< / em > < / p >
< blockquote >
< p > Done! Congratulations on your new bot. You will find it at < code > t.me/yourbots_name_bot< / code > . You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.< / p >
< p > Use this token to access the HTTP API: < code > 22222222:APITOKEN< / code > < / p >
< p > For a description of the Bot API, see this page: < a href = "https://core.telegram.org/bots/api" > https://core.telegram.org/bots/api< / a > Father bot will return you the token (API key)< / p >
< / blockquote >
< p > Copy the API Token (< code > 22222222:APITOKEN< / code > in the above example) and keep use it for the config parameter < code > token< / code > .< / p >
< p > Don't forget to start the conversation with your bot, by clicking < code > /START< / code > button< / p >
< h3 id = "2-telegram-user_id" > 2. Telegram user_id< a class = "headerlink" href = "#2-telegram-user_id" title = "Permanent link" > ¶ < / a > < / h3 >
< h4 id = "get-your-user-id" > Get your user id< a class = "headerlink" href = "#get-your-user-id" title = "Permanent link" > ¶ < / a > < / h4 >
< p > Talk to the < a href = "https://telegram.me/userinfobot" > userinfobot< / a > < / p >
< p > Get your "Id", you will use it for the config parameter < code > chat_id< / code > .< / p >
< h4 id = "use-group-id" > Use Group id< a class = "headerlink" href = "#use-group-id" title = "Permanent link" > ¶ < / a > < / h4 >
< p > You can use bots in telegram groups by just adding them to the group. You can find the group id by first adding a < a href = "https://telegram.me/rawdatabot" > RawDataBot< / a > to your group. The Group id is shown as id in the < code > "chat"< / code > section, which the RawDataBot will send to you:< / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "nt" > " chat" < / span > < span class = "p" > :{< / span >
< span class = "w" > < / span > < span class = "nt" > " id" < / span > < span class = "p" > :< / span > < span class = "mi" > -1001332619709< / span >
< span class = "p" > }< / span >
< / code > < / pre > < / div >
< p > For the Freqtrade configuration, you can then use the full value (including < code > -< / code > if it's there) as string:< / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "w" > < / span > < span class = "nt" > " chat_id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " -1001332619709" < / span >
< / code > < / pre > < / div >
< div class = "admonition warning" >
< p class = "admonition-title" > Using telegram groups< / p >
< p > When using telegram groups, you're giving every member of the telegram group access to your freqtrade bot and to all commands possible via telegram. Please make sure that you can trust everyone in the telegram group to avoid unpleasant surprises.< / p >
< / div >
< h2 id = "control-telegram-noise" > Control telegram noise< a class = "headerlink" href = "#control-telegram-noise" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Freqtrade provides means to control the verbosity of your telegram bot.
Each setting has the following possible values:< / p >
< ul >
< li > < code > on< / code > - Messages will be sent, and user will be notified.< / li >
< li > < code > silent< / code > - Message will be sent, Notification will be without sound / vibration.< / li >
< li > < code > off< / code > - Skip sending a message-type all together.< / li >
< / ul >
< p > Example configuration showing the different settings:< / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "nt" > " telegram" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< span class = "w" > < / span > < span class = "nt" > " enabled" < / 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" > " token" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " your_telegram_token" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " chat_id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " your_telegram_chat_id" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " allow_custom_messages" < / 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" > " notification_settings" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< span class = "w" > < / span > < span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " warning" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " startup" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " entry" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " entry_fill" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " entry_cancel" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " exit" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< span class = "w" > < / span > < span class = "nt" > " roi" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " emergency_exit" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " force_exit" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " exit_signal" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " trailing_stop_loss" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " stop_loss" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / 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 = "s2" > " on" < / span > < span class = "p" > ,< / span >
2024-11-07 06:23:37 +00:00
< span class = "w" > < / span > < span class = "nt" > " custom_exit" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " silent" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "c1" > // custom_exit without specifying an exit reason< / span >
2024-11-07 05:38:56 +00:00
< span class = "w" > < / span > < span class = "nt" > " partial_exit" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "c1" > // " custom_exit_message" : " silent" , // Disable individual custom exit reasons< / span >
< span class = "w" > < / span > < span class = "nt" > " *" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span > < span class = "w" > < / span > < span class = "c1" > // Disable all other exit reasons< / span >
2024-08-20 18:13:15 +00:00
< span class = "w" > < / span > < span class = "p" > },< / span >
2024-11-07 05:38:56 +00:00
< span class = "w" > < / span > < span class = "c1" > // " exit" : " off" , // Simplistic configuration to disable all exit messages< / span >
2024-08-20 18:13:15 +00:00
< span class = "w" > < / span > < span class = "nt" > " exit_cancel" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " exit_fill" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " protection_trigger" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " protection_trigger_global" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " on" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " strategy_msg" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " show_candle" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " off" < / span >
< span class = "w" > < / span > < span class = "p" > },< / span >
< span class = "w" > < / span > < span class = "nt" > " reload" < / 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" > " balance_dust_level" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mf" > 0.01< / span >
< span class = "p" > },< / span >
< / code > < / pre > < / div >
2024-11-07 05:38:56 +00:00
< ul >
< li > < code > entry< / code > notifications are sent when the order is placed, while < code > entry_fill< / code > notifications are sent when the order is filled on the exchange. < / li >
< li > < code > exit< / code > notifications are sent when the order is placed, while < code > exit_fill< / code > notifications are sent when the order is filled on the exchange.< br / >
Exit messages (< code > exit< / code > and < code > exit_fill< / code > ) can be further controlled at individual exit reasons level, with the specific exit reason as the key. the default for all exit reasons is < code > on< / code > - but can be configured via special < code > *< / code > key - which will act as a wildcard for all exit reasons that are not explicitly defined.< / li >
< li > < code > *_fill< / code > notifications are off by default and must be explicitly enabled. < / li >
< li > < code > protection_trigger< / code > notifications are sent when a protection triggers and < code > protection_trigger_global< / code > notifications trigger when global protections are triggered. < / li >
< li > < code > strategy_msg< / code > - Receive notifications from the strategy, sent via < code > self.dp.send_msg()< / code > from the strategy < a href = "../strategy-customization/#send-notification" > more details< / a > . < / li >
< li > < code > show_candle< / code > - show candle values as part of entry/exit messages. Only possible values are < code > "ohlc"< / code > or < code > "off"< / code > . < / li >
< li > < code > balance_dust_level< / code > will define what the < code > /balance< / code > command takes as "dust" - Currencies with a balance below this will be shown. < / li >
< li > < code > allow_custom_messages< / code > completely disable strategy messages. < / li >
< li > < code > reload< / code > allows you to disable reload-buttons on selected messages. < / li >
< / ul >
2024-08-20 18:13:15 +00:00
< h2 id = "create-a-custom-keyboard-command-shortcut-buttons" > Create a custom keyboard (command shortcut buttons)< a class = "headerlink" href = "#create-a-custom-keyboard-command-shortcut-buttons" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Telegram allows us to create a custom keyboard with buttons for commands.
The default custom keyboard looks like this.< / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "p" > [< / span >
< span class = "p" > [< / span > < span class = "s2" > " /daily" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /profit" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /balance" < / span > < span class = "p" > ],< / span > < span class = "c1" > # row 1, 3 commands< / span >
< span class = "p" > [< / span > < span class = "s2" > " /status" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /status table" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /performance" < / span > < span class = "p" > ],< / span > < span class = "c1" > # row 2, 3 commands< / span >
< span class = "p" > [< / span > < span class = "s2" > " /count" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /start" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /stop" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /help" < / span > < span class = "p" > ]< / span > < span class = "c1" > # row 3, 4 commands< / span >
< span class = "p" > ]< / span >
< / code > < / pre > < / div >
< h3 id = "usage" > Usage< a class = "headerlink" href = "#usage" title = "Permanent link" > ¶ < / a > < / h3 >
< p > You can create your own keyboard in < code > config.json< / code > :< / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "nt" > " telegram" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< span class = "w" > < / span > < span class = "nt" > " enabled" < / 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" > " token" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " your_telegram_token" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " chat_id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " your_telegram_chat_id" < / span > < span class = "p" > ,< / span >
< span class = "w" > < / span > < span class = "nt" > " keyboard" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span >
< span class = "w" > < / span > < span class = "p" > [< / span > < span class = "s2" > " /daily" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /stats" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /balance" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /profit" < / span > < span class = "p" > ],< / span >
< span class = "w" > < / span > < span class = "p" > [< / span > < span class = "s2" > " /status table" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /performance" < / span > < span class = "p" > ],< / span >
< span class = "w" > < / span > < span class = "p" > [< / span > < span class = "s2" > " /reload_config" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /count" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s2" > " /logs" < / span > < span class = "p" > ]< / span >
< span class = "w" > < / span > < span class = "p" > ]< / span >
< span class = "w" > < / span > < span class = "p" > },< / span >
< / code > < / pre > < / div >
< div class = "admonition note" >
< p class = "admonition-title" > Supported Commands< / p >
< p > Only the following commands are allowed. Command arguments are not supported!< / p >
< p > < code > /start< / code > , < code > /stop< / code > , < code > /status< / code > , < code > /status table< / code > , < code > /trades< / code > , < code > /profit< / code > , < code > /performance< / code > , < code > /daily< / code > , < code > /stats< / code > , < code > /count< / code > , < code > /locks< / code > , < code > /balance< / code > , < code > /stopentry< / code > , < code > /reload_config< / code > , < code > /show_config< / code > , < code > /logs< / code > , < code > /whitelist< / code > , < code > /blacklist< / code > , < code > /edge< / code > , < code > /help< / code > , < code > /version< / code > , < code > /marketdir< / code > < / p >
< / div >
< h2 id = "telegram-commands" > Telegram commands< a class = "headerlink" href = "#telegram-commands" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Per default, the Telegram bot shows predefined commands. Some commands
are only available by sending them to the bot. The table below list the
official commands. You can ask at any moment for help with < code > /help< / code > .< / p >
< table >
< thead >
< tr >
< th > Command< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < strong > System commands< / strong > < / td >
< td > < / td >
< / tr >
< tr >
< td > < code > /start< / code > < / td >
< td > Starts the trader< / td >
< / tr >
< tr >
< td > < code > /stop< / code > < / td >
< td > Stops the trader< / td >
< / tr >
< tr >
< td > < code > /stopbuy | /stopentry< / code > < / 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 > Reloads the configuration file< / td >
< / tr >
< tr >
< td > < code > /show_config< / code > < / td >
< td > Shows part of the current configuration with relevant settings to operation< / td >
< / tr >
< tr >
< td > < code > /logs [limit]< / code > < / td >
< td > Show last log messages.< / td >
< / tr >
< tr >
< td > < code > /help< / code > < / td >
< td > Show help message< / td >
< / tr >
< tr >
< td > < code > /version< / code > < / td >
< td > Show version< / td >
< / tr >
< tr >
< td > < strong > Status< / strong > < / td >
< td > < / td >
< / tr >
< tr >
< td > < code > /status< / code > < / td >
< td > Lists all open trades< / td >
< / tr >
< tr >
< td > < code > /status < trade_id> < / code > < / td >
< td > Lists one or more specific trade. Separate multiple < trade_id > with a blank space.< / td >
< / tr >
< tr >
< td > < code > /status table< / code > < / td >
< td > List all open trades in a table format. Pending buy orders are marked with an asterisk (< em > ) Pending sell orders are marked with a double asterisk (< / em > *)< / td >
< / tr >
< tr >
< td > < code > /order < trade_id> < / code > < / td >
< td > Lists orders of one or more specific trade. Separate multiple < trade_id > with a blank space.< / td >
< / tr >
< tr >
< td > < code > /trades [limit]< / code > < / td >
< td > List all recently closed trades in a table format.< / td >
< / tr >
< tr >
< td > < code > /count< / code > < / td >
< td > Displays number of trades used and available< / td >
< / tr >
< tr >
< td > < code > /locks< / code > < / td >
< td > Show currently locked pairs.< / td >
< / tr >
< tr >
< td > < code > /unlock < pair or lock_id> < / code > < / td >
< td > Remove the lock for this pair (or for this lock id).< / td >
< / tr >
< tr >
< td > < code > /marketdir [long | short | even | none]< / code > < / td >
< td > Updates the user managed variable that represents the current market direction. If no direction is provided, the currently set direction will be displayed.< / td >
< / tr >
< tr >
< td > < code > /list_custom_data < trade_id> [key]< / code > < / td >
< td > List custom_data for Trade ID & Key combination. If no Key is supplied it will list all key-value pairs found for that Trade ID.< / td >
< / tr >
< tr >
< td > < strong > Modify Trade states< / strong > < / td >
< td > < / td >
< / tr >
< tr >
< td > < code > /forceexit < trade_id> | /fx < tradeid> < / code > < / td >
< td > Instantly exits the given trade (Ignoring < code > minimum_roi< / code > ).< / td >
< / tr >
< tr >
< td > < code > /forceexit all | /fx all< / code > < / td >
< td > Instantly exits all open trades (Ignoring < code > minimum_roi< / code > ).< / td >
< / tr >
< tr >
< td > < code > /fx< / code > < / td >
< td > alias for < code > /forceexit< / code > < / td >
< / tr >
< tr >
< td > < code > /forcelong < pair> [rate]< / code > < / td >
< td > Instantly buys the given pair. Rate is optional and only applies to limit orders. (< code > force_entry_enable< / code > must be set to True)< / td >
< / tr >
< tr >
< td > < code > /forceshort < pair> [rate]< / code > < / td >
< td > Instantly shorts the given pair. Rate is optional and only applies to limit orders. This will only work on non-spot markets. (< code > force_entry_enable< / code > must be set to True)< / td >
< / tr >
< tr >
< td > < code > /delete < trade_id> < / code > < / td >
< td > Delete a specific trade from the Database. Tries to close open orders. Requires manual handling of this trade on the exchange.< / td >
< / tr >
< tr >
< td > < code > /reload_trade < trade_id> < / code > < / 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.< / td >
< / tr >
< tr >
< td > < code > /cancel_open_order < trade_id> | /coo < trade_id> < / code > < / td >
< td > Cancel an open order for a trade.< / td >
< / tr >
< tr >
< td > < strong > Metrics< / strong > < / td >
< td > < / td >
< / tr >
< tr >
< td > < code > /profit [< n> ]< / code > < / td >
< td > Display a summary of your profit/loss from close trades and some stats about your performance, over the last n days (all trades by default)< / td >
< / tr >
< tr >
< td > < code > /performance< / code > < / td >
< td > Show performance of each finished trade grouped by pair< / td >
< / tr >
< tr >
< td > < code > /balance< / code > < / td >
< td > Show bot managed balance per currency< / td >
< / tr >
< tr >
< td > < code > /balance full< / code > < / td >
< td > Show account balance per currency< / td >
< / tr >
< tr >
< td > < code > /daily < n> < / code > < / td >
< td > Shows profit or loss per day, over the last n days (n defaults to 7)< / td >
< / tr >
< tr >
< td > < code > /weekly < n> < / code > < / td >
< td > Shows profit or loss per week, over the last n weeks (n defaults to 8)< / td >
< / tr >
< tr >
< td > < code > /monthly < n> < / code > < / td >
< td > Shows profit or loss per month, over the last n months (n defaults to 6)< / td >
< / tr >
< tr >
< td > < code > /stats< / code > < / td >
< td > Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells< / td >
< / tr >
< tr >
< td > < code > /exits< / code > < / td >
< td > Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells< / td >
< / tr >
< tr >
< td > < code > /entries< / code > < / td >
< td > Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells< / td >
< / tr >
< tr >
< td > < code > /whitelist [sorted] [baseonly]< / code > < / td >
< td > Show the current whitelist. Optionally display in alphabetical order and/or with just the base currency of each pairing.< / td >
< / tr >
< tr >
< td > < code > /blacklist [pair]< / code > < / td >
< td > Show the current blacklist, or adds a pair to the blacklist.< / td >
< / tr >
< tr >
< td > < code > /edge< / code > < / td >
< td > Show validated pairs by Edge if it is enabled.< / td >
< / tr >
< / tbody >
< / table >
< h2 id = "telegram-commands-in-action" > Telegram commands in action< a class = "headerlink" href = "#telegram-commands-in-action" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Below, example of Telegram message you will receive for each command.< / p >
< h3 id = "start" > /start< a class = "headerlink" href = "#start" title = "Permanent link" > ¶ < / a > < / h3 >
< blockquote >
< p > < strong > Status:< / strong > < code > running< / code > < / p >
< / blockquote >
< h3 id = "stop" > /stop< a class = "headerlink" href = "#stop" title = "Permanent link" > ¶ < / a > < / h3 >
< blockquote >
< p > < code > Stopping trader ...< / code >
< strong > Status:< / strong > < code > stopped< / code > < / p >
< / blockquote >
< h3 id = "stopbuy" > /stopbuy< a class = "headerlink" href = "#stopbuy" title = "Permanent link" > ¶ < / a > < / h3 >
< blockquote >
< p > < strong > status:< / strong > < code > Setting max_open_trades to 0. Run /reload_config to reset.< / code > < / p >
< / blockquote >
< p > Prevents the bot from opening new trades by temporarily setting "max_open_trades" to 0. Open trades will be handled via their regular rules (ROI / Sell-signal, stoploss, ...).< / p >
< p > After this, give the bot time to close off open trades (can be checked via < code > /status table< / code > ).
Once all positions are sold, run < code > /stop< / code > to completely stop the bot.< / p >
< p > < code > /reload_config< / code > resets "max_open_trades" to the value set in the configuration and resets this command.< / p >
< div class = "admonition warning" >
< p class = "admonition-title" > Warning< / p >
< p > The stop-buy signal is ONLY active while the bot is running, and is not persisted anyway, so restarting the bot will cause this to reset.< / p >
2024-10-02 05:03:55 +00:00
< / div >
2024-08-20 18:13:15 +00:00
< h3 id = "status" > /status< a class = "headerlink" href = "#status" title = "Permanent link" > ¶ < / a > < / h3 >
< p > For each open trade, the bot will send you the following message.
Enter Tag is configurable via Strategy.< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > < strong > Trade ID:< / strong > < code > 123< / code > < code > (since 1 days ago)< / code > < br / >
< strong > Current Pair:< / strong > CVC/BTC< br / >
< strong > Direction:< / strong > Long< br / >
< strong > Leverage:< / strong > 1.0< br / >
< strong > Amount:< / strong > < code > 26.64180098< / code > < br / >
< strong > Enter Tag:< / strong > Awesome Long Signal< br / >
< strong > Open Rate:< / strong > < code > 0.00007489< / code > < br / >
< strong > Current Rate:< / strong > < code > 0.00007489< / code > < br / >
< strong > Unrealized Profit:< / strong > < code > 12.95%< / code > < br / >
< strong > Stoploss:< / strong > < code > 0.00007389 (-0.02%)< / code > < / p >
2024-08-20 18:13:15 +00:00
< / blockquote >
< h3 id = "status-table" > /status table< a class = "headerlink" href = "#status-table" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Return the status of all open trades in a table format.< / p >
< div class = "highlight" > < pre > < span > < / span > < code > ID L/S Pair Since Profit
---- -------- ------- --------
67 L SC/BTC 1 d 13.33%
123 S CVC/BTC 1 h 12.95%
< / code > < / pre > < / div >
< h3 id = "count" > /count< a class = "headerlink" href = "#count" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Return the number of trades used and available.< / p >
< div class = "highlight" > < pre > < span > < / span > < code > current max
--------- -----
2 10
< / code > < / pre > < / div >
< h3 id = "profit" > /profit< a class = "headerlink" href = "#profit" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Return a summary of your profit/loss and performance.< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > < strong > ROI:< / strong > Close trades< br / >
∙ < code > 0.00485701 BTC (2.2%) (15.2 Σ%)< / code > < br / >
∙ < code > 62.968 USD< / code > < br / >
< strong > ROI:< / strong > All trades< br / >
∙ < code > 0.00255280 BTC (1.5%) (6.43 Σ%)< / code > < br / >
∙ < code > 33.095 EUR< / code > < / p >
< p > < strong > Total Trade Count:< / strong > < code > 138< / code > < br / >
< strong > Bot started:< / strong > < code > 2022-07-11 18:40:44< / code > < br / >
< strong > First Trade opened:< / strong > < code > 3 days ago< / code > < br / >
< strong > Latest Trade opened:< / strong > < code > 2 minutes ago< / code > < br / >
< strong > Avg. Duration:< / strong > < code > 2:33:45< / code > < br / >
< strong > Best Performing:< / strong > < code > PAY/BTC: 50.23%< / code > < br / >
< strong > Trading volume:< / strong > < code > 0.5 BTC< / code > < br / >
< strong > Profit factor:< / strong > < code > 1.04< / code > < br / >
< strong > Win / Loss:< / strong > < code > 102 / 36< / code > < br / >
< strong > Winrate:< / strong > < code > 73.91%< / code > < br / >
< strong > Expectancy (Ratio):< / strong > < code > 4.87 (1.66)< / code > < br / >
< strong > Max Drawdown:< / strong > < code > 9.23% (0.01255 BTC)< / code > < / p >
2024-08-20 18:13:15 +00:00
< / blockquote >
2024-11-07 05:38:56 +00:00
< p > The relative profit of < code > 1.2%< / code > is the average profit per trade.< br / >
The relative profit of < code > 15.2 Σ%< / code > is be based on the starting capital - so in this case, the starting capital was < code > 0.00485701 * 1.152 = 0.00738 BTC< / code > .< br / >
< strong > Starting capital(< / strong > ) is either taken from the < code > available_capital< / code > setting, or calculated by using current wallet size - profits.< br / >
< strong > Profit Factor< / strong > is calculated as gross profits / gross losses - and should serve as an overall metric for the strategy.< br / >
< strong > Expectancy< / strong > corresponds to the average return per currency unit at risk, i.e. the winrate and the risk-reward ratio (the average gain of winning trades compared to the average loss of losing trades).< br / >
< strong > Expectancy Ratio< / strong > is expected profit or loss of a subsequent trade based on the performance of all past trades.< br / >
< strong > Max drawdown< / strong > corresponds to the backtesting metric < code > Absolute Drawdown (Account)< / code > - calculated as < code > (Absolute Drawdown) / (DrawdownHigh + startingBalance)< / code > .< br / >
< strong > Bot started date< / strong > will refer to the date the bot was first started. For older bots, this will default to the first trade's open date. < / p >
2024-08-20 18:13:15 +00:00
< h3 id = "forceexit" > /forceexit < trade_id > < a class = "headerlink" href = "#forceexit" title = "Permanent link" > ¶ < / a > < / h3 >
< blockquote >
< p > < strong > BINANCE:< / strong > Exiting BTC/LTC with limit < code > 0.01650000 (profit: ~-4.07%, -0.00008168)< / code > < / p >
< / blockquote >
< div class = "admonition tip" >
< p class = "admonition-title" > Tip< / p >
< p > You can get a list of all open trades by calling < code > /forceexit< / code > without parameter, which will show a list of buttons to simply exit a trade.
This command has an alias in < code > /fx< / code > - which has the same capabilities, but is faster to type in "emergency" situations.< / p >
< / div >
< h3 id = "forcelong-rate-forceshort-rate" > /forcelong < pair > [rate] | /forceshort < pair > [rate]< a class = "headerlink" href = "#forcelong-rate-forceshort-rate" title = "Permanent link" > ¶ < / a > < / h3 >
< p > < code > /forcebuy < pair> [rate]< / code > is also supported for longs but should be considered deprecated.< / p >
< blockquote >
< p > < strong > BINANCE:< / strong > Long ETH/BTC with limit < code > 0.03400000< / code > (< code > 1.000000 ETH< / code > , < code > 225.290 USD< / code > )< / p >
< / blockquote >
< p > Omitting the pair will open a query asking for the pair to trade (based on the current whitelist).
Trades created through < code > /forcelong< / code > will have the buy-tag of < code > force_entry< / code > .< / p >
< p > < img alt = "Telegram force-buy screenshot" src = "../assets/telegram_forcebuy.png" / > < / p >
< p > Note that for this to work, < code > force_entry_enable< / code > needs to be set to true.< / p >
< p > < a href = "../configuration/#understand-force_entry_enable" > More details< / a > < / p >
< h3 id = "performance" > /performance< a class = "headerlink" href = "#performance" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Return the performance of each crypto-currency the bot has sold.< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > Performance:< br / >
1. < code > RCN/BTC 0.003 BTC (57.77%) (1)< / code > < br / >
2. < code > PAY/BTC 0.0012 BTC (56.91%) (1)< / code > < br / >
3. < code > VIB/BTC 0.0011 BTC (47.07%) (1)< / code > < br / >
4. < code > SALT/BTC 0.0010 BTC (30.24%) (1)< / code > < br / >
5. < code > STORJ/BTC 0.0009 BTC (27.24%) (1)< / code > < br / >
... < / p >
2024-08-20 18:13:15 +00:00
< / blockquote >
< h3 id = "balance" > /balance< a class = "headerlink" href = "#balance" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Return the balance of all crypto-currency your have on the exchange.< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > < strong > Currency:< / strong > BTC< br / >
< strong > Available:< / strong > 3.05890234< br / >
< strong > Balance:< / strong > 3.05890234< br / >
< strong > Pending:< / strong > 0.0 < / p >
< p > < strong > Currency:< / strong > CVC< br / >
< strong > Available:< / strong > 86.64180098< br / >
< strong > Balance:< / strong > 86.64180098< br / >
< strong > Pending:< / strong > 0.0 < / p >
2024-08-20 18:13:15 +00:00
< / blockquote >
< h3 id = "daily" > /daily < n > < a class = "headerlink" href = "#daily" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Per default < code > /daily< / code > will return the 7 last days. The example below if for < code > /daily 3< / code > :< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > < strong > Daily Profit over the last 3 days:< / strong > < / p >
< / blockquote >
2024-08-20 18:13:15 +00:00
< div class = "highlight" > < pre > < span > < / span > < code > Day (count) USDT USD Profit %
-------------- ------------ ---------- ----------
2022-06-11 (1) -0.746 USDT -0.75 USD -0.08%
2022-06-10 (0) 0 USDT 0.00 USD 0.00%
2022-06-09 (5) 20 USDT 20.10 USD 5.00%
2024-11-07 05:38:56 +00:00
< / code > < / pre > < / div >
2024-08-20 18:13:15 +00:00
< h3 id = "weekly" > /weekly < n > < a class = "headerlink" href = "#weekly" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Per default < code > /weekly< / code > will return the 8 last weeks, including the current week. Each week starts
from Monday. The example below if for < code > /weekly 3< / code > :< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > < strong > Weekly Profit over the last 3 weeks (starting from Monday):< / strong > < / p >
< / blockquote >
2024-08-20 18:13:15 +00:00
< div class = "highlight" > < pre > < span > < / span > < code > Monday (count) Profit BTC Profit USD Profit %
------------- -------------- ------------ ----------
2018-01-03 (5) 0.00224175 BTC 29,142 USD 4.98%
2017-12-27 (1) 0.00033131 BTC 4,307 USD 0.00%
2017-12-20 (4) 0.00269130 BTC 34.986 USD 5.12%
2024-11-07 05:38:56 +00:00
< / code > < / pre > < / div >
2024-08-20 18:13:15 +00:00
< h3 id = "monthly" > /monthly < n > < a class = "headerlink" href = "#monthly" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Per default < code > /monthly< / code > will return the 6 last months, including the current month. The example below
if for < code > /monthly 3< / code > :< / p >
< blockquote >
< p > < strong > Monthly Profit over the last 3 months:< / strong >
< div class = "highlight" > < pre > < span > < / span > < code > Month (count) Profit BTC Profit USD Profit %
------------- -------------- ------------ ----------
2018-01 (20) 0.00224175 BTC 29,142 USD 4.98%
2017-12 (5) 0.00033131 BTC 4,307 USD 0.00%
2017-11 (10) 0.00269130 BTC 34.986 USD 5.10%
< / code > < / pre > < / div > < / p >
< / blockquote >
< h3 id = "whitelist" > /whitelist< a class = "headerlink" href = "#whitelist" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Shows the current whitelist< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > Using whitelist < code > StaticPairList< / code > with 22 pairs< br / >
2024-08-20 18:13:15 +00:00
< code > IOTA/BTC, NEO/BTC, TRX/BTC, VET/BTC, ADA/BTC, ETC/BTC, NCASH/BTC, DASH/BTC, XRP/BTC, XVG/BTC, EOS/BTC, LTC/BTC, OMG/BTC, BTG/BTC, LSK/BTC, ZEC/BTC, HOT/BTC, IOTX/BTC, XMR/BTC, AST/BTC, XLM/BTC, NANO/BTC< / code > < / p >
< / blockquote >
< h3 id = "blacklist-pair" > /blacklist [pair]< a class = "headerlink" href = "#blacklist-pair" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Shows the current blacklist.
If Pair is set, then this pair will be added to the pairlist.
2024-11-07 05:38:56 +00:00
Also supports multiple pairs, separated by a space.< br / >
2024-08-20 18:13:15 +00:00
Use < code > /reload_config< / code > to reset the blacklist.< / p >
< blockquote >
2024-11-07 05:38:56 +00:00
< p > Using blacklist < code > StaticPairList< / code > with 2 pairs< br / >
< code > DODGE/BTC< / code > , < code > HOT/BTC< / code > . < / p >
2024-08-20 18:13:15 +00:00
< / blockquote >
< h3 id = "edge" > /edge< a class = "headerlink" href = "#edge" title = "Permanent link" > ¶ < / a > < / h3 >
< p > Shows pairs validated by Edge along with their corresponding win-rate, expectancy and stoploss values.< / p >
< blockquote >
< p > < strong > Edge only validated following pairs:< / strong >
< div class = "highlight" > < pre > < span > < / span > < code > Pair Winrate Expectancy Stoploss
-------- --------- ------------ ----------
DOCK/ETH 0.522727 0.881821 -0.03
PHX/ETH 0.677419 0.560488 -0.03
HOT/ETH 0.733333 0.490492 -0.03
HC/ETH 0.588235 0.280988 -0.02
ARDR/ETH 0.366667 0.143059 -0.01
< / code > < / pre > < / div > < / p >
< / blockquote >
< h3 id = "version" > /version< a class = "headerlink" href = "#version" title = "Permanent link" > ¶ < / a > < / h3 >
< blockquote >
< p > < strong > Version:< / strong > < code > 0.14.3< / code > < / p >
< / blockquote >
< h3 id = "marketdir" > /marketdir< a class = "headerlink" href = "#marketdir" title = "Permanent link" > ¶ < / a > < / h3 >
< p > If a market direction is provided the command updates the user managed variable that represents the current market direction.
This variable is not set to any valid market direction on bot startup and must be set by the user. The example below is for < code > /marketdir long< / code > :< / p >
< div class = "highlight" > < pre > < span > < / span > < code > Successfully updated marketdirection from none to long.
< / code > < / pre > < / div >
< p > If no market direction is provided the command outputs the currently set market directions. The example below is for < code > /marketdir< / code > :< / p >
< div class = "highlight" > < pre > < span > < / span > < code > Currently set marketdirection: even
< / code > < / pre > < / div >
< p > You can use the market direction in your strategy via < code > self.market_direction< / code > .< / p >
< div class = "admonition warning" >
< p class = "admonition-title" > Bot restarts< / p >
< p > Please note that the market direction is not persisted, and will be reset after a bot restart/reload.< / p >
< / div >
< div class = "admonition danger" >
< p class = "admonition-title" > Backtesting< / p >
< p > As this value/variable is intended to be changed manually in dry/live trading.
Strategies using < code > market_direction< / code > will probably not produce reliable, reproducible results (changes to this variable will not be reflected for backtesting). Use at your own risk.< / p >
< / div >
2024-09-04 19:11:37 +00:00
2024-08-20 18:13:15 +00:00
< / 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 >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
Back to top
< / button >
< / main >
< footer class = "md-footer" >
< nav class = "md-footer__inner md-grid" aria-label = "Footer" >
< a href = "../bot-usage/" class = "md-footer__link md-footer__link--prev" aria-label = "Previous: Start the bot" >
< div class = "md-footer__button md-icon" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
< / div >
< div class = "md-footer__title" >
< span class = "md-footer__direction" >
Previous
< / span >
< div class = "md-ellipsis" >
Start the bot
< / div >
< / div >
< / a >
< a href = "../freq-ui/" class = "md-footer__link md-footer__link--next" aria-label = "Next: freqUI" >
< div class = "md-footer__title" >
< span class = "md-footer__direction" >
Next
< / span >
< div class = "md-ellipsis" >
freqUI
< / div >
< / div >
< div class = "md-footer__button md-icon" >
2024-09-02 04:57:49 +00:00
< 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 >
2024-08-20 18:13:15 +00:00
< / 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 async defer src = "https://buttons.github.io/buttons.js" > < / script >
< 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 >
2024-09-23 06:38:12 +00:00
< script id = "__config" type = "application/json" > { "base" : ".." , "features" : [ "content.code.annotate" , "search.share" , "content.code.copy" , "navigation.top" , "navigation.footer" ] , "search" : "../assets/javascripts/workers/search.6ce7567c.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" : { "alias" : true , "provider" : "mike" } } < / script >
2024-08-20 18:13:15 +00:00
2024-10-21 05:32:43 +00:00
< script src = "../assets/javascripts/bundle.83f73b43.min.js" > < / script >
2024-08-20 18:13:15 +00:00
< script src = "../javascripts/config.js" > < / script >
< script src = "https://polyfill.io/v3/polyfill.min.js?features=es6" > < / script >
< script src = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" > < / script >
< / body >
< / html >