Code Monkey home page Code Monkey logo

eazebot's Introduction

GitHub PyPi Docker

Docker Pulls GitHub repo size in bytes GPLv3 license GitHub last commit GitHub top language GitHub issues

EazeBot

Introduction

  • Have you ever traded cryptocurrencies and lost overview of your planned buys/sells?
  • Have you encountered the experience that your buy order was executed while you slept, and before you could place any stop-loss, the price rushed so deep that you made huge loss?
  • Have you ever complained about that there is no exchange where you can set for one and the same coin a sell order and a stop-loss at the same time?
  • Have you ever had a really good trading plan but then you got greedy or anxious and messed it up?

Then EazeBot is your man!

EazeBot is a free Python-based Telegram bot that helps you defining an unlimited number of trade sets that will then be carried out for you via exchange APIs. Such a trade set is consisting of buy/sell levels and amounts and an optional stop-loss level. EazeBot lets you check the progress of your tradings, tells you about filled orders and triggered stop losses, and can tell your balances. Breakout trading (set buy order if daily candle closes over price X) are supported, too.

Most importantly: All popular exchanges are supported! (for supported exchanges see here)

Installation

There are different ways to install EazeBot. We recommend using Docker as this guarantees system- independent compatibility.

After the next steps, no matter if you are on Windows or Linux/Mac, you should have at least a "user_data" folder in your target folder containing two json files (APIs.json and botConfig.json). Under Windows there are additional bat files for easier execution.

With docker

You require Docker to be installed on your system.

  1. Create a new folder for EazeBot

  2. Download (right click, save link as) this File to that folder.

  3. Open a terminal, cd to your EazeBot directory and run

     docker-compose run --rm eazebot --init
    

With Pip

You require Python 3.6 or higher to be installed on your system.

Windows

We simplified installation/configuration of the bot on Windows:

  1. Simply download (right click, save link as) this File ) and put the file in a folder, where you wish EazeBot files to be installed.
  2. Then execute it.

Linux/Mac

  1. The simpliest and recommended way of installing EazeBot is using the pip install command:

     sudo python3 -m pip install eazebot
    
  2. You then need to copy the configuration files to some folder. Here is an example to make a folder in your home directory and copy the files there:

     sudo mkdir ~/eazebot
     cd ~/eazebot
     python3 -m eazebot --init"
    

Getting Started

After installation of EazeBot you have to set up the bot so that you can control him via Telegram and that he can access your exchanges.

Obtain the necessary configuration tokens and keys

For this the following steps are necessary:

  1. Create a Telegram bot token using @botfather

    • This sounds complicated but is rather simple. Start a chat with Botfather on Telegram and follow these instructions. The token you get in the end is needed during EazeBot configuration.
  2. Get your Telegram ID

    • Your Telegram ID is needed during EazeBot configuration, too. It ensures that only you are able to control the bot via Telegram. The Telegram ID is (normally) a 9-digit number.
    • If you do not know it, you can talk to the userinfobot.
  3. Create API keys for each exchange you want to access via EazeBot

    • Please refer on your exchange on how to create an API token.
    • Some exchanges allow you to determine what you can do with the created API token (e.g. read-only or no withdrawing etc.). Of course, EazeBot bot needs the permission to set and cancel orders for you and to fetch your balance in order to work properly. Also, if you want to use the built-in donation feature, it needs the right to withdraw.
    • Normally, once you created an API token, you will see an API key and an API secret (sometimes also called private key). This information is needed during EazeBot configuration, so save it temporarily somewhere.
    • Some exchanges also have more security factors, like a API password (not your exchange login password!)or an uid. If existent, please temporarily save this information as you will need it for EazeBot configuration, too.

Interactive configuration

With docker

Run the following command in your EazeBot folder:

docker-compose run --rm eazebot --config

With pip / others

Run the following command in your EazeBot folder:

python3 -m eazebot --config"

Manual configuration

We recommend the interactive configuration, as editing the json files in the wrong way may lead to EazeBot not being functional! However, here is how you can configure EazeBot manually (all json files are located in the user_data folder within your EazeBot folder, assuming you have installed EazeBot correctly):

  • The Telegram bot token needs to be inserted into the botConfig.json file: Replace the PLACEHOLDER text to the right of the telegramAPI key (keep the quotation marks!).
  • Your Telegram ID needs to be inserted into the botConfig.json file: Replace the PLACEHOLDER text to the right of the telegramUserId key (keep the quotation marks!).
  • Each API key information needs to be inserted into the APIs.json between the brackets in the following format:
    {
    "exchange": "xxx",
    "key": "xxx",
    "secret": "xxx",
    "password": "xxx",
    "uid": "xxx"
    }
    • The value under exchange needs to be in lower case and be one of the exchanges supported by ccxt (i.e. a value from the id column).
    • As mentioned above, password and uid are only necessary on some exchanges. If not available, completely discard these lines.

Start EazeBot

Now you can run the bot and start a conversation via Telegram.**

  • On Windows, double-click on startBot.bat in your EazeBot folder.
  • On Linux/Mac use the terminal, go to your EazeBot folder and run this command:
python3 -m eazebot
  1. Thereafter you should start a conversation with your bot (see Token creation with bot father) on Telegram.
  2. The bot will welcome you and show you a menu of things you can do. Everything should be rather self-explanatory as the bot will have a dialog with you on everything you click.
  3. Enjoy!

Update EazeBot

