Протокол FIX с использованием Java

Я разработал утилиту на Java, использующую протокол Financial Information eXchange(FIX) для извлечения данных из входного потока. Однако в настоящее время я не нашел в сети тестовых серверов, к которым я могу подключиться для реализации протокола FIX. Может кто-нибудь, пожалуйста, дайте мне знать, как я могу этого добиться?


person user1066568    schedule 07.02.2012    source источник
comment
Один вопрос: почему вы создали свой собственный движок, когда доступны движки с открытым исходным кодом? Который вы могли бы настроить для себя.   -  person DumbCoder    schedule 07.02.2012
comment
Спасибо за комментарий DumbCoder. Я не собирал свой собственный двигатель. Вместо этого я построил свою утилиту поверх quickfixj. Однако я хочу подключиться к тестовому серверу, откуда я могу получить цены на потоковую передачу с использованием протокола FIX. Знаете ли вы, есть ли какие-нибудь тестовые серверы, которые помогут мне достичь этого?   -  person user1066568    schedule 08.02.2012


Ответы (6)


http://www.quickfixj.org/ имеет механизм исправления с открытым исходным кодом. Он поставляется с примером, который имеет простой сервер. Возможно, вы захотите использовать их библиотеку и для клиента, а не перестраивать механизм FIX с нуля...

person assylias    schedule 07.02.2012
comment
Спасибо за это assylias. Я уже проверил пример клиент-серверного приложения, но мне нужно подключиться к тестовому серверу, откуда моя программа может получать цены на потоковую передачу. - person user1066568; 08.02.2012
comment
Я не знаю о бесплатном тестовом сервере, но большинство брокеров смогут предоставить вам логин для запуска некоторых тестов. Поэтому тот, к кому вы пытаетесь подключиться, должен быть в состоянии помочь. Кроме того, вы можете изменить код сервера в quickfixj, чтобы он возвращал случайные цены... - person assylias; 08.02.2012
comment
Также не уверен, что вы подразумеваете под потоковыми ценами, вы имеете в виду цену исполнения? Или цены после RFQ, например? - person assylias; 08.02.2012
comment
Ассилия спасибо. Я имею в виду запрос предложений. Итак, в основном, я передаю на сервер начальное сообщение с продуктом, для которого мне нужны цены (котировки) потоковой передачи, а затем я буду опрашивать сервер каждые 500 мс или около того для этих цен. Выдвигает ли пример сервера в quickfixj стоимость потоковой передачи? Я не мог видеть это до сих пор. Нужно ли мне что-то активировать, чтобы увидеть, как это происходит? - person user1066568; 08.02.2012
comment
Я не думаю, что вы можете получить цены на потоковую передачу с помощью примера, поэтому вам нужно будет изменить его... - person assylias; 09.02.2012

Вы можете использовать CoralFIX, чтобы быстро запустить тестовый сервер. Он обрабатывает все сообщения FIX уровня сеанса, такие как Logon, ResendRequest, SequenceReset, Heartbeat, чтобы вы были готовы начать обмен сообщениями со своим клиентом. Ниже простой пример:

import com.coralblocks.coralfix.FixMessage;
import com.coralblocks.coralreactor.client.Client;
import com.coralblocks.coralreactor.nio.NioReactor;
import com.coralblocks.coralreactor.util.Configuration;
import com.coralblocks.coralreactor.util.MapConfiguration;

public class SimpleFixApplicationServer extends FixApplicationServer {

    public SimpleFixApplicationServer(NioReactor nio, int port, Configuration config) {
        super(nio, port, config);
    }

    @Override
    protected void handleFixApplicationMessage(Client client, FixMessage fixMsg, boolean possDupe) {
        // do whatever you want to do with the application message received from this client...
    }

    public static void main(String[] args) {

        NioReactor nio = NioReactor.create();

        MapConfiguration config = new MapConfiguration();

        // print all messages received and sent to STDOUT for debugging purposes
        // (default is false)
        config.add("debugMessages", "true");

        // accept as the client inbound sequence whatever 
        // sequence I receive in the first message coming from the client
        // (default is false)
        config.add("acceptInboundSeqFromClient", "false");

        Server server = new SimpleFixApplicationServer(nio, 45451, config);

        server.open();
        nio.start();
    }
}

Полное объяснение приведенного выше кода можно найти здесь.

Отказ от ответственности: я являюсь одним из разработчиков CoralFIX.

person rdalmeida    schedule 11.07.2014
comment
спасибо за публикацию. Это похоже на очень простой сервер. Есть ли простой пример клиента? У меня есть сервер, рассылающий цены, я просто хочу подключиться к нему и посмотреть поток цен. - person deitch; 21.02.2016

Я предполагаю, что вы построили его не в вакууме, а для того, чтобы поговорить с FIX-сервером какого-то брокера? Если это так, поговорите со своим брокером, так как у него, вероятно, есть тестовый сервер, к которому вы могли бы подключиться.

person NPE    schedule 07.02.2012
comment
Спасибо за комментарий aix. Пройдет некоторое время, прежде чем я получу тестовый сервер от своего брокера. Примерно 2 недели. А пока я хотел бы знать, есть ли какие-либо бесплатные тестовые серверы, к которым я могу подключиться, что поможет моей программе получить цены на потоковую передачу с рынка. - person user1066568; 08.02.2012

Это зависит от того, хотите ли вы решение для хостинга или самодельное решение. Если вы хотите быстро вызвать сеансы FIX без необходимости компиляции/сборки/настройки, я бы выбрал размещенный симулятор.

У нас есть учетная запись у этих ребят http://www.fixsim.com/, и мы рекомендуем их (просто настроить и добавить больше подключений).

(Я не работаю в компании и мне нечего сказать)

person Charles    schedule 11.03.2014

вы можете попытаться найти дополнительную информацию здесь: http://fixprotocol.org/discuss/

person dhblah    schedule 07.02.2012

Я работаю на брокера, и вы можете подключиться к нашим серверам Staging FIX. Я не знаю никаких анонимных серверов поблизости, возможно, это то, что могло бы установить сообщество FIX.

Привет, Крис

person Chris Dus    schedule 19.05.2012
comment
Привет, Крис. Этот вариант еще доступен? - person Christian; 02.06.2013