В последнее время много разбиралась с протоколом FIX и библиотекой QuickFIX/J.
FIX (Financial Information eXchange) — это стандартный язык для обмена финансовой информацией между участниками рынка. Он используется для передачи заявок на покупку и продажу, котировок и прочего. FIX обеспечивает быструю и надежную коммуникацию, что делает его основным инструментом в финансовой сфере.
Для работы с протоколом FIX существует множество библиотек, одной из самых популярных является QuickFIX/J. Это открытая реализация FIX на языке Java, которая позволяет разработчикам создавать торговые приложения, взаимодействующие с различными торговыми системами.
Как подключить?
Если у вас проект на Maven:
<dependency>Дальше нужно настроить конфиг (например, config.cfg):
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-core</artifactId>
<version>2.3.2</version>
</dependency>
[DEFAULT]Это базовые настройки: кто вы (SenderCompID), с кем общаетесь (TargetCompID) и куда подключаетесь.
ConnectionType=initiator
SocketConnectHost=your.host.ru
SocketConnectPort=9876
SenderCompID=SENDER_ID
TargetCompID=TARGET_ID
[SESSION]
BeginString=FIX.4.4
Вот пример простого клиента, который подключается к серверу FIX и отправляет тестовый запрос:
public class FixClient implements Application {
public void onLogon(SessionID sessionId) {
System.out.println("Успешный логин: " + sessionId);
sendTestRequest();
}
private void sendTestRequest() {
try {
Message testRequest = new Message();
testRequest.getHeader().setField(new MsgType(MsgType.TEST_REQUEST));
testRequest.setField(new TestReqID("Тест"));
Session.sendToTarget(testRequest);
} catch (SessionNotFound e) {
e.printStackTrace();
}
}
}
Если разобраться с конфигами и самим протоколом FIX, то это удобный инструмент для автоматизации торговли и интеграции с биржами или брокерами. Его плюсы:- стандартизация: FIX является общепринятым стандартом для финансовых сообщений.
- open-source: не нужно платить за библиотеку.
- гибкость: можно настроить всё под свои нужды.