{"id":13684173,"url":"https://github.com/ysdede/jesse-tk","last_synced_at":"2026-02-13T18:51:43.191Z","repository":{"id":42062420,"uuid":"416838126","full_name":"ysdede/jesse-tk","owner":"ysdede","description":"jesse Toolkit","archived":false,"fork":false,"pushed_at":"2022-09-27T12:42:11.000Z","size":220,"stargazers_count":12,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2024-11-12T05:37:08.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ysdede.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-13T17:30:12.000Z","updated_at":"2024-02-23T20:01:20.000Z","dependencies_parsed_at":"2023-01-18T12:00:50.884Z","dependency_job_id":null,"html_url":"https://github.com/ysdede/jesse-tk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdede%2Fjesse-tk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdede%2Fjesse-tk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdede%2Fjesse-tk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdede%2Fjesse-tk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysdede","download_url":"https://codeload.github.com/ysdede/jesse-tk/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251777715,"owners_count":21642212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T14:00:30.479Z","updated_at":"2026-02-13T18:51:43.173Z","avatar_url":"https://github.com/ysdede.png","language":"Python","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# Jesse Toolkit\n[![Sourcery](https://img.shields.io/badge/Sourcery-enabled-brightgreen)](https://sourcery.ai)\n### Installation\n\nYou need to install the legacy version of the jesse.\n\n\n#### Linux:\n\nUse: [jesse stack installer](https://github.com/ysdede/stack-installer/blob/master/jesse-cli-ubuntu20.sh)\n\nit will install modified version of legacy jesse cli and jesse-tk. You still need to create jesse_db manually as stated in original jesse installation document.\n\n```console\n\nbash \u003c(curl -s https://raw.githubusercontent.com/ysdede/stack-installer/master/jesse-cli-ubuntu20.sh)\n\n```\n  \n\n#### Windows:\n\nDownload and install prebuilt ta-lib from [https://www.lfd.uci.edu/~gohlke/pythonlibs/](https://www.lfd.uci.edu/~gohlke/pythonlibs/)\n\n```console\n\npip install downloaded wheel file\n\n```  \n\ninstall legacy jesse cli from [https://github.com/ysdede/jesse](https://github.com/ysdede/jesse)\n\nClone this repository and install with pip.\n\n```console\n\npip install .\n\n```\n\nor\n\n```console\n\npip install -e git+https://github.com/ysdede/jesse-tk.git#egg=jesse-tk\n\n```\n\n## Usage\n### jesse-tk import-routes  \nCLI help explains it:\n```console\nUsage: jesse-tk import-routes [OPTIONS] [START_DATE]\n\n  Import-candles for pairs listed in routes.py Enter start date \"YYYY-MM-DD\"\n  If no start date is specified, the system will default to two days earlier.\n  It's useful for executing script in a cron job to download deltas on a\n  regular basis.\n```\n### jesse-tk bulk  \nIt's name is confusing, I need to change it. `bulk` helps to download candle data faster. It downloads zipped kline csv files from Binance Vision as monthly and daily packets. One disadvantage of it is packed csv files (rarely) has missing data points. Running `jesse import-candles`helps to fill gaps.  \n```console\nUsage: jesse-tk bulk [OPTIONS] EXCHANGE SYMBOL START_DATE\n\n  Bulk download Binance candles Enter EXCHANGE SYMBOL START_DATE { Optional: --workers n}\n\n  jesse-tk bulk Binance btc-usdt 2020-01-01  \n  jesse-tk bulk 'Binance Futures' btc-usdt 2020-01-01\n\n  You can use spot or futures keywords instead of full exchange name.\n\n  jesse-tk bulk spot btc-usdt 2020-01-01  \n  jesse-tk bulk futures eth-usdt 2017-05-01 --workers 8\n\nOptions:\n  --workers INTEGER  The number of workers to run simultaneously. You can use\n                     cpu thread count or x2.  [default: 4]\n```\n```console\nDownloading ADAUSDT-1m-2022-02-05.csv\nCandles already exits in DB skipping 1440 datapoints, /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-01.csv\nDownloading ADAUSDT-1m-2022-02-06.csv\n OK  1440 /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-01.csv\nDEBUG: self.exchange Binance Futures, self.symbol ADA-USDT\nDEBUG: 1644019200000, 1644105540000, query result: 0, datapoints: 1440\nSaving to db: /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-05.csv Size: 152170 bytes, 1440 datapoints. time passed: 37 seconds.\nDEBUG: self.exchange Binance Futures, self.symbol ADA-USDT\nDEBUG: self.exchange Binance Futures, self.symbol ADA-USDT\nDEBUG: 1643932800000, 1644019140000, query result: 1395, datapoints: 1440\nSaving to db: /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-04.csv Size: 151526 bytes, 1440 datapoints. time passed: 38 seconds.\nCandles already exits in DB skipping 1440 datapoints, /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-03.csv\n OK  1440 /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-03.csv\nDEBUG: self.exchange Binance Futures, self.symbol ADA-USDT\nCandles already exits in DB skipping 1440 datapoints, /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-06.csv\n OK  1440 /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-06.csv\n OK  1440 /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-04.csv\n OK  1440 /tmp/bulkdata/futures/um/daily/klines/ADAUSDT/1m/ADAUSDT-1m-2022-02-05.csv\nCompleted in 41 seconds.\n```\n  ### jesse-tk bulk-pairs  \n  ```\n  Usage: jesse-tk bulkpairs [OPTIONS] EXCHANGE START_DATE\n\n  Bulk download ALL! Binance Futures candles to Jesse DB. Enter EXCHANGE START_DATE {Optional: --workers n}\n\n  jesse-tk bulkpairs 'Binance Futures' 2020-01-01 jesse-tk bulkpairs futures 2017-05-01 -- workers 8\n\nOptions:\n  --workers INTEGER  The number of workers to run simultaneously.  [default: 2]\n  --all / --list     Get pairs list from api or pairs from file.\n  ```\n  * --all / --list: Default is list. Get candle list from user defined `pair.py`file.  \n  If you add `--all`it will get pair list from exchange api. Use it with caution. It will take a long time and fill up your disk.  \n  ```\n  jesse-tk bulkpairs futures 2021-01-01 --workers 4 --all\nThere's 140 available pairs in Binance Futures:\n['BTC-USDT', 'ETH-USDT', 'BCH-USDT', 'XRP-USDT', 'EOS-USDT', 'LTC-USDT', 'TRX-USDT', 'ETC-USDT', 'LINK-USDT', 'XLM-USDT', 'ADA-USDT', 'XMR-USDT', 'DASH-USDT', 'ZEC-USDT', 'XTZ-USDT', 'BNB-USDT', 'ATOM-USDT', 'ONT-USDT', 'IOTA-USDT', 'BAT-USDT', 'VET-USDT', 'NEO-USDT', 'QTUM-USDT', 'IOST-USDT', 'THETA-USDT', 'ALGO-USDT', 'ZIL-USDT', 'KNC-USDT', 'ZRX-USDT', 'COMP-USDT', 'OMG-USDT', 'DOGE-USDT', 'SXP-USDT', 'KAVA-USDT', 'BAND-USDT', 'RLC-USDT', 'WAVES-USDT', 'MKR-USDT', 'SNX-USDT', 'DOT-USDT', 'DEFI-USDT', 'YFI-USDT', 'BAL-USDT', 'CRV-USDT', 'TRB-USDT', 'YFII-USDT', 'RUNE-USDT', 'SUSHI-USDT', 'SRM-USDT', 'EGLD-USDT', 'SOL-USDT', 'ICX-USDT', 'STORJ-USDT', 'BLZ-USDT', 'UNI-USDT', 'AVAX-USDT', 'FTM-USDT', 'HNT-USDT', 'ENJ-USDT', 'FLM-USDT', 'TOMO-USDT', 'REN-USDT', 'KSM-USDT', 'NEAR-USDT', 'AAVE-USDT', 'FIL-USDT', 'RSR-USDT', 'LRC-USDT', 'MATIC-USDT', 'OCEAN-USDT', 'CVC-USDT', 'BEL-USDT', 'CTK-USDT', 'AXS-USDT', 'ALPHA-USDT', 'ZEN-USDT', 'SKL-USDT', 'GRT-USDT', '1INCH-USDT', 'AKRO-USDT', 'CHZ-USDT', 'SAND-USDT', 'ANKR-USDT', 'LUNA-USDT', 'BTS-USDT', 'LIT-USDT', 'UNFI-USDT', 'DODO-USDT', 'REEF-USDT', 'RVN-USDT', 'SFP-USDT', 'XEM-USDT', 'BTCST-USDT', 'COTI-USDT', 'CHR-USDT', 'MANA-USDT', 'ALICE-USDT', 'HBAR-USDT', 'ONE-USDT', 'LINA-USDT', 'STMX-USDT', 'DENT-USDT', 'CELR-USDT', 'HOT-USDT', 'MTL-USDT', 'OGN-USDT', 'NKN-USDT', 'SC-USDT', 'DGB-USDT', '1000SHIB-USDT', 'ICP-USDT', 'BAKE-USDT', 'GTC-USDT', 'BTCDOM-USDT', 'KEEP-USDT', 'TLM-USDT', 'IOTX-USDT', 'AUDIO-USDT', 'RAY-USDT', 'C98-USDT', 'MASK-USDT', 'ATA-USDT', 'DYDX-USDT', '1000XEC-USDT', 'GALA-USDT', 'CELO-USDT', 'AR-USDT', 'KLAY-USDT', 'ARPA-USDT', 'NU-USDT', 'CTSI-USDT', 'LPT-USDT', 'ENS-USDT', 'BTC-USDT', 'ETH-USDT', 'PEOPLE-USDT', 'ANT-USDT', 'ROSE-USDT', 'DUSK-USDT', '1000BTTC-USDT']\nThere's 80 available pairs in candle database at: 2021-01-01\nStart: 2021-01-01 00:00:00  2022-01-01T00:00:00+00:00\n  temp_dir /tmp\n  ```  \n  \n### jesse-tk backtest\nWorks same as classic `jesse backtest` but it has ability to inject hyperparameters from command line. Useful for batch testing, research.\n```\n  --dna TEXT                      Base32 encoded dna string payload  [default:None]\n  --hp TEXT                       Hyperparameters payload as dict  [default: None]\n  --seq TEXT                      Fixed width hyperparameters payload [default: None]\n```\n\n* --dna: Jesse encoded dna strings. Supports only integer hyperparameters. eg. `A0@1J`\n* -- hp: Hyperparameters as json/dict. eg: `{'name': 'boost', 'type': int, 'min': 0, 'max': 150, 'default': 68}`  \n\nMy favourite:\n* --seq: Fixed width, zero padded hyperparameters. Last number identifies the width. eg. 730900202   \ncan be encoded as: 73 9 0 20 [2 is width]\nJesse-tk tools like random, refine uses seq as default input.  \nIf you pass seq code and  `--full-reports` at the same time tk prints seq code into quantstats reports to identify results. It has a special use case.  \n\n\n\n\nsee old tool [jesse-picker](https://github.com/ysdede/jesse-picker) for details.\n\n  \n  \n  \n  \n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n  \n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysdede%2Fjesse-tk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysdede%2Fjesse-tk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysdede%2Fjesse-tk/lists"}