GithubHelp home page GithubHelp logo

bfx-hf-algo's Introduction

Bitfinex Honey Framework Algorithmic Order Library for Node.JS

Build Status

For a description of the included algo orders, see our user docs

Installation

npm i --save bfx-hf-algo
npm i --save bfx-hf-models
npm i --save bfx-hf-ext-plugin-bitfinex
npm i --save bfx-hf-models-adapter-lowdb

Quickstart & Example

To get started, create an object wsSettings required for AOAdapter, then pass them to a new AOHost instance and call startAO(id, args):

const {
  AOHost, PingPong, Iceberg, TWAP, AccumulateDistribute, MACrossover
} = require('bfx-hf-algo')

const HFDB = require('bfx-hf-models')
const HFDBLowDBAdapter = require('bfx-hf-models-adapter-lowdb')
const {
  schema: HFDBBitfinexSchema
} = require('bfx-hf-ext-plugin-bitfinex')

const algoDB = new HFDB({
  schema: HFDBBitfinexSchema,
  adapter: HFDBLowDBAdapter({
    dbPath: path.join(__dirname, '..', 'db', 'example.json')
  })
})

const host = new AOHost({
  aos: [PingPong, Iceberg, TWAP, AccumulateDistribute, MACrossover],
  wsSettings: {
    apiKey: '...',
    apiSecret: '...',
    // Authentication with auth tokens is available as an alternative for API credentials
    // authToken,
    dms: 4
  }
})

host.on('ao:state:update', async (updateOpts) => {
  // send ui updates
})

host.on('auth:error', (packet) => {
  console.log('error authenticating: %j', packet)
})

host.on('error', (err) => {
  console.log('error: %s', err)
})

host.once('ready', async () => {
  // Start an Iceberg order instance
  const [serialized] = await host.startAO('bfx-iceberg', {
    symbol: 'tBTCUSD',
    price: 21000,
    amount: -0.5,
    sliceAmount: -0.1,
    excessAsHidden: true,
    orderType: 'LIMIT',
    _margin: false,
  })

  // later, host.stopAO(gid)
})

Docs

Refer to the docs/ folder for JSDoc-generated API documentation.

Benchmarking

Environment variables API_KEY and API_SECRET must be defined (in paper mode) Run npm run benchmark:mock and keep it running in a separate terminal Run TARGET=<benchmark name> npm run benchmark:run to generate the reports (destination folder is ./benchmarks_reports), where TARGET is name of JS file in the root of test/benchmarks folder

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Note

This package will be maintained only via github, please use latest relases from github instead of npm.

Example on how to install specific version from github:

npm i --save-prod https://github.com/bitfinexcom/bfx-hf-algo.git#v4.3.4

Example on how to install it latest version from github:

npm i --save-prod https://github.com/bitfinexcom/bfx-hf-algo.git

bfx-hf-algo's People

Contributors

avsek477 avatar dmytroshch avatar f3rno avatar iamarifdev avatar jacobplaster avatar prdn avatar robertkowalski avatar tarcisiozf avatar vigan-abd avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.