Commit Graph

407 Commits

Author SHA1 Message Date
Florian Reitmeir
0895407811 add balance_dust_level parameter to make telegram less chatty 2021-02-28 08:51:32 +01:00
Matthias
072abde9b7 Introduce round_coin_value to simplify coin rounding 2021-02-13 16:05:35 +01:00
Matthias
53c208197d Add bot_name setting
allows naming the bot to simply differentiate when running different
bots.
2021-01-16 16:19:49 +01:00
Matthias
63a579dbab Add sell_profit_offset parameter
Allows defining positive offsets before enabling the sell signal
2021-01-11 19:30:25 +01:00
Matthias
a93bb6853b Document *candles settings, implement validations 2020-12-07 10:47:13 +01:00
Matthias
089c463cfb Introduce max_drawdown protection 2020-12-07 08:23:10 +01:00
Matthias
9d6f3a89ef Improve docs and fix typos 2020-12-07 08:23:10 +01:00
Matthias
bb06365c50 Improve protection documentation 2020-12-07 08:23:10 +01:00
Matthias
1f703dc341 Improve protection documentation 2020-12-07 08:23:10 +01:00
Matthias
00d4820bc1 Add low_profit_pairs 2020-12-07 08:23:10 +01:00
Matthias
9f6c2a583f Better wording for config options 2020-12-07 08:23:10 +01:00
Matthias
2a66c33a4e Add locks per pair 2020-12-07 08:23:10 +01:00
Matthias
816703b8e1 Improve protections work 2020-12-07 08:23:10 +01:00
Matthias
f39a534fc0 Implement global stop (First try) 2020-12-07 08:23:10 +01:00
Matthias
dda5bcbc8d
Merge pull request #4009 from mrsegen/patch-4
[Pairlist] Add PerformanceFilter
2020-11-30 07:48:15 +01:00
Leif Segen
e1d42ba78c Alphabetize 2020-11-28 09:44:01 -06:00
Leif Segen
cfbd1c4c43
Merge branch 'develop' into patch-4 2020-11-28 01:17:34 -06:00
Leif Segen
7cbd89657f Initial step towards implementing proposed code 2020-11-27 21:24:40 -06:00
Matthias
95c3c45ec9 Remove long deprecated settings that moved from experimental to
ask_strategy
2020-11-27 20:24:32 +01:00
Matthias
8f1d2ff070 Renamd volatilityFilter to RangeStabilityFilter 2020-11-25 15:14:29 +01:00
Matthias
109824c9a8 Add VolatilityFilter 2020-11-21 15:39:00 +01:00
Matthias
83861fabde Fix #3967, move TradeList type to constants 2020-11-21 10:52:15 +01:00
Matthias
5cb3735a57 Improve error when hyperopt-loss-function is missing 2020-10-28 07:58:55 +01:00
Matthias
378b214a56 Remove hyperopt-loss default option
Force users to make a concious choice on a hyperopt-loss function
2020-10-05 19:27:28 +02:00
Matthias
e53b88bde3 Introduce notification_settings for telegram 2020-09-19 19:38:33 +02:00
Matthias
43035a3f76
Merge pull request #3724 from freqtrade/fix/3084
Forcesell should use the available methods for handling a trade correctly
2020-09-01 15:11:05 +02:00
Matthias
38c52c7eee
Merge pull request #3626 from freqtrade/feat/hdf5
Introduce HDF5 Datahandler
2020-08-31 16:10:24 +02:00
Matthias
9c0a3fffd7 Avoid double notifications in case of partially filled buy orders 2020-08-26 22:17:43 +02:00
Matthias
add78414e4 Don't overwrite cancel_reason 2020-08-26 21:24:47 +02:00
Matthias
87e4a82041 Merge branch 'develop' into bt_add_maxdrawdown 2020-08-09 08:34:36 +02:00
Matthias
0614e59966 Add tables dependency 2020-07-23 19:33:23 +02:00
Matthias
0b36693acc Add filter for stoploss_on_exchange_limit_ratio to constants 2020-07-13 19:48:21 +02:00
Matthias
2ed808da1f Extract .last_result.json to constant 2020-07-03 06:58:27 +02:00
Matthias
fbddfaeacf Introduce DatetimePrintFormat 2020-07-03 06:58:27 +02:00
Matthias
c2a6f70b4c Merge branch 'develop' into keep_dataframe_noapi 2020-06-30 07:46:52 +02:00
Matthias
865b73a456
Merge pull request #3520 from freqtrade/rpc/cors_setting
Fix RPC Cors
2020-06-27 15:38:40 +02:00
gambcl
ab7f5a2bcf Added pairslist AgeFilter 2020-06-24 23:58:12 +01:00
Matthias
b77a105778 Add CORS_origins key to configuration 2020-06-24 20:32:19 +02:00
Matthias
9794914838 store dataframe updated as tuple 2020-06-18 06:50:05 +02:00
hroff-1902
64881a94e2
Merge branch 'develop' into timeframe 2020-06-02 15:56:34 +03:00
hroff-1902
2cc47f651d
Merge pull request #3408 from freqtrade/apiserver_logging
Apiserver logging
2020-06-02 14:32:44 +03:00
Matthias
09fe3c6f5e create compatibility code 2020-06-02 09:52:30 +02:00
Matthias
009ea0639f Exchange some occurances of ticker_interval 2020-06-01 20:33:26 +02:00
Matthias
3139343946 Remove capital_available_percentage and raise instead 2020-06-01 19:58:28 +02:00
Matthias
7ad1c7e817 Allow lower verbosity level for api server
Not logging all calls makes sense when running the UI
otherwise this is VERY verbose, clogging up the log.
2020-05-31 09:51:45 +02:00
Matthias
ea5daee505 Allow changing severity of strategy-validations to log only. 2020-05-29 19:37:18 +02:00
Matthias
046202fdda Fix typing circular dependency 2020-05-22 20:56:34 +02:00
hroff-1902
4bfab5e222 Add ShuffleFilter 2020-05-18 02:36:40 +03:00
hroff-1902
baf5f4f29c
Update freqtrade/constants.py 2020-05-16 21:28:54 +03:00
Matthias
2a1fcc0f06 Merge branch 'develop' into pr/jpribyl/3210-1 2020-05-16 13:09:38 +02:00
jpribyl
bd51cd332b Cancel all open orders after receiving /stop or ctrl+c 2020-05-01 10:36:11 -06:00
Matthias
1659ddcc5d Add conversion function from fetch_trades to list 2020-04-01 19:45:21 +02:00
Matthias
8bfbbac748 Add default trades columns 2020-04-01 19:45:00 +02:00
Matthias
281cf577d1 Remove unsupported FIAT 2020-03-07 17:03:31 +01:00
Matthias
de48a697b0 Use price_side for get_sell_rate 2020-02-26 19:39:12 +01:00
Matthias
f91d7beaa1 Fix constants wrong parenteses 2020-02-26 19:39:12 +01:00
Matthias
d34515a5de Remove constraint to have pairs in base/quote format 2020-02-25 07:04:20 +01:00
Matthias
6335d81ceb Merge branch 'develop' into data_handler 2020-02-16 15:12:14 +01:00
Matthias
d65a06947d Merge branch 'develop' into data_handler 2020-02-09 15:16:43 +01:00
Yazeed Al Oyoun
f3b1161640 wide notifications fixes 2020-02-08 21:02:52 +01:00
Matthias
97e48080e8
Merge pull request #2839 from hroff-1902/list-hyperopts-2
Add list-hyperopts subcommand
2020-02-06 07:06:36 +01:00
untoreh
aa54fd2251 - added spread filter
- minimum value to volume pairlist
2020-02-04 14:49:59 +01:00
hroff-1902
3fe39a3e1b Rename constant 2020-02-02 19:41:22 +03:00
hroff-1902
a5e670b402 Add USERPATH_NOTEBOOKS 2020-02-02 19:41:22 +03:00
Matthias
fc2970f41b Merge branch 'develop' into data_handler 2020-01-21 06:58:48 +01:00
Matthias
13274964a9 Implement validation for valid stake currency 2020-01-11 11:54:00 +01:00
Matthias
5faebad863 Don't hardcode TimeFrames - they can differ by exchange. 2020-01-11 11:16:05 +01:00
Matthias
fab19ae3a7 Implement last_stake_amount_min_ratio 2020-01-10 06:36:28 +01:00
Matthias
b37f34ff5b Implement amend_last_stake_amount 2020-01-05 13:25:11 +01:00
Matthias
a75420f75f Merge branch 'develop' into relative_stake 2020-01-05 12:55:55 +01:00
Matthias
2409261cb7 Merge branch 'develop' into data_handler 2020-01-04 11:36:27 +01:00
Matthias
f3beaa3374 Deprecate capital_available_percentage 2020-01-03 10:58:31 +01:00
Matthias
c13c11cfa1 Type does not need to be a list 2020-01-02 14:41:28 +01:00
Matthias
1b8943ac54 Add documentation for tradable_balance_ratio 2020-01-02 10:59:41 +01:00
Matthias
9325880fe5 Split config-validation requires 2020-01-02 10:39:32 +01:00
Matthias
6b5983339d Require dataformat entries in configuration 2019-12-28 14:47:30 +01:00
Matthias
9c5b94adf5 Pass data_format to methods 2019-12-28 11:01:42 +01:00
Matthias
b83487a70d Extract default dataframe columns to constant 2019-12-28 11:01:41 +01:00
Matthias
eff5cc0568 Add default to internals 2019-12-28 11:01:41 +01:00
Matthias
c3064dfd2b Enhance validation constants 2019-12-28 11:00:45 +01:00
Matthias
ffd7034c00 Persist dry-run trade per default 2019-12-22 10:16:16 +01:00
Matthias
931d24b5a8 Have dry_run_wallet default to 1000 2019-12-15 09:26:17 +01:00
Matthias
111f018c85 Add datatype to configuration documentation 2019-11-27 14:46:09 +01:00
Matthias
585b8332ad Improve tests and unify required attribute 2019-11-26 11:48:01 +01:00
Matthias
e7c17df844 validate defaults in documentation 2019-11-25 12:56:05 +01:00
Matthias
0775ac081a Cleanup constants and required 2019-11-25 07:12:30 +01:00
Matthias
646a9d12b2 Align quoting of json schema 2019-11-25 07:06:55 +01:00
Matthias
e7be742c58 Run validation after custom validations 2019-11-25 07:05:30 +01:00
Matthias
4dc0631a4b Lower minimum tradeable value 2019-11-25 07:05:30 +01:00
Matthias
cbb187e9b9 Use constant for Strategy and hyperopt userdirpaths 2019-11-21 06:32:45 +01:00
Matthias
471bd4d889 Small stylistic fixes 2019-11-21 06:32:45 +01:00
Matthias
fd45ebd0e9 Copy templates when creating userdir 2019-11-21 06:32:45 +01:00
Matthias
09b302abf7
Merge pull request #2442 from freqtrade/volumeList_enhanced_filter
Pairlists enhanced filter options
2019-11-19 20:19:10 +01:00
Matthias
a8855bf795 rename LowPriceFilter to PrieFilter 2019-11-19 06:49:45 +01:00
Matthias
9b050523e9
Merge pull request #2397 from freqtrade/feat/new_args_system
require subcommand for all actions
2019-11-14 06:28:42 +01:00
Matthias
1c57a4ac35 more replacements of ticker_interval 2019-11-12 15:13:06 +01:00
Matthias
ed0c7a6aaf Update configschema to fit new pairlists approach 2019-11-09 14:16:11 +01:00
Matthias
a368646745 Merge branch 'develop' into feat/new_args_system 2019-10-29 19:33:56 +01:00
Matthias
45b83cc544 Don't require pair_whitelist for dynamicPairlist usecases 2019-10-25 07:07:01 +02:00
Matthias
f3cfe147b5 Merge branch 'develop' into feat/new_args_system 2019-10-20 19:32:34 +02:00
hroff-1902
4ec83a2c24 DefaultHyperOpts --> DefaultHyperOpt; hyperopts --> hyperopt where it's not correct 2019-10-18 23:29:19 +03:00
Matthias
2588990f4b Require unfilledtimeout - don't require telegram in config 2019-10-18 07:10:02 +02:00
hroff-1902
08e6d8a780 Rollback defaulting to DefaultHyperOptLoss 2019-10-11 23:33:22 +03:00
hroff-1902
c4105436eb Disable defaulting to DefaultHyperOpts and DefaultHyperOptLoss 2019-10-10 04:37:32 +03:00
hroff-1902
9b23376415 Move experimental settings to ask_strategy 2019-10-05 13:29:59 +03:00
Matthias
b73426b91f Disable Defaulting to DefaultStrategy 2019-10-01 07:02:30 +02:00
Matthias
49f0a72121 Add test for rounding error on fload aggregation 2019-09-26 07:17:54 +02:00
Matthias
ee808abfea Add emergency_sell as sell reason 2019-09-01 09:07:09 +02:00
Matthias
e8ee087e9d Merge branch 'develop' into download_module 2019-08-20 06:49:18 +02:00
Matthias
d785d76370 make VolumePairlist less verbose
no need to print the full whitelist on every iteration
2019-08-18 18:11:24 +02:00
Matthias
3c15e3ebdd Default load minimal config 2019-08-16 14:56:38 +02:00
Matthias
91886120a7 use nargs for --pairs argument 2019-08-16 14:39:29 +02:00
Matthias
d23179e25c Update hyperopt-loss to use resolver 2019-07-16 06:27:43 +02:00
hroff-1902
451d4a400e fix help strings shown to the user 2019-06-22 23:51:29 +03:00
Matthias
90ece09ee9 require username/password for API server 2019-05-25 14:42:13 +02:00
Matthias
6f67ea44dc Enable config-check for rest server 2019-05-18 09:57:10 +02:00
hroff-1902
cb2f422e1c make name option required again 2019-04-08 11:19:45 +03:00
hroff-1902
4559a38172 PoC: use defaults in json schema for some exchange options 2019-04-08 04:42:28 +03:00
hroff-1902
2aa1b43f01 get rid of TICKER_INTERVAL_MINUTES dict, use ccxt's parse_timeframe() instead 2019-04-04 20:56:40 +03:00
hroff-1902
aa15312670 wallets cleanup 2019-03-19 20:51:27 +03:00
Matthias
6666d31ee9
Merge pull request #1648 from hroff-1902/sd-watchdog
Support for systemd watchdog
2019-03-16 13:46:04 +01:00
misagh
9a226ec7e6 conflict with develop resolved 2019-03-14 07:56:21 +01:00
iuvbio
cb9849e192 add markets_refresh_interval to CONF_SCHEMA 2019-03-12 16:54:59 +01:00
misagh
a772ab323e adding the option to resolver 2019-03-12 15:43:53 +01:00
hroff-1902
8730852d6e Support for systemd watchdog via sd_notify 2019-03-10 21:04:38 +03:00
hroff-1902
4df44d8b32 wallets cleanup 2019-03-01 01:26:29 +03:00
Matthias
2531961bf8
Merge pull request #1571 from hroff-1902/patch-9
multiple --config options
2019-02-24 13:50:39 +01:00
hroff-1902
eb21170691
added amount_reserve_percent into config json-schema 2019-02-21 00:26:02 +03:00
hroff-1902
2f225e2340 multiple --config options 2019-02-19 15:14:47 +03:00
hroff-1902
f9d68d919c move default amount_reserve_percent value into constants 2019-02-19 11:49:49 +03:00
Axel CHERUBIN
797ac71376
fix stoploss_on_exchange_interval type
from boolean to number
2019-01-19 13:26:30 -04:00
misagh
da51ef40f8 SL interval added to CONF_SCHEMA 2019-01-16 19:04:43 +01:00
misagh
510f78079b conflict with develop resolved 2018-12-09 15:16:38 +01:00
Matthias
2c27736dfe
Merge pull request #1390 from freqtrade/feat/dynamic_provider
Dynamic Pairlist provider
2018-12-09 08:39:53 +01:00
misagh
e3876bcf0f removing AON as it is not supported in binance. will be added once TIF
is added for other exchanges
2018-12-04 20:36:44 +01:00
misagh
b7aa77acdd conflict resolved 2018-12-04 20:28:07 +01:00
Matthias
6ab907bef1 Rename config whitelist to pairlist 2018-12-04 20:24:45 +01:00
Matthias
0929f59680 Refactor pairlist-tests 2018-12-03 20:48:51 +01:00
Matthias
1b3ecb8343 Deprecate --dynamic-whitelist 2018-12-03 20:00:18 +01:00
misagh
237dc8290f conflict resolved0 2018-12-01 12:00:03 +01:00
misagh
88d277ea55 adding required config for edge 2018-12-01 11:08:18 +01:00
misagh
aadc9f052a conf schema 2018-11-30 18:10:22 +01:00
misagh
962b02b079 one last step before tests 2018-11-25 22:02:59 +01:00
misagh
ba20b1b5c7 TIF added to constants and json full 2018-11-25 21:05:25 +01:00
misagh
92930b2343 test fixed 2018-11-25 19:03:28 +01:00
misagh
5e1fb11124 documentation added for stop loss on exchange 2018-11-25 17:30:06 +01:00
misagh
3e29fbb17a stoploss on exchange added as a parameter to order_types 2018-11-25 17:22:56 +01:00
Matthias
64028647a0
Merge pull request #571 from stephendade/userhyper
Separated out custom hyperopts
2018-11-21 19:14:30 +01:00
Matthias
d72e605cb7
Merge pull request #1330 from freqtrade/feat/diff_order_types
Add support for different order types
2018-11-19 19:55:30 +01:00
Matthias
9ba281c141 add supported limit values 2018-11-17 13:05:35 +01:00
Matthias
54a86d72f2 Raise error if one of the required ordertypes is not present 2018-11-17 12:59:16 +01:00
misagh
51dfd2bf47 If max_open_trade=-1 means it should be ignored. 2018-11-14 11:37:53 +01:00
misagh
aacc1d5004 removing total capital in favour of stake amount 2018-11-10 18:28:05 +01:00
Stephen Dade
477515c4b5 Now using resolver for custom hyperopts 2018-11-07 06:58:20 +01:00
Stephen Dade
469db0d434 Decoupled custom hyperopts from hyperopt.py 2018-11-07 06:26:16 +01:00
misagh
714ac6dd08 Merge branch 'develop' into money_mgt 2018-11-04 18:49:21 +01:00
misagh
b6d4e11e88 added minimum win rate to config 2018-11-03 14:31:34 +01:00
misagh
25daf3a0f7 Merge branch 'develop' into money_mgt 2018-10-23 19:33:13 +02:00
Matthias
6ff4c9b888 Update docs for /forcesell 2018-10-10 20:08:29 +02:00
Matthias
37088cfb39 add to constants 2018-10-04 20:34:48 +02:00
misagh
23f8980973 edge config added to CONF_SCHEMA and config_full.json.example 2018-10-02 12:42:59 +02:00
Matthias
3fd00c9a9c Merge branch 'develop' into ta_on_candle 2018-09-01 20:01:18 +02:00
Matthias
d35d3bb38c rename ta_on_candle to process_only_new_candles
be more expressive
2018-09-01 19:52:40 +02:00
Matthias
9f8e68ce02 Merge branch 'develop' into order-book 2018-08-29 19:32:44 +02:00
Nullart2
b6b89a464f move order_book config out of experimental 2018-08-29 17:38:43 +08:00
Matthias
c9580b31d0 parametrize outdated_offset to simplify sandbox usage 2018-08-07 09:25:21 +02:00
Nullart2
4a9bf78770 Order Book with tests 2018-08-05 12:41:06 +08:00
creslin
c38d94df2d Resubmitting - because GIT.
This is the last cut that was in #1117 before i closed that PR

