Skip to content

Releases: evgrmn/tmatic

Tmatic 24.9.0 Beta

17 Sep 11:54
0ed9a69
Compare
Choose a tag to compare

New Settings menu

  1. Reworked message logger, which is more centralized regarding initial loading.

  2. Added bot log in the Bot menu, which shows all messages related to a specific bot. Thus, the bot log separates messages from the general message feed. It also shows additional messages, such as limit management. The bot log is also saved to a file in the folder of the specified bot.

  3. Added a Settings Menu. It allows you to manage general settings, such as the database name or refresh rate, as well as settings for a specific exchange, such as the API key and API secret. The Settings Menu allows you to disable or enable one of the exchanges, change the order in which they appear on the screen.

  4. New bot functionality has been added: order deletion and order replacement.

Next release topic: Instrument menu.

Full Changelog: 24.8.1...24.9.0

Tmatic 24.8.1 Beta

30 Aug 15:07
Compare
Choose a tag to compare

Added Deribit exchange

Full Changelog: 24.8.0...24.8.1

Tmatic 24.8.0 Beta

28 Aug 08:07
Compare
Choose a tag to compare

Bot menu and new position and order management

This release includes first of all the bot menu, which is used for convenient bot management. Another big change is the new approach to managing bot positions and orders. In previous versions, the bot was limited to only one instrument and only one market. These restrictions have been removed. Now any bot can freely use many instruments from any connected exchange.

Some of the new features and improvements are listed below:

  1. Bot menu is a manager that allows you to add a new bot, delete, change parameters, activate or pause the bot, merge bots, edit the bot strategy file.
  2. Redesigned http.py to handle error codes from different exchanges.
  3. New main menu widget.
  4. New Bots class for managing bot data. Expanding the functionality of the bot, allowing the bot to trade on multiple exchanges and instruments.
  5. Rebuilt the robots database table.
  6. Added functionality for delivery after the instrument expires.
  7. Redesigned the main page.
  8. Subscribe and unsubscribe to instruments without restarting.
  9. Simplified addressing of instrument classes as (symbol, market) instead of (symbol, category, market).
  10. Added a new TICKER column to the coin and bot database tables.
  11. The TreeviewTable class has been expanded to display information in a hierarchical order.
  12. Improved error handling when initially loading data from exchanges.
  13. Added a new Tool class containing bot functionality.
  14. Redesigned kline controls.
  15. Added control over strategy limits.

Next release topic: Connecting to Deribit exchange.

Full Changelog: 24.6.1...24.8.0

Tmatic 24.6.1 Beta

20 Jun 06:03
Compare
Choose a tag to compare

Tmatic 24.6.1 Beta

Released on 20th June 2024 (UTC).

The release mainly includes improvements that affect stability.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.6.1

24.6.0

04 Jun 09:39
Compare
Choose a tag to compare

More reliable operation of the program with an unstable Internet connection and other improvements:

  1. Fixed a bug when displaying the market column in f9 "ON" mode.

  2. Fixed a bug when displaying trades funding in the tables. When merging data from different exchanges, reverse sorting was not included.

  3. Error messages are sent to the info widget and are highlighted in red.

  4. Blocking threads when processing orders and transactions.

  5. The situation when all prices are missing in the order book has been handled.

  6. The Bitmex ping_pong() function checks the functionality of the web socket.

  7. Bitmex: orders are no longer loaded from websocket snapshot. Instead, the initial loading occurs from the REST endpoint.

  8. Orders are loaded immediately after the instruments.

  9. Changed iid numbering in TreeTable. The Iids of all TreeTable objects are numbered in order, except for the table with open orders, where iid corresponds to clOrdID.

  10. Data storage in the common var.orders array has been discontinued. Each exchange stores its own object with a list of orders.

  11. The display of current orders on the screen is controlled through the var.queue_order queue, which should provide more reliable operation in multi-threading.

  12. The info_display() function call has been moved to var.queue_info for cases where these calls originate from threads.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.6.0

24.5.1

16 May 14:15
Compare
Choose a tag to compare

Faster design adapted for MacOS and Window

All tables have been redesigned using the ttk.Treeview widget instead of the tk.Listbox. Significant improvements in screen output performance on MacOS and Windows operating systems.

Multi-threading bot handling.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.5.1

24.5.0

04 May 08:15
Compare
Choose a tag to compare

