3cqsbot
Service who use 3CQS signals to manage 3Commas DCS bots
Install / Use
/learn @TBMoonwalker/3cqsbotREADME
Summary
The 3cqsbot can be used to start and stop 3commas dca bots with the help of the 3cqs signals. You can subscribe to the telegram channel to receive these signals. If you have any questions regarding the signals, please contact the developer directly.
Disclaimer
The 3cqsbot is meant to be used for educational purposes only. Use with real funds at your own risk
Prerequisites/Installation
3CQS Signals Bot
Join the telegram channel telegram channel according to the official Telegram documentation
Wait for the signals. Actually the signals are in a beta phase and you have to be chosen to get them. Be patient if they not arrive after joining
Telegram API
In the meantime create your telegram api account and insert them into api_id and api_hash fields in the 'telegram' section of the config.ini
3Commas API
Create a 3commas api account too and insert the values in the key and secret fields in the 'commas' section of the config.ini
Permissions needed: BotsRead, BotsWrite, AccountsRead
Operating Systems
- MacOS
- Linux
- Ubuntu
- Windows
- untested (please let me know if it works)
- Docker
Installation
Python
Please install at least version 3.7 on your system
Python modules
pip3 install -r requirements.txt
Configuration (config.ini)
Copy the *.example* from the examples directory to config.ini in the root folder and change your settings regarding the available settings below. The value type doesn't matter, because Pythons configparser is taking care of the types. So you don't need '' or "" around the values.
General
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ debug | boolean | NO | (false) true | Set logging to debug log_to_file | boolean | NO | (false) true | Log to file instead of console log_file_path | string | NO | (3cqsbot.log) | Location of the log file log_file_size | integer | NO | (200000) | Log file size log_file_count | integer | NO | (5) | How many logfiles will be archived, before deleted
Telegram
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ api_id | string | YES | | Telegram API ID api_hash | string | YES | | Telegram API Hash sessionfile | string | NO | (tgsession) | Telegram sessionfile location
!!! ATTENTION - Do not share your sessionfile with other 3cqsbot instances - this will lead to problems and misfunctional bots. For each instance you have to create a new sessionfile !!!
3Commas
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ chatroom | string |NO | (3C Quick Stats) | Name of the chatroom - on Windows please use the ID 5011413076 key | string | YES | | 3Commas API Key secret | string | YES | | 3Commas API Secret timeout | integer | NO | (3) | Timeout waiting for a 3Commas api response retries | integer | NO | (5) | Number of retries after a 3Commas api call was not successful delay_between_retries | number | NO | (2.0) | Waiting time factor between unsuccessful retries system_bot_value | integer | NO | (300) | Number of actual bots running on your account. This is important, so that the script can see all running bots and does not start duplicates!
DCABot configuration
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ prefix | string | YES | (3CQSBOT) | The name prefix of the created bot subprefix | string | YES | (MULTI) | Subprefix of the bot (Best would be SINGLE or MULTI) suffix | string | YES | (TA_SAFE) | Suffix in the bot name - could be the used bot configuration tp | number | YES | (1.5) | Take profit in percent bo | number | YES | (11) | Base order volume so | number | YES | (11) | Safety order volume os | number | YES | (1.05) | Safety order volume scale ss | number | YES | (1) | Safety order step scale sos | number | YES | (2.4) | Price deviation to open safety orders mad | integer | YES | (3) | Max active deals for a bot max | integer | YES | (1) | Max active safety trades count mstc | integer | YES | (25) | Max safety trades count sdsp | integer | NO | (1) | Simultaneous deals per same pair (only Multibot) single | boolean | YES | (false) true | Type of Bot creation (True for Single DCA Bots) single_count | integer | YES | (3) | Maximum single bots - only have to configured for singlebots btc_min_vol | number | NO | (100) | Minimum 24h volume trading calculated in BTC cooldown | number | NO | (30) | Number of seconds to wait until starting another deal deals_count | integer | NO | (0) | Bot will be disabled after completing this number of deals. If 0 bot will not be disabled (default)
Configure the 'dcabot' section in the config.ini according to your favourite bot configuration.
If you don't have any, please take a look at this site for published settings.
Default configuration is based on Trade Alts Safer settings: https://discord.gg/tradealts
Note about single/multibot deal/bots settings
Singlebot configuration
single_count = how many singlebots can run overall
mad = how many deals can run on a singlebot pair
Examples:
single_count=1, mad=1 - Only one singlebot is started, and only one deal is started
single_count=3, mad=1 - Three singlebots are started, and only one deal per singlebot is started
single_count=3, mad=2 - Three singlebots are started, and two deals are started per singlebot
Multibot configuration
mad = how many deals per composite bot can run
Example:
mad=20 - 20 deals with different pairs can run at the same time
Trading mode
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ market | string | YES | (USDT) | Trading market (Example: BUSD, USDT, USDC) trade_mode | string | YES | (paper) real | Real or Paper trading mode account_name | string | YES | (Paper trading 123456) | Account name for trading. Can be found unter "My Exchanges". deal_mode | string | NO | ([{"options": {"time": "3m", "points": "100", "time_period": "7", "trigger_condition": "less"}, "strategy": "rsi"}]) signal | Method how the script is creating new deals in multipair bot limit_initial_pairs | boolean |NO | (false) | Limit initial pairs to the max number of deals (MAD) - bot chooses the top pairs btc_pulse | boolean | NO | (false), true | Activates or deactivates the bots according to Bitcoins behaviour. If Bitcoin is going down, the bot will be disabled delete_single_bots | boolean | NO | (false), true | If set to true, bots without an active deal will be deleted in single bot configuration singlebot_update | boolean | NO | (true), false | If set to true, singlebots settings will be updated when enabled again (new settings only work after restart of the script) trailing | boolean | NO | (false), true | Trailing profit enabled trailing_deviation | number | NO | (0.2) | Deviation of trailing profit trade_future | boolean | NO | (false), true | Enable futures trading leverage_type | string | NO | (cross), custom, not_specified, isolated | Different leverage types for futures trading from 3commas leverage_value | integer | NO | (2) | Leverage value for futures trading stop_loss_percent | integer | NO | (1) | Stop loss value in percent for futures trading stop_loss_type | string | NO | (stop_loss_and_disable_bot), stop_loss | Stop Loss type for futures trading stop_loss_timeout_enabled | boolean | NO | (false), true | Enable stop loss timeout for futures trading stop_loss_timeout_seconds | integer | NO | (5) | Time interval for stop loss in seconds for futures trading
Deal Mode explanation
single=true deal_mode=signal
A single bot for a specific pair (the signal) will be created when the signal fits your configured filters and when the signal is a "START" signal. The deal will be start immediately. The bot will be disabled on a stop signal for this specific pair. If delete_single_botsis set to true, the script tries do delete the bot. This only works, when no deal is running.
single=true deal_mode="self asigned strategy"
Everything is the same as with the other single mode, but the deals are started dependent on your configured deal_mode strategy.
single=false deal_mode=signal
A multi bot will be created with the top 30 Symrank list (initical call to /symrank). A new deal will be started when a new signal is coming in.
If it is a STOP/START signal which is not from an existing pair a random pair from the initial top 30 Symrank list is used for a new deal.
If it is a START signal from an existing pair or a freshly added pair, exactly that pair is used for a new deal.
Pairs will be deleted from the list during a STOP signal and added with a START signal, if it fits the filters.
single=false deal_mode="self asigned strategy"
Everything is the same as with the other multi mode, but the deals are started dependent on your configured deal_mode strategy.
Filter
Name | Type | Mandatory | Values(default) | Description ------------ | ------------ | ------------ | ------------ | ------------ symrank_signal | string | YES | (triple100), top30, quad100, quad250, svol, svoldouble, xvol, hvol, hvoldouble, uvol, all | Decide which signal the bot should parse. symrank_limit_min | integer | NO | (1) | Bots will be created when the symrank value is over this limit symrank_limit_max | integer | NO | (100) | Bots will be created when the symrank value is under this limit volatility_limit_min | number |
