logo

#Version 3.0.17

Released 2021-10-06

Update opendax.rb

Update ruby Update rbtree library

#Version 3.0.16

Released 2021-10-04

Fix: use the verify_ssl option in websocket connections

#Version 3.0.15

Released 2021-07-13

Recode binance driver in pure faraday

#Version 3.0.14

Released 2021-07-13

Feature: Add Finex FX service

#Version 3.0.13

Released 2021-07-13

Fix balance limits with forex (#196)

  • Support multiple markets in bitfaker
  • Remove the fx logic from reactor, add the support in copy and orderback strategies
  • Add the support of FX in fixedprice and simple_copy strategies
  • Update simplecov
  • Fix some code smells

#Version 3.0.12

Released 2021-06-25

Do not clear open orders list when refreshing the list

The process is now incremental and asynchronous It is better to arke to consider a closed order as open and try to close it twice instead of missing an open order.

#Version 3.0.11

Released 2021-06-23

Ability to disable the balance check in copy and orderback strategies

Ability to enable limit_by_target_balance on orderback (now disabled by default)

Add the support of finex bulk messages

Add documentation about disable_balance_check param on account

Add the support of fx to circuitbraker

Bump master version to 3.0

Fix gitolite publish

Fix: change 'limit_by_target_balance' to 'limit_by_source_balance' (#200)

Fix fetch openorders logic

Kraken: raise explicit errors and supports empty balances

Multiple delays for account execution

Using mutiple delays on an account will start several action executors with different periods, they will pop actions from the execution list at a different offsets, this gives the ability to execute lower priority actions in parallel of top priorities actions.

We also added the ability to overwrite the account delays on a strategy configuration, so different strategy can execute actions at a different rate.

Support finex response for already closed order

Pull Requests

Merge pull request #208 from openware/3-0/fix-gitolite-publish

#Version 2.6.13

Released 2021-06-23

Fix gitolite publish

Pull Requests

Merge pull request #207 from openware/2-6/fix-gitolite-publish

#Version 3.0.10

Released 2021-06-18

Add the support of finex bulk messages

#Version 3.0.9

Released 2021-05-25

Add documentation about disable_balance_check param on account

#Version 3.0.8

Released 2021-05-25

Ability to disable the balance check in copy and orderback strategies

#Version 3.0.7

Released 2021-05-21

Support finex response for already closed order

#Version 3.0.6

Released 2021-05-10

Fix: change 'limit_by_target_balance' to 'limit_by_source_balance' (#200)

#Version 3.0.5

Released 2021-04-14

#Version 3.0.4

Released 2021-04-13

Kraken: raise explicit errors and supports empty balances

#Version 3.0.3

Released 2021-03-29

Ability to enable limit_by_target_balance on orderback (now disabled by default)

#Version 3.0.2

Released 2021-03-24

Add the support of fx to circuitbraker

#Version 3.0.1

Released 2021-03-23

Fix fetch openorders logic

#Version 3.0.0

Released 2021-03-18

Bump master version to 3.0

Multiple delays for account execution

Using mutiple delays on an account will start several action executors with different periods, they will pop actions from the execution list at a different offsets, this gives the ability to execute lower priority actions in parallel of top priorities actions.

We also added the ability to overwrite the account delays on a strategy configuration, so different strategy can execute actions at a different rate.

#Version 2.6.12

Released 2021-03-17

Add the support of market order in huobi

Fix orderback double orders

Fix binance market order

Fix missing dependency on Huobi Add support of market order on Huobi Add support of market order on Binance

#Version 2.6.11

Released 2021-03-10

Fix: Binance exchange now support tickSize param in PRICE_FILTER filter

#Version 2.6.10

Released 2021-03-02

Feature: balance percentage plugin (#190)

  • Feature: Add limit by balance ratio on copy strategy
  • Fix: Add unit tests
  • Feature: Add limit_balance plugin for copy and orderback strategy

Co-authored-by: Camille Meulien <cmeulien@heliostech.fr> Co-authored-by: Jeng <jeng@yellow.com>

#Version 2.6.9

Released 2021-03-01

Increase default timeout to 10s on opendax and finex

#Version 2.6.8

Released 2021-02-26

Binance: improve error in case of missing market

#Version 2.6.7

Released 2021-02-25

Fix finex trying to cancel already canceled orders in loop

#Version 2.6.6

Released 2021-02-25

Add the support of bulk_stop_order in finex and use it in circuit braker strategy

Feature: Add Binance orderbook websocket support

Fix: missing queue_id for Circuitbraker

#Version 2.6.5

Released 2021-01-15

Feature: Add orderback_type by market as default

#Version 2.6.4

Released 2021-01-15

Ability to configure levels_step function on all strategies

New strategy: simple-copy with orderbook generator (#163)

  • New strategy: simple-copy with orderbook generator

  • Add command to display account informations:

./bin/arke show infos
  • Fix on Smart scheduler: Apply fast track on cancel order when low liquidity flag is raised

  • Handle the SIGTERM and stop arke

#Version 2.6.3

Released 2021-01-13

Fix: Valr create order missing pair

#Version 2.6.2

Released 2020-12-23

Fix continuous integration pipeline

Fix valr market configuration

#Version 2.6.1

Released 2020-12-22

Enhancement: Update sdk-citools version for Drone CI (#166)

#Version 2.6.0

Released 2020-12-15

Update dependencies

#Version 2.4.7

Released 2020-12-15

Ability to pass the strategy config in STDIN

Add VALR exchange support

Add drivers opendax and finex Deprecates rubykube driver

Add Candle Sampling strategy (#154)

  • Add Candle Sampling strategy
  • Bump master version to 2.6

Candle sampling v2 (#155)

  • Make the trade side depends on the price trend
  • Add max_balance param to candle-sampling strategy
  • Use the weighted volume of trades of the last time window

Fix: no order in target orderbook

Update dependencies

Use finex markets config endpoint

#Version 2.4.6

Released 2020-11-23

Bump master version to 2.5

Clean dependencies

#Version 2.4.5

Released 2020-04-30

Switch nonce in millisecond timestamp for Openware peatio

#Version 2.4.4

Released 2020-04-13

Clean README

Fix typo in logging message

Ignore pong messages in rubykube driver

#Version 2.4.3

Released 2020-03-23

Merge remote-tracking branch 'origin/master' into HEAD

Update for latest finex

#Version 2.4.2

Released 2020-03-20

Raise an error if arke tries to cancel an order with unknown id with openware/peatio target (#135)

#Version 2.4.1

Released 2020-03-20

#Version 2.4.0

Released 2020-03-20

Ability to apply a static forex change to strategies prices output

Add the support of pagination in fetch orders for openware/peatio 2.4

Add finex balances events support

Add Finex order API

Add finex support (#134)

  • Add finex support to rubykube exchange type

Add the command arke order to the cli to send order to an exchange Fix bitfinex order type to avoid error "Invalid order: not enough tradable balance"

Bump to 2.4.0

Cleanup: remove rails dependency and unused code Removed ETL

Cleanup bitfinex websocket connection

Code refactoring

  • Fix spread calculation on the order back price
  • Fix Bitfinex auto configuration
  • Centralize the market precision application inside order model
  • Improve test coverage of the order back strategy
  • Apply market rules (precision and min amount) to orders made from cli
  • Binance: round up orders amount using the min national rule for small amount

Deprecate configuration market.id in favor of market_id (#116)

  • Deprecate configuration market.id in favor of market_id

Do not rescue error on strategy initialization

Dynamically fetch forex rates

Enhauncement: update sdk version (#124)

FX support in order back

Feature: Start strategies document for fast copy (#133)

  • Feature: Start strategies document for fast copy

  • Fix: add space in comment, fix typo

  • Feature: Add one strategy example per strategy

Fix: fetch open orders up to 1000 if the header Total is missing

Fix levels_count can be 1

Fix: For Huobi exchange, force to parse response as JSON

Fix microtrade-copy strategy to receive trades from multiple markets

Fix: Apply orderback requirements after the amount check

Fix: Update the missing account error message

Fix loop of order cancels (#129)

  • Fix loop of order cancels when we miss the confirmation from the websocket

Fix a bug on microtrade strategy random amount

Fix microtrade strategy precision

Fix order precision issue

Fix auto configuration of base and quote currencies for bitfinex markets

Fix: Tickers WS message (#110)

Huobi public websocket support

Kraken: consider balance total amount is free since we don't have the information about balance locked amounts

Kraken ws unify

Markets configuration is now automatic it fetches it through the API of every exchange

New strategy for drawing candlestick: Microtrade-Copy

  • Supports multiple sources (binance and bitfinex supported)
  • Support forex rate applied to the source
  • Notice: the legacy microtrade strategy is renamed to Microtrade-Market

Add the support of incremental orderbook to rubykube

Openware exchange: Reduce the ping delay to 53 seconds

Option to enable/disable https in dynamic forex module

Raise explicit error when driver is undefined

Support of peatio 2.3 in orderback strategy Fix a problem in orderback when the id of source and target markets are not the same Change the default orderback_grace_time to 1 second

#Version 2.3.30

Released 2020-03-13

Enhauncement: update sdk version (#125)

Fix: For Huobi exchange, force to parse response as JSON

#Version 2.3.29

Released 2019-11-29

Add Websockets for k-line and tickers

Add circuitbraker strategy

Add volume to cache gems in drone pipeline

Changed smart scheduler priorities to balance the liquidity and do less changes Add documentation about max_amount_per_order new parameter

Enhancement: Update sdk image

Feature: add docs generated and slack notifying step (#104)

Feature: Add a CI step to push images to Openware Registry (#105)

  • Deprecate the second GCR CI push

Feature: Introduce Smart Scheduler (#99)

Change default scheduler to SmartScheduler Actions are prioritized in the following groups: 1- if any existing orders are behonds desired orderbook limits they are canceled in top priority 2- adjust levels liquidity, levels with biggest difference of liquidity between desired and current orderbook goes first 3- finally we cancel orders that are behonds the price points (far in the orderbook)

If we are short in liquidity (more than 120% of limit specified in orderbook), the priority of canceling group 3 becomes higher than group 2 actions until enough liquidity is available or no more orders are in group 3.

Technical changes:

  • Implement lazy logger to improve performances
  • Introduce PricePoint model (TODO: to use everywhere)
  • Use BigDecimal in orderbook

Feature: Update the CI to use SDK for version bumps (#100)

Fix stable drone build

Fix: Respect the account delay between API calls of the same strategy

Fix: apply spread on price proints

Fix: Action Executor create one queue per strategy to make quaranty action of each strategy will be executed

Fix rubykube exchange raise error in fetch_openorders when server is not accessible

Fix command show balances: skip missconfigured accounts Fix keepalive websocket connection with rubykube exchanges

Implement lazy logger to improve performances

Prepare 2.3 stable release

  • Add tests for copy strategy
  • Removed strategy1 legacy
  • Moved fixtures files to standard rails conventions
  • Minor logs improvements

#Version 2.3.28

Released 2019-11-13

Add documentation to Understand the copy or orderback target orderbook

#Version 2.3.27

Released 2019-11-11

Feature: Fetch open orders after all actions with delay

#Version 2.3.26

Released 2019-11-07

Fix: Ensure ActionExecutor scheduler timer is setup only once

#Version 2.3.25

Released 2019-11-04

ETL: Generic AMQP extract and load (#93)

  • ETL: Generic AMQP extract and load to forward a specific list of events from one exchange to another

  • ETL: Add the support of start method on load classes

#Version 2.3.24

Released 2019-11-01

Fix: apply spread for copy, update balances before running strategies… (#96)

  • Fix: apply spread for copy, update balances before running strategies, allow to seed balance

  • Fix: fake_balances to forced_balances

#Version 2.3.23

Released 2019-10-31

Fix: support transform for several loads (#94)

#Version 2.3.22

Released 2019-10-30

Feature: Add public endpoints for k-line, tickers and trades

#Version 2.3.21

Released 2019-10-28

Feature: ETL Framework to be configured by etl.yml (#87)

#Version 2.3.20

Released 2019-10-25

Adding troubleshooting guide

#Version 2.3.19

Released 2019-10-24

Implemented vault rails and fixed controllers specs (#88)

#Version 2.3.18

Released 2019-10-23

#Version 2.3.17

Released 2019-10-23

Feature: Publish Arke to gitolite (#90)

#Version 2.3.16

Released 2019-10-23

Recorder (#85)

  • First version of Recorder
  • Introduce Flags to enable features on need for markets and exchanges / accounts

#Version 2.3.15

Released 2019-10-21

Improve influx usability (#83)

#Version 2.3.14

Released 2019-10-20

Feature: Publish Arke to gitolite

InfluxDB integration with schema and examples

#Version 2.3.13

Released 2019-10-14

Add tests and fixes Add init checks for microtrades and fixedprice strategies

Changed aggregation logic - Makes sure we have always the expected number of orders - Provides the min amount information to orderbook aggregate method

TODO: Assert min_ask_amount and min_bid_amount parameters are set for the target exchange (we can create them by fetching peatio markets config)

Fix Fixedprice orders amount

Fix commands arke show balances,deposit_addresses

Introduce Market class - Market stores strategies markets infos, including orderbooks

Split mocked context and remove duplicates

Rubykube websocket reconnection mechanism

  • Disable the strategy until the websocket is connected
  • Disable linked strategies until the websocket is connected

Use linear repartition of volume in fixedprice strategy Add config checks in market

#Version 2.3.12

Released 2019-10-09

Migration to Rails 6 (#75)

#Version 2.3.11

Released 2019-10-08

Fix: update orderbook method for kraken/hitbtc/luno/okex

#Version 2.3.10

Released 2019-10-04

Feature: update ruby to version 2.6.5

#Version 2.3.9

Released 2019-10-01

Feature: rename 'strategy1' to 'orderback' (#70)

  • Feature: rename 'strategy1' to 'orderback'

  • Feature: move orderback function to orderback strategy

  • Feature: move params for orderback to orderback strategy

  • Feature: update documentation and add some tests for min order back amount

#Version 2.3.8

Released 2019-09-30

Update documentation for arke (#69)

  • Update documentation for arke

#Version 2.3.7

Released 2019-09-25

Prevent orders to overlap with exact same price when scheduling orders refresh

Schedule refuse to create a wrong orderbook

Simplify the orderbook update by recreating orders with the exact same price

#Version 2.3.6

Released 2019-09-24

Prevent orders to overlap when scheduling orders refresh

#Version 2.3.5

Released 2019-09-23

Fix: microtrades strategy

#Version 2.3.4

Released 2019-09-17

Fix: check trade market before orderback (#64)

  • Fix: check trade market before orderback

#Version 2.3.3

Released 2019-09-17

Limit amount of microtrades to 60% of linked strategy open orders volume

  • Feature: limit amount of microtrades to 60% of linked strategy open orders volume

#Version 2.3.2

Released 2019-09-06

Feature: Add quay.io push step to drone

Pull Requests

Merge pull request #62 from openware/feature/push_quay

#Version 2.3.1

Released 2019-09-04

Ability to load configuration from YAML files

Accounts API

  • Add service for managing apikeys
    • Update account model

Add a rubocop config

Add CRUD for strategies

Add exchanges URLs

Add db:seeds task loading data from seeds.yml

Adding drone bump system

Adding Strategies

Adding Markets

rails g scaffold market exchange:references name:string base:string quote:string base_precision:integer quote_precision:integer state:string

Adding user table

Adding rspec

Compacting database and import task

Copy arke library

Factories for User example with spec

Fix: disable developer seeds and update gems

GET APIs for trades, balances, exchanges, markets, tickers

Improve Action Executor exceptions handling

Integrate JWT authenticator (#44)

  • Integrate JWT authenticator

  • Ability to get current user

Load strategies from db

Market tickers

Microtrades cancel orders after 100ms to act as a stupid fill or kill order type (fok) Stores order id in Order class

rails g scaffold balance credential:references currency:string amount:decimal available:decimal locked:decimal

rails g scaffold credential user:references exchange:references name:string

rails g scaffold exchange name:string url:string rest:string ws:string rate:decimal

rails new --api --skip-test --skip-system-test --database=mysql arke

Removing commands and fixing lib/arke specs

Rename credentials to accounts

Strategy worker

Trade model

Updating with latest master

commit 045fb6e2d8df47d04f2f0d9301043f9d26688fdb Fri Aug 30 15:26:44 2019

Feature: allow microtrades only on one side, configurable price difference

Updating seeds markets

Updating schema

Using robox:1.0.1