From time to time you should update EazeBot:

  1. Stop EazeBot with Telegram by clicking on Settings in the main menu, then *Stop bot* and then confirm the stop dialog.
  2. The way of updating depends on your OS and installation:
    • Windows:
      • Double-clicking on updateBot.bat in your EazeBot folder
    • Linux/Mac:
  3. Restart the Bot

Help

We have added a Wiki with more details on installing and handling the bot. You may also open an issue if you encounter bugs or want to suggest improvements.

Versioning

For the versions available, see the tags on this repository.

Authors

  • Marcel Beining - Ground work - MBeining

License

You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL-3. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL-3, but applications that use the library don't have to be. See the LICENSE and LICENSE.LESSER file for details

Features to be added

Depending on my time and/or putative incentives (donations), I plan to add the following features (any suggestions welcome):

  • add instant buy / sell
  • move profit into fiat after trade set finished
  • option to avoid flash crash SL triggering by checking e.g. after 5 min if SL is still reached.
  • add info to the trade set what the current gain/loss would be when price reaches SL
  • update the Wiki

Donations

If you want to support our project or simply want to say thank you for the profit you made with this bot, you can either use send your donation to one of the crypto addresses below, or use the built-in donation feature (Bot Info -> Donate button).

Currency Address
Bitcoin bc1q5wfzxdk3xhujs6589gzdeu6fgqpvqrel5jzzt2
ETH 0xE0451300D96090c1F274708Bc00d791017D7a5F3
Neo AaGRMPuwtGrudXR5s7F5n11cxK595hCWUg
XLM GCEAF5KYYUJSYPEDAWTZUBP4TE2LUSAPAFNHFSY54RA4HNLBVYOSFM6K
USDT (ERC20) 0x55b1be96e951bfce21973a233970245f728782f1
USDT (TRC20) TGTh3ts5sdhBnGDm9aacUHLmdryPnCa8HJ

New! Also accepting payments via beerpay 🍻! Beerpay

Want a new feature to be implemented to EazeBot? Beerpay

Thank you very much!

eazebot's People

Contributors

dependabot-preview[bot] avatar marcelbeining avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eazebot's Issues

Add instant buy/sell button

Is your feature request related to a problem? Please describe.
Sometimes, things have to go fast and there is no time to initiate a trade set, you simply want to buy/sell your stuff.

Describe the solution you'd like
Add a instant buy/sell button to the main menu which, when clicking asks you for the exchange and the amount.

Losing data

