Предлагаю вашему вниманию мой pet-проект Simple FIX Client для тестирования приложений с FIX-протоколом. Java-приложение использует свободную библиотеку QuickFIX/J, а для управления сообщениями — доменно-ориентированный (DSL) скриптовой язык на Groovy.
С помощью сценариев, написаных на DSL и сохраненных в файлах сценариев, вы можете сообщать библиотеке QuickFIX/J, какие сообщения она должна посылать, и валидировать полученные ответы.
Пример сценария выглядит так:
connection.defaults symbol: 'IBM', secType: 'FUT' connection.defaults side: 'Buy' connection.defaults exDest:'CME' connection.defaults ordCapacity:'A' connection.defaults account:'12345' for(x in 1..2) { connection.send nos, qty: x, price: 0, tif: 'GTC', ordType: 'Market' sleep 2.seconds connection.expect ack connection.expect fill }
Данный скрипт создает один за одним в цикле два market-ордера по покупке фьючерса IBM на бирже CME по цене 0, ждет 2 секунды, по истечение которых он ожидает получить сначала Ack, а потом Fill.
В качестве тестового стенда можете использовать мой второй проект Simple FIX Executor. Simple FIX Client выступит в качестве клиента, а Simple FIX Executor — в качестве сервера — симулятора биржи: в ответ на New Order Single (35=D) посылает Ack, а потом Fill-сообщение об исполнении вашего ордера.