Merge pull request #1696 from freqtrade/docs/1521
Update documentation with correct way of calling
This commit is contained in:
		| @@ -33,11 +33,11 @@ jobs: | |||||||
|       name: pytest |       name: pytest | ||||||
|     - script: |     - script: | ||||||
|       - cp config.json.example config.json |       - cp config.json.example config.json | ||||||
|       - python freqtrade/main.py --datadir freqtrade/tests/testdata backtesting |       - python freqtrade --datadir freqtrade/tests/testdata backtesting | ||||||
|       name: backtest |       name: backtest | ||||||
|     - script: |     - script: | ||||||
|       - cp config.json.example config.json |       - cp config.json.example config.json | ||||||
|       - python freqtrade/main.py --datadir freqtrade/tests/testdata hyperopt -e 5 |       - python freqtrade --datadir freqtrade/tests/testdata hyperopt -e 5 | ||||||
|       name: hyperopt |       name: hyperopt | ||||||
|     - script: flake8 freqtrade |     - script: flake8 freqtrade | ||||||
|       name: flake8 |       name: flake8 | ||||||
|   | |||||||
| @@ -24,37 +24,37 @@ The backtesting is very easy with freqtrade. | |||||||
| #### With 5 min tickers (Per default) | #### With 5 min tickers (Per default) | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting | python3 freqtrade backtesting | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### With 1 min tickers | #### With 1 min tickers | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --ticker-interval 1m | python3 freqtrade backtesting --ticker-interval 1m | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Update cached pairs with the latest data | #### Update cached pairs with the latest data | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --refresh-pairs-cached | python3 freqtrade backtesting --refresh-pairs-cached | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### With live data (do not alter your testdata files) | #### With live data (do not alter your testdata files) | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --live | python3 freqtrade backtesting --live | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Using a different on-disk ticker-data source | #### Using a different on-disk ticker-data source | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --datadir freqtrade/tests/testdata-20180101 | python3 freqtrade backtesting --datadir freqtrade/tests/testdata-20180101 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### With a (custom) strategy file | #### With a (custom) strategy file | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -s TestStrategy backtesting | python3 freqtrade -s TestStrategy backtesting | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Where `-s TestStrategy` refers to the class name within the strategy file `test_strategy.py` found in the `freqtrade/user_data/strategies` directory | Where `-s TestStrategy` refers to the class name within the strategy file `test_strategy.py` found in the `freqtrade/user_data/strategies` directory | ||||||
| @@ -62,7 +62,7 @@ Where `-s TestStrategy` refers to the class name within the strategy file `test_ | |||||||
| #### Exporting trades to file | #### Exporting trades to file | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --export trades | python3 freqtrade backtesting --export trades | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| The exported trades can be used for [further analysis](#further-backtest-result-analysis), or can be used by the plotting script `plot_dataframe.py` in the scripts folder. | The exported trades can be used for [further analysis](#further-backtest-result-analysis), or can be used by the plotting script `plot_dataframe.py` in the scripts folder. | ||||||
| @@ -70,7 +70,7 @@ The exported trades can be used for [further analysis](#further-backtest-result- | |||||||
| #### Exporting trades to file specifying a custom filename | #### Exporting trades to file specifying a custom filename | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --export trades --export-filename=backtest_teststrategy.json | python3 freqtrade backtesting --export trades --export-filename=backtest_teststrategy.json | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Running backtest with smaller testset | #### Running backtest with smaller testset | ||||||
| @@ -81,7 +81,7 @@ you want to use. The last N ticks/timeframes will be used. | |||||||
| Example: | Example: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py backtesting --timerange=-200 | python3 freqtrade backtesting --timerange=-200 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Advanced use of timerange | #### Advanced use of timerange | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Let assume you have a class called `AwesomeStrategy` in the file `awesome-strate | |||||||
| 2. Start the bot with the param `--strategy AwesomeStrategy` (the parameter is the class name) | 2. Start the bot with the param `--strategy AwesomeStrategy` (the parameter is the class name) | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --strategy AwesomeStrategy | python3 freqtrade --strategy AwesomeStrategy | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Change your strategy | ## Change your strategy | ||||||
| @@ -41,7 +41,7 @@ The bot also include a sample strategy called `TestStrategy` you can update: `us | |||||||
| You can test it with the parameter: `--strategy TestStrategy` | You can test it with the parameter: `--strategy TestStrategy` | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --strategy AwesomeStrategy | python3 freqtrade --strategy AwesomeStrategy | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| **For the following section we will use the [user_data/strategies/test_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/user_data/strategies/test_strategy.py) | **For the following section we will use the [user_data/strategies/test_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/user_data/strategies/test_strategy.py) | ||||||
| @@ -355,7 +355,7 @@ The default buy strategy is located in the file | |||||||
| If you want to use a strategy from a different folder you can pass `--strategy-path` | If you want to use a strategy from a different folder you can pass `--strategy-path` | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --strategy AwesomeStrategy --strategy-path /some/folder | python3 freqtrade --strategy AwesomeStrategy --strategy-path /some/folder | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Further strategy ideas | ### Further strategy ideas | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ The bot allows you to select which configuration file you want to use. Per | |||||||
| default, the bot will load the file `./config.json` | default, the bot will load the file `./config.json` | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -c path/far/far/away/config.json | python3 freqtrade -c path/far/far/away/config.json | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### How to use multiple configuration files? | ### How to use multiple configuration files? | ||||||
| @@ -63,13 +63,13 @@ empty key and secrete values while running in the Dry Mode (which does not actua | |||||||
| require them): | require them): | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -c ./config.json | python3 freqtrade -c ./config.json | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| and specify both configuration files when running in the normal Live Trade Mode: | and specify both configuration files when running in the normal Live Trade Mode: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -c ./config.json -c path/to/secrets/keys.config.json | python3 freqtrade -c ./config.json -c path/to/secrets/keys.config.json | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| This could help you hide your private Exchange key and Exchange secrete on you local machine | This could help you hide your private Exchange key and Exchange secrete on you local machine | ||||||
| @@ -95,7 +95,7 @@ In `user_data/strategies` you have a file `my_awesome_strategy.py` which has | |||||||
| a strategy class called `AwesomeStrategy` to load it: | a strategy class called `AwesomeStrategy` to load it: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --strategy AwesomeStrategy | python3 freqtrade --strategy AwesomeStrategy | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| If the bot does not find your strategy file, it will display in an error | If the bot does not find your strategy file, it will display in an error | ||||||
| @@ -109,7 +109,7 @@ Learn more about strategy file in | |||||||
| This parameter allows you to add an additional strategy lookup path, which gets | This parameter allows you to add an additional strategy lookup path, which gets | ||||||
| checked before the default locations (The passed path must be a folder!): | checked before the default locations (The passed path must be a folder!): | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --strategy AwesomeStrategy --strategy-path /some/folder | python3 freqtrade --strategy AwesomeStrategy --strategy-path /some/folder | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### How to install a strategy? | #### How to install a strategy? | ||||||
| @@ -136,7 +136,7 @@ using `--db-url`. This can also be used to specify a custom database | |||||||
| in production mode. Example command: | in production mode. Example command: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -c config.json --db-url sqlite:///tradesv3.dry_run.sqlite | python3 freqtrade -c config.json --db-url sqlite:///tradesv3.dry_run.sqlite | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Backtesting commands | ## Backtesting commands | ||||||
|   | |||||||
| @@ -13,14 +13,14 @@ on BaseVolume. This value can be changed when you run the script. | |||||||
| Get the 20 currencies based on BaseVolume. | Get the 20 currencies based on BaseVolume. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --dynamic-whitelist | python3 freqtrade --dynamic-whitelist | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| **Customize the number of currencies to retrieve** | **Customize the number of currencies to retrieve** | ||||||
| Get the 30 currencies based on BaseVolume. | Get the 30 currencies based on BaseVolume. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py --dynamic-whitelist 30 | python3 freqtrade --dynamic-whitelist 30 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| **Exception** | **Exception** | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								docs/edge.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								docs/edge.md
									
									
									
									
									
								
							| @@ -146,16 +146,19 @@ Percentage of allowed risk per trade. | |||||||
| (defaults to 0.01 so 1%) | (defaults to 0.01 so 1%) | ||||||
|  |  | ||||||
| #### stoploss_range_min | #### stoploss_range_min | ||||||
|  |  | ||||||
| Minimum stoploss. | Minimum stoploss. | ||||||
|  |  | ||||||
| (defaults to -0.01) | (defaults to -0.01) | ||||||
|  |  | ||||||
| #### stoploss_range_max | #### stoploss_range_max | ||||||
|  |  | ||||||
| Maximum stoploss. | Maximum stoploss. | ||||||
|  |  | ||||||
| (defaults to -0.10) | (defaults to -0.10) | ||||||
|  |  | ||||||
| #### stoploss_range_step | #### stoploss_range_step | ||||||
|  |  | ||||||
| As an example if this is set to -0.01 then Edge will test the strategy for \[-0.01, -0,02, -0,03 ..., -0.09, -0.10\] ranges. | As an example if this is set to -0.01 then Edge will test the strategy for \[-0.01, -0,02, -0,03 ..., -0.09, -0.10\] ranges. | ||||||
| Note than having a smaller step means having a bigger range which could lead to slow calculation. | Note than having a smaller step means having a bigger range which could lead to slow calculation. | ||||||
|  |  | ||||||
| @@ -164,6 +167,7 @@ If you set this parameter to -0.001, you then slow down the Edge calculation by | |||||||
| (defaults to -0.01) | (defaults to -0.01) | ||||||
|  |  | ||||||
| #### minimum_winrate | #### minimum_winrate | ||||||
|  |  | ||||||
| It filters out pairs which don't have at least minimum_winrate. | It filters out pairs which don't have at least minimum_winrate. | ||||||
|  |  | ||||||
| This comes handy if you want to be conservative and don't comprise win rate in favour of risk reward ratio. | This comes handy if you want to be conservative and don't comprise win rate in favour of risk reward ratio. | ||||||
| @@ -171,6 +175,7 @@ This comes handy if you want to be conservative and don't comprise win rate in f | |||||||
| (defaults to 0.60) | (defaults to 0.60) | ||||||
|  |  | ||||||
| #### minimum_expectancy | #### minimum_expectancy | ||||||
|  |  | ||||||
| It filters out pairs which have the expectancy lower than this number. | It filters out pairs which have the expectancy lower than this number. | ||||||
|  |  | ||||||
| Having an expectancy of 0.20 means if you put 10$ on a trade you expect a 12$ return. | Having an expectancy of 0.20 means if you put 10$ on a trade you expect a 12$ return. | ||||||
| @@ -178,6 +183,7 @@ Having an expectancy of 0.20 means if you put 10$ on a trade you expect a 12$ re | |||||||
| (defaults to 0.20) | (defaults to 0.20) | ||||||
|  |  | ||||||
| #### min_trade_number | #### min_trade_number | ||||||
|  |  | ||||||
| When calculating *W*, *R* and *E* (expectancy) against historical data, you always want to have a minimum number of trades. The more this number is the more Edge is reliable. | When calculating *W*, *R* and *E* (expectancy) against historical data, you always want to have a minimum number of trades. The more this number is the more Edge is reliable. | ||||||
|  |  | ||||||
| Having a win rate of 100% on a single trade doesn't mean anything at all. But having a win rate of 70% over past 100 trades means clearly something. | Having a win rate of 100% on a single trade doesn't mean anything at all. But having a win rate of 70% over past 100 trades means clearly something. | ||||||
| @@ -185,6 +191,7 @@ Having a win rate of 100% on a single trade doesn't mean anything at all. But ha | |||||||
| (defaults to 10, it is highly recommended not to decrease this number) | (defaults to 10, it is highly recommended not to decrease this number) | ||||||
|  |  | ||||||
| #### max_trade_duration_minute | #### max_trade_duration_minute | ||||||
|  |  | ||||||
| Edge will filter out trades with long duration. If a trade is profitable after 1 month, it is hard to evaluate the strategy based on it. But if most of trades are profitable and they have maximum duration of 30 minutes, then it is clearly a good sign. | Edge will filter out trades with long duration. If a trade is profitable after 1 month, it is hard to evaluate the strategy based on it. But if most of trades are profitable and they have maximum duration of 30 minutes, then it is clearly a good sign. | ||||||
|  |  | ||||||
| **NOTICE:** While configuring this value, you should take into consideration your ticker interval. As an example filtering out trades having duration less than one day for a strategy which has 4h interval does not make sense. Default value is set assuming your strategy interval is relatively small (1m or 5m, etc.). | **NOTICE:** While configuring this value, you should take into consideration your ticker interval. As an example filtering out trades having duration less than one day for a strategy which has 4h interval does not make sense. Default value is set assuming your strategy interval is relatively small (1m or 5m, etc.). | ||||||
| @@ -192,15 +199,17 @@ Edge will filter out trades with long duration. If a trade is profitable after 1 | |||||||
| (defaults to 1 day, i.e. to 60 * 24 = 1440 minutes) | (defaults to 1 day, i.e. to 60 * 24 = 1440 minutes) | ||||||
|  |  | ||||||
| #### remove_pumps | #### remove_pumps | ||||||
|  |  | ||||||
| Edge will remove sudden pumps in a given market while going through historical data. However, given that pumps happen very often in crypto markets, we recommend you keep this off. | Edge will remove sudden pumps in a given market while going through historical data. However, given that pumps happen very often in crypto markets, we recommend you keep this off. | ||||||
|  |  | ||||||
| (defaults to false) | (defaults to false) | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Running Edge independently | ## Running Edge independently | ||||||
|  |  | ||||||
| You can run Edge independently in order to see in details the result. Here is an example: | You can run Edge independently in order to see in details the result. Here is an example: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py edge | python3 freqtrade edge | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| An example of its output: | An example of its output: | ||||||
| @@ -224,18 +233,21 @@ An example of its output: | |||||||
| | NEBL/BTC  |      -0.03 |       0.63 |                1.29 |                   0.58 |         0.44 |                       19 |                       59 | | | NEBL/BTC  |      -0.03 |       0.63 |                1.29 |                   0.58 |         0.44 |                       19 |                       59 | | ||||||
|  |  | ||||||
| ### Update cached pairs with the latest data | ### Update cached pairs with the latest data | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py edge --refresh-pairs-cached | python3 freqtrade edge --refresh-pairs-cached | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Precising stoploss range | ### Precising stoploss range | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py edge --stoplosses=-0.01,-0.1,-0.001 #min,max,step | python3 freqtrade edge --stoplosses=-0.01,-0.1,-0.001 #min,max,step | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Advanced use of timerange | ### Advanced use of timerange | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py edge --timerange=20181110-20181113 | python3 freqtrade edge --timerange=20181110-20181113 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Doing `--timerange=-200` will get the last 200 timeframes from your inputdata. You can also specify specific dates, or a range span indexed by start and stop. | Doing `--timerange=-200` will get the last 200 timeframes from your inputdata. You can also specify specific dates, or a range span indexed by start and stop. | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								docs/faq.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								docs/faq.md
									
									
									
									
									
								
							| @@ -46,22 +46,24 @@ have to run it for 10.000 or more. But it will take an eternity to | |||||||
| compute. | compute. | ||||||
|  |  | ||||||
| We recommend you to run it at least 10.000 epochs: | We recommend you to run it at least 10.000 epochs: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py hyperopt -e 10000 | python3 freqtrade hyperopt -e 10000 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| or if you want intermediate result to see | or if you want intermediate result to see | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| for i in {1..100}; do python3 ./freqtrade/main.py hyperopt -e 100; done | for i in {1..100}; do python3 freqtrade hyperopt -e 100; done | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| #### Why it is so long to run hyperopt? | #### Why it is so long to run hyperopt? | ||||||
|  |  | ||||||
| Finding a great Hyperopt results takes time. | Finding a great Hyperopt results takes time. | ||||||
|  |  | ||||||
| If you wonder why it takes a while to find great hyperopt results | If you wonder why it takes a while to find great hyperopt results | ||||||
|  |  | ||||||
| This answer was written during the under the release 0.15.1, when we had | This answer was written during the under the release 0.15.1, when we had: | ||||||
| : |  | ||||||
| - 8 triggers | - 8 triggers | ||||||
| - 9 guards: let's say we evaluate even 10 values from each | - 9 guards: let's say we evaluate even 10 values from each | ||||||
| - 1 stoploss calculation: let's say we want 10 values from that too to | - 1 stoploss calculation: let's say we want 10 values from that too to | ||||||
|   | |||||||
| @@ -152,7 +152,7 @@ Because hyperopt tries a lot of combinations to find the best parameters it will | |||||||
| We strongly recommend to use `screen` or `tmux` to prevent any connection loss. | We strongly recommend to use `screen` or `tmux` to prevent any connection loss. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py -c config.json hyperopt --customhyperopt <hyperoptname> -e 5000 --spaces all | python3 freqtrade -c config.json hyperopt --customhyperopt <hyperoptname> -e 5000 --spaces all | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Use  `<hyperoptname>` as the name of the custom hyperopt used. | Use  `<hyperoptname>` as the name of the custom hyperopt used. | ||||||
| @@ -178,7 +178,7 @@ you want to use. The last N ticks/timeframes will be used. | |||||||
| Example: | Example: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3 ./freqtrade/main.py hyperopt --timerange -200 | python3 freqtrade hyperopt --timerange -200 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Running Hyperopt with Smaller Search Space | ### Running Hyperopt with Smaller Search Space | ||||||
|   | |||||||
| @@ -407,7 +407,7 @@ pip3 install -e . | |||||||
| If this is the first time you run the bot, ensure you are running it in Dry-run `"dry_run": true,` otherwise it will start to buy and sell coins. | If this is the first time you run the bot, ensure you are running it in Dry-run `"dry_run": true,` otherwise it will start to buy and sell coins. | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| python3.6 ./freqtrade/main.py -c config.json | python3.6 freqtrade -c config.json | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| *Note*: If you run the bot on a server, you should consider using [Docker](#automatic-installation---docker) a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout. | *Note*: If you run the bot on a server, you should consider using [Docker](#automatic-installation---docker) a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout. | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								setup.sh
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.sh
									
									
									
									
									
								
							| @@ -235,7 +235,7 @@ function install() { | |||||||
|     echo "-------------------------" |     echo "-------------------------" | ||||||
|     echo "Run the bot !" |     echo "Run the bot !" | ||||||
|     echo "-------------------------" |     echo "-------------------------" | ||||||
|     echo "You can now use the bot by executing 'source .env/bin/activate; python freqtrade/main.py'." |     echo "You can now use the bot by executing 'source .env/bin/activate; python freqtrade'." | ||||||
| } | } | ||||||
|  |  | ||||||
| function plot() { | function plot() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user