Code Monkey home page Code Monkey logo

fix44's Introduction

fix44

test work

Написать парсер протокола FIX 4.4, который читает сообщения от биржи из текстового файла, строит биржевой стакан (OrderBook) и выводит состояние стакана после каждого обработанного сообщения.

В первом сообщении от биржи транслируется полный биржевой стакан (это т.н. snapshot), далее передаются инкрементальные обновления, каждое обновление добавляет/меняет/удаляет один из ценовых уровней в стакане.

FIX протокол - это текстовый протокол, где все поля представляют собой конструкцию вида =, разделителем полей является 0x01, в файле с примером данных в качестве разделителя используется символ '^'. У каждого сообщения есть стандартный заголовок где содержится версия протокола, тип сообщения, длина и т.п. и концовка с контрольной суммой. В сообщении снапшота есть так называемая группа полей (массив), в этом случае поля входящие в группу повторяются N раз, кол-во повторений задаётся в начале группы. Базовое описание FIX протокола: https://en.wikipedia.org/wiki/Financial_Information_eXchange Описание схем сообщений снапшота: https://docs.deribit.com/v2/#market-data-snapshot-full-refresh-w, инкрементов: https://docs.deribit.com/v2/#market-data-incremental-refresh-x пример группы полей: https://ref.onixs.biz/cpp-fix-engine-guide/group__fix-protocol-repeating-group.html описание что такое стакан (OrderBook): https://fxssi.com/stock-exchange-order-book-exist-forex-market

Состояние стакана можно печатать в таком виде (можно ограничить вывод до 3-5 первых уровней по каждой стороне): Total SELL: 3 [2]: price: 20 (1) [1]: price: 19 (1) [0]: price: 18 (1)

[0]: price: 12 (1) [1]: price: 11 (1) [2]: price: 10 (1) Total BUY: 3 Total - кол-во уровней на стороне. В квадратных скобках - номер уровня, нумерация от лучшего по каждой стороне. После price идёт цена, за ценой в скобках кол-во на уровне

Как результат - главное написать парсинг сообщений и построение стакана, полное соответствие стандарту не требудется, все сообщения имеют корректную длину и контрольную сумму, пробевка этих полей опциональна.

fix44's People

Contributors

amabilisa avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.