Skip to content

This is trading platform. It's implements the connection to the trading platform Quik through named pipes. Represents financial data via OpenGl in cluster chart.

Notifications You must be signed in to change notification settings

ralex1975/TradePlatform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TradePlatform

This is trading platform. It's implements the connection to the trading platform Quik through named pipes. Represents financial data via OpenGl in cluster chart.

TradePlatform реализует кластерный график цены. Построение графика осуществляется на основе поступающих в реальном времени, тиковых данных из торговой платформы Quik.

Разрабатываемая система должна заменить платный аналог с годовой стоимостью подписки 700$ Volfix.net.

Необходимо было решить несколько задач: двусторонняя связь с торговым терминалом брокера (передача: команд, котировок, заявок, стакана цены), обработка и хранение входных данных, отображение результата обработки в графическом виде, график должен иметь возможность масштабирования и прокрутки.

Задача взаимодействия двух программ, была разрешена использованием file mapping. Для каждого типа передаваемой информации (сделки, стакан, служебная информация и т.п.) были созданы свои именованные области памяти. Прием и отправка данных реализованны в потокобезопасном виде как со стороны C#, так и со стороны Quik (связка QLua-API Quik + с++ DLL-реализующая File mapping). Это позволило со стороны C# создать отдельные потоки для работы с каждым типом входящих и исходящих данных.

Т.к. в программе данные поступают в одном потоке, а используются в другом, необходимо было решить проблему доступа из двух потоков к одной области данных. Была выбрана потокобезопасная коллекция ConcurrentDictionary, что позволяло бы дописывать данные и считывать их без коллизий. Но, скорость отображения оставляло желать лучшего. Тогда была применена не потокобезопасная коллекция Dictionary, и введена булева переменная, индицирующая доступность коллекции на чтение-запись. Это предоставило потокобезопасный доступ и сократило время доступа при обращении к ней.

Отображение кластеного графика реализовнно на графической библиотеке OpenGl.

About

This is trading platform. It's implements the connection to the trading platform Quik through named pipes. Represents financial data via OpenGl in cluster chart.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 88.2%
  • C++ 6.7%
  • Lua 5.1%