Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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 currencies

For 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 exchange

See [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.