Post
Topic
Board Marketplace (Altcoins)
Topic OP
jsmex.io the first programmable exchange
by
jsb4ch
on 16/12/2019, 13:08:45 UTC
image loading...


JSMEX.io, the first programmable cryptocurrency exchange.
In addition to the standard functionalities, jsmex is programmable; this means that users can deploy trading strategies in the account strategy section, and then those will be executed server-side, reducing latency drastically.
Other exchanges do not commonly use this technology, and We have developed a secure way that can execute third-party code in a runtime process using isolated environments.

Users can use strategies to build safe measures, advanced trading bots, or manage their market price.
We have fully integrated ccxt in our custom environment, so Users can easily port any current strategy based on ccxt to jsmex; of course, HTTP requests are restricted and are open only for jsmex.io domains.

Listing requests or market-makers email jsb4ch@jsmex.io

Check out jsmex-trader-sdk on npm, our trading strategy sdk based on ccxt.


image loading...     image loading...
Demo preview


Sample panic close strategy
Code:
module.exports = class extends (global.Trader || require('jsmex-trader-sdk')) {
  constructor (options) {
    super(options)
    this.defaultSymbol = this.options.defaultSymbol
  }

  /**
     * SamplePanicCloseStrategy on tick method
     *
     * @author jsb4ch
     * @since 1.1.0
    */
  async onTick () {
    try {
      let close = this.close()
      let yesterdayOpen = this.open(24)
      let rate = (
        close.minus(yesterdayOpen)
      ).div(yesterdayOpen)
      if (rate.lte(-0.2)) {
        return this.cancelAllOrders()
      } else {
        global.log(rate.toNumber())
      }
    } catch (err) {
      global.error(err)
    }
  }

  /**
     * SamplePanicCloseStrategy static options
     *
     * @author jsb4ch
     * @since 1.1.0
    */
  static get options () {
    return {
      ...this.defaultOptions,
      defaultSymbol: 'JMX/USDT',
      exchanges: {
        jsmex: {
          wwwDomain: 'jsmex.io',
          apiDomain: 'api.jsmex.io'
        }
      },
      ccxt: {
        fetchOHLCV: {
          resolution: '10m',
          limit: 500
        }
      }
    }
  }
}