Давненько уже написал JNA-обёртку для модуля управлением транзакций QUIK (Trans2Quik.dll). Использую её для отправки транзакций в терминал.
Решил поделиться:
github.com/Enfernuz/JavaTrans2Quik
Получение информации из терминала сделано на базе проекта другого посетителя Смарт-Лаба — товарища ПВМ (ссылка на пост:
smart-lab.ru/blog/216370.php).
Кто-то спросит, «зачем Java, когда проще пользоваться нативной библиотекой через C++»?
Я писал в своё время на C++, но вот никаких крупных библиотек кроме Boost и std не использовал. Т.к. я работаю Java-разработчиком, то для написания несложных алгоритмических стратегий мне проще оставаться в экосистеме джавы.
Я, конечно, тоже верю в кукла, но вот так, что он сидит и выслеживает, по кому бы бомбануть, чтобы отобрать копеечку — это уже чересчур :)
Для своих HFT-фантазий я сейчас пишу коннектор к CGate. Хотел для FIX/FAST написать (чтобы, если что, без боли переезжать на другие площадки), но так и не смог соединиться с биржевым тестовым VPN для FAST.
Например, стартую работу по 15 инструментам сразу, запустил в 17:47:42 и соединение разорвалось в 17:49:09, то есть отработало 1,5 мин, за это время было выставлено и снято 44 заявки (несколько последних не снялись из-за разрыва соединения). В случае с работой одновременно по 2м-3м инструментам всё отрабатывает исправно.
Вы не пробовали тестировать работу через обертку с разной нагрузкой? Может знаете в чём может быть проблема?