I trying to use this bot for my trading and I entered All the trade set i had in Binance but after i rebooted the server all of my trade sets was gone !!! it does not save somewhere ? :(

After the update to 1.6.4 there are some errors in the ssh panel

ubuntu@ip-:/eazebot$ 2018-08-06 13:07:01,051 [job_queue ] [ERROR] User : <class 'ccxt.base.errors.InvalidOrder'> in tradeHandler.py at line 112: binance {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"}
bash: class: No such file or directory
ubuntu@ip-:
/eazebot$ 2018-08-06 13:07:01,071 [job_queue ] [WARNI] Some connection (?) error occured
bash: syntax error near unexpected token (' ubuntu@ip-:~/eazebot$ 2018-08-06 13:07:02,092 [job_queue ] [WARNI] Some connection (?) error occured bash: syntax error near unexpected token ('
ubuntu@ip-1:/eazebot$ 2018-08-06 13:07:03,114 [job_queue ] [WARNI] Some connection (?) error occured
bash: syntax error near unexpected token (' ubuntu@ip-:~/eazebot$ 2018-08-06 13:07:04,135 [job_queue ] [WARNI] Some connection (?) error occured bash: syntax error near unexpected token ('
ubuntu@ip-:
/eazebot$ 2018-08-06 13:07:05,157 [job_queue ] [WARNI] Some connection (?) error occured
bash: syntax error near unexpected token `('
ubuntu@ip-1:/eazebot$ 2018-08-06 13:07:06,158 [job_queue ] [ERROR] Could not send message to bot
2018-08-06: command not found
ubuntu@ip-1:
/eazebot$ 2018-08-06 13:07:06,159 [job_queue ] [ERROR] binance {"code":-1013,"msg":"Filter failure: MIN_NOTIONAL"}
2018-08-06: command not found
ubuntu@ip-:/eazebot$ 2018-08-06 13:07:06,159 [job_queue ] [INFO ] Finished updating trade sets...
2018-08-06: command not found
ubuntu@ip-:
/eazebot$

On the old version it hasn´t any error.
Please fix it, thanks

Greets Josef

sell error due to old version (v2.10)

Describe the bug
Adding second sell order for binnace -> iota/btc fails on initializing sell order:

2021-04-17 11:25:00,714 [ThreadPoolEx] [ERROR]  Exchange Binance
<class 'ccxt.base.errors.InvalidOrder'> in                                     response = self.safe_run(lambda: self.exchange.createLimitSellOrder(ts.symbol,
 from tradeHandler.py at line 759: binance {"code":-1013,"msg":"Filter failure: PERCENT_PRICE"}
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 588, in fetch
    response.raise_for_status()
  File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.binance.com/api/v3/order

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/eazebot_docker/eazebot/bot.py", line 964, in update_trade_sets
    self.updater.dispatcher.user_data[user]['trade'][ex].update()
  File "/eazebot_docker/eazebot/tradeHandler.py", line 759, in update
    response = self.safe_run(lambda: self.exchange.createLimitSellOrder(ts.symbol,
  File "/eazebot_docker/eazebot/tradeHandler.py", line 224, in safe_run
    raise e
  File "/eazebot_docker/eazebot/tradeHandler.py", line 139, in safe_run
    return func()
  File "/eazebot_docker/eazebot/tradeHandler.py", line 759, in <lambda>
    response = self.safe_run(lambda: self.exchange.createLimitSellOrder(ts.symbol,
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 1863, in create_limit_sell_order
    return self.create_order(symbol, 'limit', 'sell', *args)
  File "/usr/local/lib/python3.8/site-packages/ccxt/binance.py", line 1667, in create_order
    response = getattr(self, method)(self.extend(request, params))
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 465, in inner
    return entry(_self, **inner_kwargs)
  File "/usr/local/lib/python3.8/site-packages/ccxt/binance.py", line 2475, in request
    response = self.fetch2(path, api, method, params, headers, body)
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 486, in fetch2
    return self.fetch(request['url'], request['method'], request['headers'], request['body'])
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 604, in fetch
    self.handle_errors(http_status_code, http_status_text, url, method, headers, http_response, json_response, request_headers, request_body)
  File "/usr/local/lib/python3.8/site-packages/ccxt/binance.py", line 2469, in handle_errors
    self.throw_exactly_matched_exception(self.exceptions, error, feedback)
  File "/usr/local/lib/python3.8/site-packages/ccxt/base/exchange.py", line 504, in throw_exactly_matched_exception
    raise exact[string](message)
ccxt.base.errors.InvalidOrder: binance {"code":-1013,"msg":"Filter failure: PERCENT_PRICE"}
2021-04-17 11:25:01,005 [ThreadPoolEx] [ERROR]  None
2021-04-17 11:25:01,637 [ThreadPoolEx] [INFO ]  Finished updating trade sets...


System (please complete the following information):

  • OS: Linux rasperry pi
  • Version eazebot: v2.10.1 (i pulled the last changes but still on v2.10.1?)
    Bot info says:
    There is a new version of EazeBot available on git/docker (v2.12.0) and PyPi with these changes:

i think it's me, who made something wrong!

Exchange not Shown

I have configured your telegram bot and added my API keys to the json files, as well as created a telegram bot. The bot functions and I can communicate with it, but upon trying to check my account balance, it asks me what exchange I'd like to find the balance for. No exchanges show up in the list. I don't see any errors being thrown, so I am not sure where the bot is malfunctioning.

Error on deleting inactive trade set

I get still an error on deleting an existing trade set, but a different error:

v2.5.2 (docker and standard version)

No error handlers are registered, logging exception. Traceback (most recent call last): File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\dispatcher.py", line 340, in process_update handler.handle_update(update, self, check, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\conversationhandler.py", line 465, in handle_update new_state = handler.handle_update(update, dispatcher, check_result, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\handler.py", line 119, in handle_update return self.callback(update, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 1290, in inline_button_callback ct.delete_trade_set(sell_all='yes' in args) TypeError: delete_trade_set() missing 1 required positional argument: 'i_ts'

I have the greatest respect for your work, and I am very grateful for this wonderful bot!

SL not triggered due to error

Hi @MarcelBeining!

Unfortunately this is a major issue -> SL was not triggered:

image
I searched my computer for telegramEazeBot.log but don't find one -> where are the logs stored for docker version?

I hope the screenshot is enough to fix the issue...

Docker Version: v2.6.0 (the latest docker version is on 2.6.0 and the standard version is on 2.6.1)
OS: Windows 10 64 bit

python -m pip list executing in the host is IMHO not relevant for the docker version, right?
Version of ccxt: 1.32.12

Best regards, off

eazebot can't be started if a network error occurs

I got a new issue with kraken - which is imho critical:

I can't start the bot because kraken returns a cloud flare issue...

******** Welcome to EazeBot (v1.7.14) ********                                                                                                                                 
Free python/telegram bot for easy execution and surveillance of crypto trading plans on multiple exchanges                                                                     
                                                                                                                                                                               
                                                                                                                                                                               
2018-12-26 20:31:15,189 [MainThread  ] [WARNI]  If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.                                          
2018-12-26 20:31:15,189 [MainThread  ] [WARNI]  If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.                                          
2018-12-26 20:31:15,189 [MainThread  ] [WARNI]  If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.                                          
2018-12-26 20:31:15,190 [MainThread  ] [WARNI]  If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.                                          
2018-12-26 20:31:15,190 [MainThread  ] [WARNI]  If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.                                          
2018-12-26 20:31:15,190 [MainThread  ] [INFO ]  Loading user data                                                                                                              
2018-12-26 20:31:17,207 [MainThread  ] [INFO ]  Found exchanges {'Poloniex', 'Kraken', 'Binance', 'Kucoin'} with keys ['Binance', 'Poloniex', 'Kraken', 'Kucoin'], secrets ['Bi
nance', 'Poloniex', 'Kraken', 'Kucoin'], uids [], password []                                                                                                                  
2018-12-26 20:31:56,210 [MainThread  ] [ERROR]  User 479767609: Network exception occurred 5 times in a row on Kraken                                                          
An error occured:                                                                                                                                                              
kraken <!DOCTYPE html>                                                                                                                                                         
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->                                                                                                     
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->                                                                                                     
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->                                                                                                     
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->                                                                                                      
<head>                                                                                                                                                                         
<title>api.kraken.com | 520: Web server is returning an unknown error</title>                                                                                                  
<meta charset="UTF-8" />                                                                                                                                                       
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />                                                                                                          
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />                                                                                                               
<meta name="robots" content="noindex, nofollow" />                                                                                                                             
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />                                                                                          
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />                                                    
<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->                 
<style type="text/css">body{margin:0;padding:0}</style>                                                                                                                        
</head>                                                                                                                                                                        
<body>                                                                                                                                                                         
<div id="cf-wrapper">                                                                                                                                                          
<div id="cf-error-details" class="cf-error-details-wrapper">                                                                                                                   
<div class="cf-wrapper cf-error-overview">                                                                                                                                     
<h1>                                                                                                                                                                           
<span class="cf-error-type">Error</span>                                                                                                                                       
<span class="cf-error-code">520</span>                                                                                                                                         
<small class="heading-ray-id">Ray ID: 48f5f86bcdf359cc &bull; 2018-12-26 19:31:55 UTC</small>                                                                                  
</h1>                                                                                                                                                                          
<h2 class="cf-subheadline">Web server is returning an unknown error</h2>                                                                                                       
</div>                                                                                                                                                                         
<div class="cf-section cf-highlight cf-status-display">                                                                                                                        
<div class="cf-wrapper">                                                                                                                                                       
<div class="cf-columns cols-3">                                                                                                                                                
<div id="cf-browser-status" class="cf-column cf-status-item cf-browser-status ">                                                                                               
<div class="cf-icon-error-container">                                                                                                                                          
<i class="cf-icon cf-icon-browser"></i>                                                                                                                                        
<i class="cf-icon-status cf-icon-ok"></i>                                                                                                                                      
</div>                                                                                                                                                                         
<span class="cf-status-desc">You</span>                                                                                                                                        
<h3 class="cf-status-name">Browser</h3>                                                                                                                                        
<span class="cf-status-label">Working</span>                                                                                                                                   
</div>                                                                                                                                                                         
<div id="cf-cloudflare-status" class="cf-column cf-status-item cf-cloudflare-status ">                                                                                         
<div class="cf-icon-error-container">                                                                                                                                          
<i class="cf-icon cf-icon-cloud"></i>                                                                                                                                          
<i class="cf-icon-status cf-icon-ok"></i>                                                                                                                                      
</div>                                                                                                                                                                         
<span class="cf-status-desc">Vienna</span>                                                                                                                                     
<h3 class="cf-status-name">Cloudflare</h3>                                                                                                                                     
<span class="cf-status-label">Working</span>                                                                                                                                   
</div>                                                                                                                                                                         
<div id="cf-host-status" class="cf-column cf-status-item cf-host-status cf-error-source">                                                                                      
<div class="cf-icon-error-container">                                                                                                                                          
<i class="cf-icon cf-icon-server"></i>                                                                                                                                         
<i class="cf-icon-status cf-icon-error"></i>                                                                                                                                   
</div>                                                                                                                                                                         
<span class="cf-status-desc">api.kraken.com</span>                                                                                                                             
<h3 class="cf-status-name">Host</h3>                                                                                                                                           
<span class="cf-status-label">Error</span>                                                                                                                                     
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
<div class="cf-section cf-wrapper">                                                                                                                                            
<div class="cf-columns two">                                                                                                                                                   
<div class="cf-column">                                                                                                                                                        
<h2>What happened?</h2>                                                                                                                                                        
<p>There is an unknown connection issue between Cloudflare and the origin web server. As a result, the web page can not be displayed.</p>                                      
</div>                                                                                                                                                                         
<div class="cf-column">                                                                                                                                                        
<h2>What can I do?</h2>                                                                                                                                                        
<h5>If you are a visitor of this website:</h5>                                                                                                                                 
<p>Please try again in a few minutes.</p>                                                                                                                                      
<h5>If you are the owner of this website:</h5>                                                                                                                                 
<p><span>There is an issue between Cloudflare's cache and your origin web server. Cloudflare monitors for these errors and automatically investigates the cause. To help suppor
t the investigation, you can pull the corresponding error log from your web server and submit it our support team. Please include the Ray ID (which is at the bottom of this er
ror page).</span> <a href="https://support.cloudflare.com/hc/en-us/articles/200171936-Error-520">Additional troubleshooting resources</a>.</p>                                 
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
<div class="cf-error-footer cf-wrapper">                                                                                                                                       
<p>                                                                                                                                                                            
<span class="cf-footer-item">Cloudflare Ray ID: <strong>48f5f86bcdf359cc</strong></span>                                                                                       
<span class="cf-footer-separator">&bull;</span>                                                                                                                                
<span class="cf-footer-item"><span>Your IP</span>: 80.110.165.137</span>                                                                                                       
<span class="cf-footer-separator">&bull;</span>                                                                                                                                
<span class="cf-footer-item"><span>Performance &amp; security by</span> <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="
_blank">Cloudflare</a></span>                                                                                                                                                  
</p>                                                                                                                                                                           
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
</div>                                                                                                                                                                         
</body>                                                                                                                                                                        
</html>                                                                                                                                                                        
                                                                                                                                                                               
                                                                                                                                                                               
Press Enter to abort        

If I disable the api key for kraken I can't start the bot

2018-12-26 20:35:51,156 [MainThread  ] [INFO ]  Loading user data
2018-12-26 20:35:53,173 [MainThread  ] [INFO ]  Found exchanges {'Poloniex', 'Kucoin', 'Binance'} with keys ['Binance', 'Poloniex', 'Kucoin'], secrets ['Binance', 'Poloniex', 'Kucoin'], uids [], password []
An error occured:
'Kraken'

Press Enter to abort

Timeout issues with poloniex

First of all, the bot is really cool and helps a lot to track and handle orders!

Describtion of the issue
Telegram pushes in irregular intervals an error message, which makes it difficult to have the focus on the real trades

eazebot, [13.12.18 00:35]
error: Waiting for tradeSet update to finish timed out after 1 min, resetting updating variable
...
eazebot, [13.12.18 00:45]
eazebot, [13.12.18 00:48]
eazebot, [13.12.18 01:16]
eazebot, [13.12.18 01:23]
eazebot, [13.12.18 02:13]
...

telegramEatzeBot.log

2018-12-13 00:33:30,461 [job_queue   ] [INFO ]  Updating trade sets...
2018-12-13 00:33:49,867 [job_queue   ] [ERROR]  poloniex POST https://poloniex.com/tradingApi HTTPSConnectionPool(host='poloniex.com', port=443): Read timed out. (read timeout=10)
2018-12-13 00:33:49,867 [job_queue   ] [INFO ]  Finished updating trade sets...
2018-12-13 00:34:00,461 [job_queue   ] [INFO ]  Updating trade sets...
2018-12-13 00:35:04,709 [job_queue   ] [ERROR]  User 479767609: Waiting for tradeSet update to finish timed out after 1 min, resetting updating variable
2018-12-13 00:35:04,755 [job_queue   ] [WARNI]  Some connection (?) error occured when trying to send a telegram message. Retrying..
2018-12-13 00:35:12,149 [job_queue   ] [INFO ]  Finished updating trade sets...

Is the read timeout of "10" the issue?

It only seems related to POLONIEX, I have also used the bot without POLO -> no issues

System

  • OS: Windows 10
  • EazeBot (v1.7.9) *
  • ccxt 1.18,5

I only have changed the updateInterval to 0.5 in the botConfig.json
^^ Is this a problem?

Regards Off

"Authentication failed for <exchange>" on startup

Describe the bug
Another minor issue i get from time to time on startup: **Authentication failed for ... **

`2020-07-31 21:19:06,732 [MainThread ] [INFO ] Found exchanges with keys ['poloniex', 'kucoin', 'kraken', 'binance'], secrets ['poloniex', 'kucoin', 'kraken', 'binance'], uids [], password ['kucoin']

2020-07-31 21:19:06,734 [MainThread ] [WARNI] Authentication failed for poloniex
2020-07-31 21:19:06,736 [MainThread ] [WARNI] Authentication failed for kucoin
2020-07-31 21:19:06,738 [MainThread ] [WARNI] Authentication failed for kraken
2020-07-31 21:19:11,217 [Bot:73674776] [INFO ] Checking 1 year buy period limit

2020-07-31 21:19:11,537 [Bot:73674776] [INFO ] User **** None (username: *****, id: ****) (re)started the bot
`
After clicking add/update exchanges (apis.json) all exchanges work as expected

  • OS: Windows 10 64 bit
  • Version eazebot as shown in botInfo 2.6.0 (docker version)
  • Version of ccxt: 1.32.12

Multi account ability

Dear @MarcelBeining
I am back again and asking for new feature :D , Is it possible to configure the bot some how if i open a new trade it opens in multiple accounts in the same exchange or different ? for example if i send a signal to open for my account if i have two accounts it opens in both .

Delete an old trade set

Describe the bug
Thanks for a fantastic program, few have the features and exchanges you have included.
On Button 'Status of Trade Sets', a old trade set is shown, I ask to delete, without selling coins, and Telegram report nothing, but File "/usr/local/lib/python3.6/dist-packages/eazebot/tradeHandler.py", line 471, in create_trade_history_entry
'days': None if 'createdAt' not in ts
TypeError: argument of type 'BaseTradeSet' is not iterable

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Status of Trade sets'
  2. Click on 'either Delete or Edit Delete'
  3. Sell Coins 'No'
  4. Delete Trade Set 'Yes' = in Putty = iterable error in tradeHandler.py", line 471

Expected behavior
I am hoping to clear the trade set.

Thanks Again
Steven

Issue with Deleting a Trade Set

Hi again,

I came back from leaving the bot on overnight. I received a few errors after trying to delete a tradeset that never executed since the price target was never reached. Here is what I have:

2018-06-30 19:06:51,892 [job_queue ] [INFO ] Updating trade sets...
2018-06-30 19:06:51,892 [job_queue ] [INFO ] Finished updating trade sets...
2018-06-30 19:07:03,664 [dispatcher ] [ERROR] An uncaught error was raised while processing the update
Traceback (most recent call last):
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\base\exchange.py", line 366, in fetch
response.raise_for_status()
File "C:\Program Files (x86)\Python37-32\lib\site-packages\requests\models.py", line 939, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.binance.com/api/v3/order?timestamp=1530410823760&recvWindow=5000&symbol=ELFBTC&orderId=27401281&signature=b6e7aefe1b6e15c12fbe337d230b2e777248de662e4d599984632ea20f086527

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Program Files (x86)\Python37-32\lib\site-packages\telegram\ext\dispatcher.py", line 279, in process_update
handler.handle_update(update, self)
File "C:\Program Files (x86)\Python37-32\lib\site-packages\telegram\ext\conversationhandler.py", line 305, in handle_update
new_state = self.current_handler.handle_update(update, dispatcher)
File "C:\Program Files (x86)\Python37-32\lib\site-packages\telegram\ext\callbackqueryhandler.py", line 143, in handle_update
return self.callback(dispatcher.bot, update, **optional_args)
File "c:\Run\EazeBot 1.2.15\eazebot\EazeBot.py", line 690, in InlineButtonCallback
ct.deleteTradeSet(uidTS,sellAll='yes' in args)
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 367, in deleteTradeSet
self.deactivateTradeSet(iTs,1)
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 237, in deactivateTradeSet
self.cancelBuyOrders(iTs)
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 592, in cancelBuyOrders
orderInfo = self.fetchOrder(trade['oid'],self.tradeSets[iTs]['symbol'],'BUY')
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 617, in fetchOrder
return self.safeRun(lambda: self.exchange.fetchOrder (oid,symbol),0)
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 120, in safeRun
raise(e)
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 114, in safeRun
return func()
File "c:\Run\EazeBot 1.2.15\eazebot\tradeHandler.py", line 617, in
return self.safeRun(lambda: self.exchange.fetchOrder (oid,symbol),0)
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\binance.py", line 697, in fetch_order
response = self.privateGetOrder(self.extend(request, params))
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\binance.py", line 897, in request
response = self.fetch2(path, api, method, params, headers, body)
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\base\exchange.py", line 305, in fetch2
return self.fetch(request['url'], request['method'], request['headers'], request['body'])
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\base\exchange.py", line 378, in fetch
self.handle_errors(response.status_code, response.reason, url, method, self.last_response_headers, self.last_http_response)
File "C:\Program Files (x86)\Python37-32\lib\site-packages\ccxt\binance.py", line 890, in handle_errors
raise exceptions[error](self.id + ' ' + body)
ccxt.base.errors.InvalidNonce: binance {"code":-1021,"msg":"Timestamp for this request was 1000ms ahead of the server's time."}
2018-06-30 19:07:14,355 [MainThread ] [INFO ] Received signal 2 (SIGINT), stopping...
2018-06-30 19:07:17,432 [MainThread ] [INFO ] Created user data autosave backup
2018-06-30 19:07:17,450 [MainThread ] [INFO ] User data autosaved
2018-06-30 19:07:24,257 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2018-06-30 19:07:24,257 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2018-06-30 19:07:24,258 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2018-06-30 19:07:24,258 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2018-06-30 19:07:24,258 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2018-06-30 19:07:24,259 [MainThread ] [INFO ] Loading user data
2018-06-30 19:07:31,064 [dispatcher ] [INFO ] User Jacob Burbank-Goldrich (username: jbgoldrich, id: 999999999) (re)started the bot
2018-06-30 19:08:02,269 [dispatcher ] [ERROR] User 530658067: <class 'ccxt.base.errors.ExchangeError'> in tradeHandler.py at line 114: binance: unknown error code: {"code":-1104,"msg":"Not all sent parameters were read; read '5' parameter(s) but was sent '6'."} -1104

Trying to delete the tradeset consistently results in this error or other Timestamp errors.

data.pickle corrupted after setting trailing SL

Hi, I again :)

I wanted to set a trailing SL in percent:

Error:

2020-08-11 13:34:48,017 [Bot:73674776] [INFO ]  Finished updating trade sets...
Traceback (most recent call last):
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 322, in print_trade_status
    'showProfitIn']),
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\tradeHandler.py", line 415, in get_trade_set_info
    ' (trailing with offset %.2g %%)' % (ts.delta * 100)))
AttributeError: 'BaseTradeSet' object has no attribute 'delta'
2020-08-11 13:34:51,879 [Bot:73674776] [ERROR]  None
2020-08-11 13:35:04,372 [Bot:73674776] [INFO ]  Updating trade sets...
2020-08-11 13:35:18,042 [Bot:73674776] [INFO ]  Finished updating trade sets...
Traceback (most recent call last):
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 322, in print_trade_status
    'showProfitIn']),
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\tradeHandler.py", line 415, in get_trade_set_info
    ' (trailing with offset %.2g %%)' % (ts.delta * 100)))
AttributeError: 'BaseTradeSet' object has no attribute 'delta'
2020-08-11 13:35:20,690 [Bot:73674776] [ERROR]  None

After the error the trade set has completely disappeared, i tried to restart the bot, but now the data file is completly corrupted:

******** Welcome to EazeBot (v2.6.1) ********
Free python/telegram bot for easy execution & surveillance of crypto trading plans on multiple exchanges


C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\conversationhandler.py:220: UserWarning: If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
  warnings.warn("If 'per_message=False', 'CallbackQueryHandler' will not be "
2020-08-11 13:40:56,068 [MainThread  ] [INFO ]  Loading user data
Traceback (most recent call last):
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\__main__.py", line 12, in <module>
    main.main()
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\main.py", line 106, in main
    EazeBot(config=config).start_bot()
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 1464, in start_bot
    self.updater.dispatcher.user_data = clean_data(load_data(), self.__config__['telegramUserId'])
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\auxiliary_methods.py", line 307, in load_data
    raise e
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\auxiliary_methods.py", line 287, in load_data
    return dill.load(f)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\dill\_dill.py", line 305, in load
    obj = pik.load()
EOFError: Ran out of input

Standard version: 2.6.1
OS: Windows 10 64 bit
ccxt: 1.32.12

Any help would be very appreciate ...
I tried the backup, but there exists only one backup(?) which is already corrupted :(

{
	"telegramAPI": "xxxxxxxxxx",
	"telegramUserId": xxxxxxxx,
	"updateInterval": 0.5,
	"extraBackupInterval": 7,
	"maxBackupFileCount": 12,
	"minBalanceInBTC": 0.001
}

Thx and best regards,
off

Error trying to get trade sets crex24

Describe the bug
A clear and concise description of what the bug is. Also copy and paste errors shown in Telegram, as well errors (from the time of the bug) shown in the telegramEazeBot.log file in your EazeBot folder.

This is the first time I have tried to run this bot. I followed the install instructions as provided. I started the bot, it seemed to start fine, with the exception of a couple of warnings. These warnings have not been seen on subsequent bot starts.

I attempted to load all trading pairs from my exchange. I then tried to assign a new trading pair.

The bot did not display my trading pairs as requested. It also did not accept any trading pair entries that I manually entered.

Log file is shown at the end of this report.

Crex24 Exchange

To Reproduce
Steps to reproduce the behavior:

  1. Start bot using this command: sudo python3 startBotScript.py
  2. Start the Telegram Bot
  3. In Telegram, click "New Trade Set"
  4. Click on "Crex24"

Expected behavior
I expected the bot to allow me to assign trade pairs.

Screenshots
If applicable, add screenshots to help explain your problem.

System (please complete the following information):

  • OS: Raspbian Stretch on Raspberry Pi 3
  • Version eazebot: 1.9.10
  • Version of ccxt: 1.18.131
  • Exchange: Crex24

Additional context
Add any other context about the problem here.

Error log from
2019-02-26 14:56:33,182 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2019-02-26 14:56:33,184 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2019-02-26 14:56:33,236 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2019-02-26 14:56:33,237 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2019-02-26 14:56:33,239 [MainThread ] [WARNI] If 'per_message=False', 'CallbackQueryHandler' will not be tracked for every message.
2019-02-26 14:56:33,243 [MainThread ] [INFO ] Loading user data
2019-02-26 14:56:35,282 [MainThread ] [INFO ] Found exchanges {'Crex24'} with keys ['Crex24'], secrets ['Crex24'], uids [], password []
2019-02-26 14:56:43,440 [job_queue ] [INFO ] Updating trade sets...
2019-02-26 14:56:43,614 [job_queue ] [ERROR] local variable 'iTs' referenced before assignment
2019-02-26 14:56:43,615 [job_queue ] [INFO ] Finished updating trade sets...
2019-02-26 14:56:47,903 [dispatcher ] [INFO ] User Jim Baize (username: None, id: 727599726) (re)started the bot
2019-02-26 14:57:08,887 [dispatcher ] [WARNI] A TelegramError was raised while processing the Update
2019-02-26 14:57:08,888 [dispatcher ] [ERROR] No error handlers are registered, logging exception.
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/telegram/utils/request.py", line 157, in _parse
data = json.loads(decoded_s)
File "/usr/lib/python3.5/json/init.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/telegram/ext/dispatcher.py", line 279, in process_update
handler.handle_update(update, self)
File "/usr/local/lib/python3.5/dist-packages/telegram/ext/conversationhandler.py", line 305, in handle_update
new_state = self.current_handler.handle_update(update, dispatcher)
File "/usr/local/lib/python3.5/dist-packages/telegram/ext/callbackqueryhandler.py", line 143, in handle_update
return self.callback(dispatcher.bot, update, **optional_args)
File "/usr/local/lib/python3.5/dist-packages/eazebot/EazeBot.py", line 655, in InlineButtonCallback
query.edit_message_text('Choose a pair...',reply_markup=InlineKeyboardMarkup(buttons))
File "/usr/local/lib/python3.5/dist-packages/telegram/callbackquery.py", line 141, in edit_message_text
chat_id=self.message.chat_id, message_id=self.message.message_id, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/telegram/bot.py", line 65, in decorator
result = func(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/telegram/bot.py", line 90, in decorator
result = self._request.post(url, data, timeout=kwargs.get('timeout'))
File "/usr/local/lib/python3.5/dist-packages/telegram/utils/request.py", line 309, in post
headers={'Content-Type': 'application/json'})
File "/usr/local/lib/python3.5/dist-packages/telegram/utils/request.py", line 216, in _request_wrapper
message = self._parse(resp.data)
File "/usr/local/lib/python3.5/dist-packages/telegram/utils/request.py", line 163, in _parse
raise TelegramError('Invalid server response')
telegram.error.TelegramError: Invalid server response
2019-02-26 14:57:43,440 [job_queue ] [INFO ] Updating trade sets...
2019-02-26 14:57:44,005 [job_queue ] [ERROR] local variable 'iTs' referenced before assignment
2019-02-26 14:57:44,006 [job_queue ] [INFO ] Finished updating trade sets...
2019-02-26 14:58:43,440 [job_queue ] [INFO ] Updating trade sets...
2019-02-26 14:58:43,966 [job_queue ] [ERROR] local variable 'iTs' referenced before assignment
2019-02-26 14:58:43,967 [job_queue ] [INFO ] Finished updating trade sets...
2019-02-26 14:59:43,440 [job_queue ] [INFO ] Updating trade sets...

Buttons to choose which Status of trade sets to show

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Mis Calculation

Hello Eazybot is installed on an AWS server. I noticed that something is wrong with the bill.
See the screenshot.
If I want to open another sell level then the open coins do not match.
See screenshot.Thank you for your help.
rechenfehler bnb 1
rechenfehler bnb 2
Hallo Eazybot ist auf einem AWS Server installiert. Mir ist aufgefallen, dass irgendwas mit der Rechnung nicht stimmen kann.
Siehe Screenshot.
Wenn ich nun einen weiteren Sell Level eröffnen will dann stimmen die offenen Coins nicht überein.
Siehe Screenshot.Danke für deine Hilfe

CREATE NEW TRADE SET WITH RAW TEXT

Dear Marcel
Again I have to say thank you for sharing this amazing code with us because it is very useful and easy to use , I am student of master of communication and I am trading in my free time. Before I ran this bot I had to check the binance every hour to check my positions are reached or not or even how much I earned or lost ! but now with this amazing bot I can check everything very easy.
I tried to change your code just to add one more feature but unfortunately I couldn't do that ( I am not a programmer and tried to do that by searching in google :D ) so I decided to ask you one more time and even I am ready to pay for that if you have free time please add this feature and share the code with us .
the feature is CREATE NEW TRADE SET WITH RAW TEXT for example just by sending this message to the bot it sets everything :

BNB/USDT
QUANTITY 100
ENTRY 3.060 - 3.090
TARGETS 3.400 - 3.650 - 4.000 - 4.350 - 4.666 - 5.000
STOP LOSS DAILY BELOW 2.818

Because to create a new trade set and going through the steps taking time and even with this feature we can share a signal with friends and use it, Please Please Please try to add this because so far few of my friends start using it and for sure by earning some money they also will donate to your address.

thank you
Nassio

"Choose max amount" not working for "Add sell level"

Describe the bug
Creating a new trade set with adding a new sell level with a specific price.
After that you enter the amount to sell or "choose max amount"
Entering an amount works but on clicking "choose max amount" an error is thrown:

2020-08-04 19:57:05,369 [Bot:73674776] [INFO ] Finished updating trade sets... No error handlers are registered, logging exception. Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/telegram/ext/dispatcher.py", line 340, in process_update handler.handle_update(update, self, check, context) File "/usr/local/lib/python3.8/site-packages/telegram/ext/conversationhandler.py", line 465, in handle_update new_state = handler.handle_update(update, dispatcher, check_result, context) File "/usr/local/lib/python3.8/site-packages/telegram/ext/handler.py", line 119, in handle_update return self.callback(update, context) File "/eazebot_docker/eazebot/bot.py", line 1012, in inline_button_callback return context.user_data['lastFct'].pop()(float(args.pop(0))) File "/eazebot_docker/eazebot/bot.py", line 659, in <lambda> user_data['lastFct'].append(lambda r: self.ask_pos(context, exch, uid_ts, direction, 'amount', r, utid)) File "/eazebot_docker/eazebot/bot.py", line 665, in ask_pos response = response / utid.price AttributeError: 'str' object has no attribute 'price'

  • OS: Windows 10 64 bit
  • Version eazebot as shown in botInfo 2.6.0 (docker version)
  • Version of ccxt: 1.32.12

Its minor.

Add buy level is not possible anymore

Describe the bug
After updating to v2.4.3 i can't add new buy levels

image
After clicking "no" -> nothing happens

An inactive trade set without any buy level

log file:

2020-07-28 20:04:45,083 [Bot:73674776] [INFO ] Finished updating trade sets... No error handlers are registered, logging exception. Traceback (most recent call last): File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\dispatcher.py", line 340, in process_update handler.handle_update(update, self, check, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\conversationhandler.py", line 465, in handle_update new_state = handler.handle_update(update, dispatcher, check_result, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\ext\handler.py", line 119, in handle_update return self.callback(update, context) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 816, in timing_callback return context.user_data['lastFct'].pop()(None) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 615, in <lambda> lambda res: self.ask_pos(bot, user_data, exch, uid_ts, direction, apply_fct, 'candleAbove', res)) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 642, in ask_pos return apply_fct() File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 1103, in <lambda> 'continue')) File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\eazebot\bot.py", line 1105, in inline_button_callback ct.add_buy_level(uid_ts, context.user_data['tempTradeSet'][0], AttributeError: 'tradeHandler' object has no attribute 'add_buy_level'

System (please complete the following information):

  • OS: Windows 10 64 bit
  • Version v2.4.3
  • Version of ccxt: 1.32.12

thx in advance, your bot is really great!

Adding/importing existing orders into eazebot

Sometimes i create an order without eazebot ... right now if you want to handle those trades through eazebot, you have to delete the existing order and re-create it with eazebot but than the order get placed to the end of exchange processing queue (especially a problem on low-sat coins)

I'm not sure if there are any technical issues regarding the import(?)

from my naive perspective you might list existing placed orders (unfilled) for the selected trading pair
and then you can choose the orders to import.
After that it should be possible to add SL (als already possible)

Is this a use case you find also interesting or not relevant for you?

Future and stop loss

dear @MarcelBeining
Hi , is there any chance you can add futures trade to this bot ? especially I am looking for trailing stop loss in binance futures ! Thank you so much

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.