bfx-hf-algo

    4.3.2 • Public • Published

    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

    Install

    npm i bfx-hf-algo

    DownloadsWeekly Downloads

    62

    Version

    4.3.2

    License

    Apache-2.0

    Unpacked Size

    5.1 MB

    Total Files

    475

    Last publish

    Collaborators

    • vigan-abd
    • bitfinexorg
    • prdn
    • mafintosh