This PR allows a user to set the flag "ta_on_candle" in their config.json

This will change the behaviour of the the bot to only process indicators
when there is a new candle to be processed for that pair.

The test is made up of "last dataframe row date + pair" is different to
last_seen OR  ta_on_candle is not True
2018-08-03 07:33:34 +00:00
creslin
36f91fcdf5 XBT missing as a market symbol for BTC in constants 2018-08-01 06:03:34 +00:00
Matthias
5a55cd25ff
Merge branch 'develop' into sandbox2 2018-07-30 20:18:48 +02:00
Samuel Husso
187e039a58
Merge pull request #1034 from freqtrade/feat/positive_sl_limit
add offset for positive trailing stop loss
2018-07-29 08:30:29 +03:00
creslin
40ae250193
Update constants.py
Adding UID also, as itll get ran into in future on an exchange that needs it.
2018-07-27 12:19:01 +00:00
creslinux
c47253133a have to begin before we can stop 2018-07-27 12:07:07 +00:00
creslinux
d23b3ccc5e odd cut and paste error fixed. 2018-07-27 08:55:36 +00:00
Matthias
4c8411537f Don't require fiat-currency 2018-07-22 14:53:46 +02:00
Matthias
c0a7725c1f Add stoploss offset 2018-07-19 13:22:44 +02:00
Matthias
6336d8a0e2 remove copy leftover 2018-07-14 13:32:35 +02:00
Matthias
a4643066a8 allow more flexibility in webhook 2018-07-14 13:32:35 +02:00
Matthias
ed2a1becef
Merge branch 'develop' into feat/stop_loss 2018-07-01 20:01:02 +02:00
xmatthias
e39d88ef65 Address some PR comments 2018-07-01 19:54:26 +02:00
xmatthias
2dc881558d address PR comments 2018-07-01 19:41:19 +02:00
Nullart
98108a78f1 separating unfulfilled timeouts for buy and sell 2018-06-30 13:44:42 +02:00
xmatthias
da5be9fbd0 add stop_loss based on work from @berlinguyinca 2018-06-26 23:06:27 +02:00
Anton
f82b809fcf Merge with develop 2018-06-23 16:50:27 +03:00
xmatthias
8a44dff595 don't sell if buy is still active 2018-06-22 20:23:23 +02:00
Anton
b4138f29c8 Merge with develop 2018-06-08 00:29:44 +03:00
gcarq
5b1ff6675f define constants.DEFAULT_DB_DRYRUN_URL and fix StaticPool conditions 2018-06-07 17:29:43 +02:00
gcarq
58a6f21705 remove dry_run_db and replace it with db_url in config 2018-06-07 05:26:39 +02:00
Matthias
15fb81da92
Merge pull request #844 from creslinux/Constants_usdt
To be able to start with USDT in fiat_display_currency in config.json
2018-06-04 21:56:34 +02:00
creslinux
a44978a068 Per steer from project core member, add other valid coinmarketcap
listed crypto base currencies that are valid during conversion lookup

