Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vp-mazekine/huckster
A marketmaker bot based on Broxus Nova for asynchronous orders placement in Nova's orderbook using different strategies and price feeds.
https://github.com/vp-mazekine/huckster
broxus-nova marketmaker strategy ton
Last synced: 2 months ago
JSON representation
A marketmaker bot based on Broxus Nova for asynchronous orders placement in Nova's orderbook using different strategies and price feeds.
- Host: GitHub
- URL: https://github.com/vp-mazekine/huckster
- Owner: vp-mazekine
- Created: 2020-11-11T13:26:45.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-28T16:36:58.000Z (about 3 years ago)
- Last Synced: 2024-07-30T20:55:26.081Z (5 months ago)
- Topics: broxus-nova, marketmaker, strategy, ton
- Language: Kotlin
- Homepage: https://broxus.com
- Size: 218 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# huckster
A marketmaker bot based on Broxus Nova.
*huckster* helps you to place asynchronous orders in Broxus Nova orderbook using different strategies and price feeds.
## Building
* Clone *huckster* repository with the `git clone` command.
* Go to the repo directory
* Run `./gradlew build` to build the executable
* Copy the executable to your current location:
```bash
mv ./build/libs/hucksterFat.jar ./huckster.jar
```**Important:** You need to have `jdk1.8.0_201` installed to build the app. In case it is not the only Java instance on your PC, specify the path to jdk explicitly by adding `-D org.gradle.java.home=` parameter to Gradlew.
## Running
To run *huckster*, use a regular java syntax:
```bash
java -jar ./huckster.jar [JOB] [PARAMS]
```### Supported jobs
* `seller`
Sell at the highest possible price
* `orderbook`
Visualize existing orderbook### Runtime parameters
#### `seller` job
* `-k, --keys `
Keys to access Broxus Nova platform
* `-s, --strategy `
Orders placement strategy configuration
* `-pad, --priceAdapter `
Price adapter configuration
* `-pau, --priceAuth `
Price adapter authentication file \[optional, adapter-dependent\]
* `-n, --notify `
Notifier configuration file [optional]#### `orderbook` job
* `-p, --pair `
Base and counter currency tickers separated by a delimiter.
Supported delimiters: underscore(`_`), dash(`-`) and slash (`/`)
* `-k, --keys `
Keys to access Broxus Nova platform
* `-r, --refresh `
Orderbook refresh rate in seconds \[optional\]. Default: 10### Supported strategies
* `simple`
A simple strategy that takes the following parameters as inputs:
* Source currency
* Offsets (for parallel execution) along with volume parts
* Execution limits
* Volume and prices structure per target currenciesFor more details see [Simple strategy specification](examples/Simple%20strategy%20specification.md).
See [examples](examples) folder for samples of strategy configuration files.
### Supported price feeds
* `fixed`
Goes without saying, fixed prices per different target currencies.* `googleSheet`
Sources price feed from a Google Sheet. Requires [OAuth 2.0 file](https://developers.google.com/identity/protocols/oauth2) downloaded from [Google Developer Account](https://console.developers.google.com/).
* `bitcoin.com`
Gets price feed from Bitcoin.com exchangeSee [examples](examples) folder for samples of price feed configuration files.
### Supported notifiers
* `telegram`
Uses credentials of a Telegram bot to push notifications to private and public chats.
See [examples](examples) folder for configuration samples.