New adaptive design and multi-threading

  1. The new design is more convenient in both full-screen and half-screen modes, due to the disappearance of some minor columns in the tables. Added more sliders for more flexible use.

  2. The multi-threaded approach has significantly increased the speed of downloading data from exchanges.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.5.0

24.4.0

24 Apr 18:21
Compare
Choose a tag to compare

Bybit connected

  1. Uses the official Python3 API connector for the Bybit HTTP and WebSockets API https://github.com/bybit-exchange/pybit.

  2. Migrating a MySQL database to SQLite, which is a simpler solution that does not require running a server.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.4.0

24.3.0

22 Mar 13:07
53baf79
Compare
Choose a tag to compare

Preparing the program to connect to different exchanges

This release includes changes for the simultaneous connection of several crypto exchanges on the Tmatic platform, which will allow you to receive exchange data from two or more exchanges, manage orders manually and automatically within one program. Connecting several exchanges on one platform will make trading more flexible, for example, allowing you to trade one strategy on different marketplaces. Simultaneous control of exchange prices and accounts of different trading platforms makes it possible to create arbitrage strategies between exchanges. List of main changes:

  1. The api folder contains all the code that is responsible for connecting via websockets and exchanging data with exchanges.

  2. Each exchange has its own folder with the appropriate name, for example, api/Bitmex. Such a folder must contain at least four required files: 1) ws.py - creates a websocket instance, 2) http.py - processing REST requests, 3) path.py - urls, 4) agent.py - an intermediary that receives exchange data in a format specific to a particular API and converts it into a standardized format understandable by Tmatic.

  3. The api/variabales.py file contains general variables that inherit from websocket classes, for example: accounts - the state of currency wallets, positions - information about open positions for subscribed instruments, ticker - the best buy/sell price, instruments - information on all exchange instruments , frames - candlesticks data on subscribed instruments, robots - bots of a given exchange and their data.

  4. The file api/websockets.py is a dictionary through which websocket instances are addressed.

  5. File api/init.py - preparing some variables before initializing the websocket.

  6. File api/api.py - contains the WS class, which distributes REST requests by the name of the exchange, using the 'name' variable.

  7. Possible problem of duplicate tickers. Exchange instruments belong to the following categories: "linear", "inverse", "quanto", "spot", "option". So far we have not encountered such a problem, but it can be assumed that the exchange can use the same symbol name for different categories. To avoid conflicts, the keys for the 'instruments', 'positions' dictionaries are converted from string to tuple and have the form (SYMBOL, CATEGORY). The corresponding fields have been added to the database tables.

  8. Environment variables are in the .env file.

MARKET_LIST = "Bitmex"
MYSQL_HOST = "localhost"
MYSQL_USER = "root"
MYSQL_PASSWORD = "your password"
MYSQL_DATABASE = "your database name"
ORDER_BOOK_DEPTH = "orderBook10"
REFRESH_RATE = "5"
TESTNET = "True"

where, new variables:

MARKET_LIST - a list of exchanges
TESTNET - select test or main network

  1. Settings for each exchange are located in separate files, for example, for Bitmex in the .env.Bitmex file:

LINEAR_SYMBOLS = "XBTUSDT, ADAH24, SOLUSDT"
INVERSE_SYMBOLS = "XBTUSD"
QUANTO_SYMBOLS = "ETHUSD"
SPOT_SYMBOLS = ""
OPTION_SYMBOLS = ""
CURRENCIES = "XBt, USDt"
HTTP_URL = "https://www.bitmex.com/api/v1/"
WS_URL = "wss://ws.bitmex.com/realtime"
API_KEY = "your API key"
API_SECRET = "your API secret"
TESTNET_HTTP_URL = "https://testnet.bitmex.com/api/v1/"
TESTNET_WS_URL = "wss://testnet.bitmex.com/realtime"
TESTNET_API_KEY = "your testnet API key"
TESTNET_API_SECRET = "your testnet API secret"

  1. Changes affected the graphical interface. In particular, the table with funding is combined with the table of transactions through bookmarks. The information from these tables has been converted from text to tabular, for which the new ListBoxTable class is responsible.

  2. The design is optimized for macOS, with a choice of light and dark themes. For Linux and Windows, only the light theme is still available.

Full Changelog: https://github.com/evgrmn/tmatic/commits/24.3.0

24.2.1

29 Feb 12:23
79572de
Compare
Choose a tag to compare

A field absence in the TESTNET section

Fixed a minor error in the /user/margin endpoint when the 'marginLeverage' field is empty. Seems that the emptiness is not supposed to be, and such situation is a Bitmex bug.