Here is the test of USDT working:
https://api.coinmarketcap.com/v2/ticker/1027/?convert=USDT&limit=10

CMK page lists: "BTC", "ETH" "XRP", "LTC", and "BCH" as valid.
2018-06-04 21:48:15 +03:00
creslinux
7c8bf95f8f To be able to start bot with USDT in fiat_display_currency in config.json
There are use case that build the base pair to consider price of whitelist pairs.
On Binance this is USDT not USD.
2018-06-04 16:45:47 +03:00
Janne Sinivirta
7df77b1b28 match timeframes to arguments 2018-06-04 16:35:34 +03:00
Anton
87f750da35 Merge with develop 2018-06-04 01:50:10 +03:00
Anton
daa9c0c026 Fix review comments 2018-06-04 01:48:26 +03:00
Janne Sinivirta
20815771ab
Merge pull request #817 from gcarq/feature/gdax
Enable Backtesting with GDAX and allow trading with EUR/USD
2018-06-03 17:49:20 +03:00
xmatthias
3a158faa30 Refactor fiat-list to constants 2018-06-03 13:47:36 +02:00
Gerald Lonlas
acbfe91f13 Allow EUR / USD as stake_currency
It will enable to trade with FIAT on exhanges like GDAX or Kraken.
2018-06-03 00:13:48 -07:00
Anton
3427c7eb54 Use constants 2018-05-25 17:04:08 +03:00
Anton
9be98cd8f7 Add ability to set unlimited stake_amount 2018-05-23 13:15:03 +03:00
gcarq
43fd9b37df fix 'max_open_trades must be greater than 0' regression 2018-05-03 10:48:25 +02:00
gcarq
306885e174 Merge branch 'develop' into feat/objectify-ccxt 2018-05-02 22:49:55 +02:00
enenn
db46ad6502 Change ticker interval from minutes as integer to string (1m, 5m, 1h,...) 2018-04-07 16:57:47 +02:00
Michael Egger
9019f6492f
define constants on module level (#596) 2018-04-02 16:42:53 +02:00
gcarq
b4d2a3f495 refactor StrategyResolver to work with class names 2018-03-25 15:12:39 +02:00
Samuel Husso
40a0689183 exhcange now uses ccxt in dry_run, update config 2018-03-21 19:40:16 +02:00
Gerald Lonlas
db67b10605 Remove Singleton from Strategy() 2018-03-03 09:33:54 +08:00
Gerald Lonlas
314ab0a84f Add a Constants class that contains Bot constants 2018-03-03 09:33:54 +08:00