CCXT in MQL5: The Unified Library for Working with Crypto-Exchanges - alpha testing

25 September 2018, 16:26
Stanislav Korotky
0
1 021
CCXT stands for CryptoCurrency eXchange Trading Library. CCXT is one of the most popular libraries for working with crypto-exchanges, supporting a large number of the services. And now it's translated to MetaTrader. The original library is available on GitHub (https://github.com/ccxt/).

Initially developed in JavaScript, it's supported in several other languages. Unfortunately, it can not be exactly translated into MQL5, due to the absence of some language features, such as closures and exceptions, for example. Because of this, and for the sake of universality, which is a fundamental idea behind the library, its structure has been changed in MQL5 significantly. Only one base class - CcxtExchange - is implemented in MQL5 and composes the library in new reincarnation. All the rest - the algorithms for http-requests setup and processing of data received from specific exchanges - is described in a special declarative language in  json files, interpretable by the core class. While in the original library every exchange is supported by a derived class, in the new CCXTMT library every exchange is a json file. json is used as most widely adopted format among crypto-exchanges' APIs.

Crypto-exchange API declaration in CCXTMT: json transformation rules are defined in a json setup file

Crypto-exchange API declaration in CCXTMT: json transformation rules are defined in a json setup file


Here are some advantages of the CCXTMT library from the users' point of view (please note: the users are the library users, that is programmers).

The unified API allows you to:
  • not deal with numerous APIs of specific exchanges; 
  • (potentially) get instant access to many exchanges and quickly build various trading strategies, including arbitrage;
  • not require to recompile the library and wait for its update every time an exchange made changes in its API;
  • add new exchanges on your own;

For more information on the structure and capabilities of CCXTMT, see the documentation, distributed along with the alpha-version.

The library is on early stage of development (not all features of the original CCXT are implemented yet, bugs are very likely). As the new architecture implies, it's necessary to create and test json setup files to support different crypto-exchanges. Hence the help from programmers, willing to participate in the alpha-testing, is welcomed. Active users will get the final version of the library.

Good candidates would be those who knows MQL5 well, is familiar with json and web technologies, has an account on an exchange. It's recommended to study and understand work logic and documentation of the original CCXT library.

To participate or ask questions - contact me via PM here on mql5.com.


Follow-up:

Declarative transformation of JSON drives unified processing of cryptocurrency exchanges' APIs

Hot to enable support of specific cryptocurrency exchange in CCXTMT library




Share it with friends: