diff --git a/README.md b/README.md index 230c957..99e7bff 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,82 @@ # Automatic Crypto Seller. -Description TODO. +Automatic one-way trades. + +This is a wrapper about [`fin_depo`](https://gitfub.space/Jmaa/fin-depo/) for +automatically trading one way trades, by using repeated trades +over a period. + +The primary motivation is for trading low-volume crypto assets slowly without +affecting the price too much. + +Supported sites: + +- [KuCoin](https://www.kucoin.com/): Online crypto-currency exchange. + +## Installation + +Install dependencies: + +```shell +pip install -r requirements.txt +``` + +## Usage + +Run using from the top directory: + +```shell +python -m crypto_seller +``` + +The script will now automatically sell assets over time. The interval between +sell-offs are randomized to avoid front-running, and the amounts are also +randomized to avoid too consistent behaviour. + +The log will both be displayed in the shell, and be placed in a log file +`output/log.txt`. Every sell-off will be logged to the `output/trades.csv` +file, with as much information as possible. Keep both of these for tax +purposes, if relevant. + +## Auditing information + +The most relevant libraries for auditing are: + +- [`fin_depo`](https://gitfub.space/Jmaa/fin-depo): Library for programmatic + fetching of depository assets and in some cases allows for order placement. + This is the library that reads balances and places market orders. +- [`fin_defs`](https://gitfub.space/Jmaa/fin-defs): Definitions of financial + assets and instruments. Used by `fin_depo`. +- [`python-kucoin`](https://python-kucoin.readthedocs.io/en/latest/) is used by + `fin_depo` for providing KuCoin support. + +## Taxation + +Some parts of the world suffers from weird and draconian taxation rules on +cryptocurrencies, so it helps to keep track of the relevant trading +information. + +As mentioned above, keep (and backup) both the log file (`output/log.txt`) and +the trades file (`output/trades.csv`). + +To help with tax reporting, it might be useful to sign up to tax oriented +websites. For example, [CryptoSkat](https://cryptoskat.dk/) seems to be the +most mature on the danish market, and does support KuCoin. + +## TODO + +- [ ] Parse configuration from json. +- [ ] Ensure that a failure during selling results in a safe winding down of the system. + * Catch runtime errors when selling + * Show errors to log. + * Stop loop and exit with results, and error indicator. +- [ ] Document configuration +- [ ] Document code auditing +- [X] Ensure sell time is included in order details +- [X] Log all trades to CSV file. +- [X] Collect information during the run and output after run + # License diff --git a/setup.py b/setup.py index f61df47..557b57c 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,82 @@ PACKAGE_NAME = 'crypto_seller' PACKAGE_DESCRIPTION = """ # Automatic Crypto Seller. -Description TODO. +Automatic one-way trades. + +This is a wrapper about [`fin_depo`](https://gitfub.space/Jmaa/fin-depo/) for +automatically trading one way trades, by using repeated trades +over a period. + +The primary motivation is for trading low-volume crypto assets slowly without +affecting the price too much. + +Supported sites: + +- [KuCoin](https://www.kucoin.com/): Online crypto-currency exchange. + +## Installation + +Install dependencies: + +```shell +pip install -r requirements.txt +``` + +## Usage + +Run using from the top directory: + +```shell +python -m crypto_seller +``` + +The script will now automatically sell assets over time. The interval between +sell-offs are randomized to avoid front-running, and the amounts are also +randomized to avoid too consistent behaviour. + +The log will both be displayed in the shell, and be placed in a log file +`output/log.txt`. Every sell-off will be logged to the `output/trades.csv` +file, with as much information as possible. Keep both of these for tax +purposes, if relevant. + +## Auditing information + +The most relevant libraries for auditing are: + +- [`fin_depo`](https://gitfub.space/Jmaa/fin-depo): Library for programmatic + fetching of depository assets and in some cases allows for order placement. + This is the library that reads balances and places market orders. +- [`fin_defs`](https://gitfub.space/Jmaa/fin-defs): Definitions of financial + assets and instruments. Used by `fin_depo`. +- [`python-kucoin`](https://python-kucoin.readthedocs.io/en/latest/) is used by + `fin_depo` for providing KuCoin support. + +## Taxation + +Some parts of the world suffers from weird and draconian taxation rules on +cryptocurrencies, so it helps to keep track of the relevant trading +information. + +As mentioned above, keep (and backup) both the log file (`output/log.txt`) and +the trades file (`output/trades.csv`). + +To help with tax reporting, it might be useful to sign up to tax oriented +websites. For example, [CryptoSkat](https://cryptoskat.dk/) seems to be the +most mature on the danish market, and does support KuCoin. + +## TODO + +- [ ] Parse configuration from json. +- [ ] Ensure that a failure during selling results in a safe winding down of the system. + * Catch runtime errors when selling + * Show errors to log. + * Stop loop and exit with results, and error indicator. +- [ ] Document configuration +- [ ] Document code auditing +- [X] Ensure sell time is included in order details +- [X] Log all trades to CSV file. +- [X] Collect information during the run and output after run + # License @@ -43,7 +118,7 @@ SOFTWARE. ```""".strip() PACKAGE_DESCRIPTION_SHORT = """ -Description TODO.""".strip() +Automatic one-way trades.""".strip() def parse_version_file(text: str) -> str: @@ -68,8 +143,8 @@ def read_requirements(path: str) -> list[str]: REQUIREMENTS_MAIN = """ -fin_defs @ git+https://gitfub.space/Jmaa/fin-defs -fin_depo @ git+https://gitfub.space/Jmaa/fin-depo""" +fin_defs @ git+https://gitfub.space/Jmaa/fin-defs.git +fin_depo @ git+https://gitfub.space/Jmaa/fin-depo.git""" REQUIREMENTS_TEST = """ """