Germany | Finland | Saint Petersburg | Drive

Обмен данными между терминалами

Опубликовано в Роботы

Как организовать обмен между двумя рабочими местами quik?

Первое что приходит в голову - через текстовый файл. Одно рабочее место пишет данных в него, другое рабочее место читает. Пока одно пишет, второе ждет. В принципе, вариант несложный, но ненадежный и медленный. Допустимо, если обмен происходит только между двумя рабочими местами. А если необходим обмен между многими терминалами? Тут файл уже непригоден. Нужно обмениваться данными через оперативную память.

Ко мне обратился заказчик. Ему необходимо реплицировать (дублировать) заявки из основного (рабочего) терминала в несколько других. Обычно таких терминалов запущено более пяти.

При выставлении заявки она должна создаваться во всех остальных запущенных терминалах ровно по той же цене, что и в исходном. Должны поддерживаться как рыночные, так и лимитированные заявки. При снятии заявки она должна сниматься везде. Должны поддерживаться все доступные классы инструментов. Также необходимы фильтры по инструментам и по торговым счетам/кодам клиентов. Особо Заказчик обращал внимание на скорость реакции системы. И, естественно, должны отслеживаться и обрабатываться нештатные ситуации.

Конечно, через файловый обмен такую задачку не решить. Поэтому пришлось связать все запущенные терминалы через общую область памяти. Главное рабочее место поставляет туда данные, а ведомые разбирают и исполняют. Очередности доступа нет, все терминалы могут работать с общей памятью одновременно и параллельно.

 

Вот что получилось в результате (на примере одного ведомого счета и демо-торгов):

 

Скорость реакции не зависит от количества ведомых терминалов. Также не имеет значения, как выставляется в главном терминале заявка - вручную, роботом или как-то еще.

 

См. также 

Публикуется с разрешения Заказчика

Комментарии   
# swerg 11.06.2014 22:35
Можно чисто из любопытства узнать примененную технологию?
Ответить | Ответить с цитатой | Цитировать
# admin 15.07.2014 23:35
Можно ) Общая dll
Ответить | Ответить с цитатой | Цитировать
# Сергей82 29.08.2014 08:33
А можно ее как-то заполучить? :)
Ответить | Ответить с цитатой | Цитировать
# admin 31.08.2014 19:06
Используйте амишарп. С его помощью можно сделать все то же самое.
Ответить | Ответить с цитатой | Цитировать
# Евгений А 01.05.2017 05:51
Здравствуйте
А можно купить эту программу?
Ответить | Ответить с цитатой | Цитировать
# admin 01.05.2017 07:57
Добрый день. Да, вполне.

Звоните голосом в скайп
Ответить | Ответить с цитатой | Цитировать
# mkurt 08.06.2017 12:11
Добрый день, как можно опробовать эту чудную утилиту в работе? ПС. В сортах пива разбираюсь )
Ответить | Ответить с цитатой | Цитировать
# admin 08.06.2017 14:08
Здравствуйте.

Позвоните, пожалуйста, мне в скайп mikemsk.
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий