Releases: evgrmn/tmatic
Tmatic 24.10.0 Beta
Instruments Menu
Full Changelog: 24.9.0...24.10.20
Tmatic 24.9.0 Beta
New Settings menu
-
Reworked message logger, which is more centralized regarding initial loading.
-
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.
-
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.
-
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
Added Deribit exchange
Full Changelog: 24.8.0...24.8.1
Tmatic 24.8.0 Beta
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:
- 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.
- Redesigned http.py to handle error codes from different exchanges.
- New main menu widget.
- New Bots class for managing bot data. Expanding the functionality of the bot, allowing the bot to trade on multiple exchanges and instruments.
- Rebuilt the robots database table.
- Added functionality for delivery after the instrument expires.
- Redesigned the main page.
- Subscribe and unsubscribe to instruments without restarting.
- Simplified addressing of instrument classes as (symbol, market) instead of (symbol, category, market).
- Added a new TICKER column to the coin and bot database tables.
- The TreeviewTable class has been expanded to display information in a hierarchical order.
- Improved error handling when initially loading data from exchanges.
- Added a new Tool class containing bot functionality.
- Redesigned kline controls.
- 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
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
More reliable operation of the program with an unstable Internet connection and other improvements:
-
Fixed a bug when displaying the market column in f9 "ON" mode.
-
Fixed a bug when displaying trades funding in the tables. When merging data from different exchanges, reverse sorting was not included.
-
Error messages are sent to the info widget and are highlighted in red.
-
Blocking threads when processing orders and transactions.
-
The situation when all prices are missing in the order book has been handled.
-
The Bitmex ping_pong() function checks the functionality of the web socket.
-
Bitmex: orders are no longer loaded from websocket snapshot. Instead, the initial loading occurs from the REST endpoint.
-
Orders are loaded immediately after the instruments.
-
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.
-
Data storage in the common var.orders array has been discontinued. Each exchange stores its own object with a list of orders.
-
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.
-
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
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
New adaptive design and multi-threading
-
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.
-
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
Bybit connected
-
Uses the official Python3 API connector for the Bybit HTTP and WebSockets API https://github.com/bybit-exchange/pybit.
-
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
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:
-
The api folder contains all the code that is responsible for connecting via websockets and exchanging data with exchanges.
-
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.
-
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.
-
The file api/websockets.py is a dictionary through which websocket instances are addressed.
-
File api/init.py - preparing some variables before initializing the websocket.
-
File api/api.py - contains the WS class, which distributes REST requests by the name of the exchange, using the 'name' variable.
-
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.
-
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
- 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"
-
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.
-
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