ПоискПоиск  ПравилаПравила  ПользователиПользователи  ПрофильПрофиль  РегистрацияРегистрация  ВходВход
Форум «Техническая поддержка»
Форум для разработчиков и пользователей программного обеспечения, использующегося на бирже.

Раздел тех.поддержки | Форма обратной связи Тех.поддержка ОАО Московская Биржа: +7 (495) 733-9507, 287-7691
Требования к роботу
Новая тема   Ответить на тему
 Предыдущая тема :: Следующая тема 
 Автор  Сообщение 
Balug
Стаж: 8 лет 11 месяцев
Сообщений: 41
Чт Фев 02, 2017 14:38 Ответить с цитатой Получить постоянный адрес сообщения
Требуется робот-арбитражер для парного трейдинга с акциями и фьючерсами.
Главные требования:
1. Скорость работы – максимально быстрая скорость постановки, снятия и перестановки заявки при изменении цены в стакане – желательно не более 0.1сек.
2. Отсутствие торможения – отсутствие замедления и сбоев в работе при выставлении заявок по 15-20 парам инструментов, при отслеживании до 40-60 пар (отслеживание возможно не в режиме реального времени, а периодически – 1раз в 1-5 минут).
Не нужно: никаких графиков, индикаторов, проверки на истории, возможностей постановки заявок вручную.
Собственно такой робот у меня есть (написан мной на Delphi), но он работает через передачу по ODBC в базу данных и затем чтения из нее, что замедляет постановку заявки более чем на 1.5 сек.
Вопросы: не слишком ли завышены мои требования, возможно ли создание такого робота? Если да, на чем лучше писать, какие механизмы использовать для передачи данных из Квика в робота и обратно?
 
 
karat
Стаж: 1 год 7 месяцев
Сообщений: 137
Чт Фев 02, 2017 16:34 (спустя 1 час 56 минут) Ответить с цитатой Получить постоянный адрес сообщения
Сейчас на МТ5 в открывашке запустили котировки одновременно и спота и фьючей. Попробуйте на мт5, он пошустрее будет вашей связки, может там выжмите свои 10млсек. Если Delphi знаете и там освоитесь.

Опять же, если знаете Delphi, попробуйте все таки БД убрать из связки. Ну как вариант по DDE кидать в свое приложение, это не сложно. Но то что уложитесь в 10млсек - наверное не факт, но ускоритесь точно. И логику переписывать не надо, только взаимодействие.

А вообще про взаимодействие квика исписано в интернете много. Очень много. Хоть по сетевым сокетам шли, если делу поможет =) 
 
Последний раз редактировалось автором 02.02.2017 16:38, всего редактировалось 4 раза
serverok
Стаж: 7 лет 2 месяца
Откуда: Москва
Сообщений: 84
Чт Фев 02, 2017 23:26 (спустя 8 часов 48 минут) Ответить с цитатой Получить постоянный адрес сообщения
у меня 1 мсек реагирует, и то я недоволен;
а 0.1 сек - это очень медленно; ничего вы этим не выгодаете. 
 
Balug
Стаж: 8 лет 11 месяцев
Сообщений: 41
Пт Фев 03, 2017 15:53 (спустя 1 день 1 час) Ответить с цитатой Получить постоянный адрес сообщения
karat писал(а):
Сейчас на МТ5 в открывашке запустили котировки одновременно и спота и фьючей. Попробуйте на мт5, он пошустрее будет вашей связки, может там выжмите свои 10млсек. Если Delphi знаете и там освоитесь.
Опять же, если знаете Delphi, попробуйте все таки БД убрать из связки. Ну как вариант по DDE кидать в свое приложение, это не сложно. Но то что уложитесь в 10млсек - наверное не факт, но ускоритесь точно. И логику переписывать не надо, только взаимодействие. 

С МТ5 не вариант, так как мало кто из брокеров предлагает ее для работы, да и написание в ней арбитражера мне кажется сомнительным (хотя я плохо знаком с ее языком).
Так в этом и суть, чтобы убрать базу данных из связки, только я пока не очень понимаю как? Может быть попробовать Lua или Lua + внешняя программа (Delphi), но я не уверен, что по скорости потянет. Хотелось бы услышать мнение специалистов по Lua.
0.1 сек это не 10 млсек, а 100млсек, так что все-таки надеюсь уложитьсяSmile.
 
 
Balug
Стаж: 8 лет 11 месяцев
Сообщений: 41
Пт Фев 03, 2017 15:55 (спустя 1 день 1 час) Ответить с цитатой Получить постоянный адрес сообщения
serverok писал(а):
у меня 1 мсек реагирует, и то я недоволен;
а 0.1 сек - это очень медленно; ничего вы этим не выгодаете. 

А вот это уже очень интересно! Если не секрет, на чем написан робот и как передаете данные из Квика в него и обратно? 
 
serverok
Стаж: 7 лет 2 месяца
Откуда: Москва
Сообщений: 84
Пт Фев 03, 2017 17:40 (спустя 1 день 3 часа) Ответить с цитатой Получить постоянный адрес сообщения
На Ассемблере большей частью + Delphi.
В Quikе такие вещи давно никто не делает.
Пишете программу под шлюзы FIX/Cgate, сертифицируетесь, ставите сервер в зону колокации биржи, подключаетесь и вуаля - будете за 3-4 мс успевать.
Хотите 1 мс - тут секретов никто не раскроет.
С 3 мс будет где-нибудь десятым-двадцатым среди таких же арбитражеров, так что халявы не ждите 
 
karat
Стаж: 1 год 7 месяцев
Сообщений: 137
Пт Фев 03, 2017 21:33 (спустя 1 день 6 часов) Ответить с цитатой Получить постоянный адрес сообщения
Balug писал(а):
serverok писал(а):
у меня 1 мсек реагирует, и то я недоволен;
а 0.1 сек - это очень медленно; ничего вы этим не выгодаете. 

А вот это уже очень интересно! Если не секрет, на чем написан робот и как передаете данные из Квика в него и обратно? 

это вам про прямой доступ рассказали.. а вы изначально условие про платформу ставите. 
 
karat
Стаж: 1 год 7 месяцев
Сообщений: 137
Пт Фев 03, 2017 21:35 (спустя 1 день 6 часов) Ответить с цитатой Получить постоянный адрес сообщения
Balug писал(а):
Хотелось бы услышать мнение специалистов по Lua.
 

на этом форуме вряд ли.
Напишите тест сами, там же не сложно 
 
Последний раз редактировалось автором 03.02.2017 21:36, всего редактировалось 1 раз
serverok
Стаж: 7 лет 2 месяца
Откуда: Москва
Сообщений: 84
Пт Фев 03, 2017 23:42 (спустя 1 день 9 часов) Ответить с цитатой Получить постоянный адрес сообщения
через квик 0.1 сек не получите принципиально (не через lua, ни даже напрямую) 
 
Balug
Стаж: 8 лет 11 месяцев
Сообщений: 41
Сб Фев 04, 2017 11:54 (спустя 1 день 21 час) Ответить с цитатой Получить постоянный адрес сообщения
Спасибо всем ответившим!
Кое-что начинает проясняться.
karat писал(а):
это вам про прямой доступ рассказали.. а вы изначально условие про платформу ставите.  

Это я понимаю, и подумываю в дальнейшем о возможности постановки робота на сервере брокера или биржи, но вначале хотелось бы понять возможно ли теоретически сделать это через Квик на рабочем месте и если да, то через какие механизмы и какие при этом будут максимальные скорости
serverok писал(а):
через квик 0.1 сек не получите принципиально (не через lua, ни даже напрямую)  

100 млсек не получу, а сколько реально можно получить? 150? 200? 300? Вы можете экспертно оценить исходя из своего опыта? Возможно, что и 200 меня устроит. Да, и надеюсь понятно, что одновременно 20 заявок выставляться не будет, просто идет отслеживание 15-20 пар, а одномоментно будет высталяться 1 максимум 2 заявки.
serverok писал(а):
На Ассемблере большей частью + Delphi.
В Quikе такие вещи давно никто не делает.
Пишете программу под шлюзы FIX/Cgate, сертифицируетесь, ставите сервер в зону колокации биржи, подключаетесь и вуаля - будете за 3-4 мс успевать.
Хотите 1 мс - тут секретов никто не раскроет.
С 3 мс будет где-нибудь десятым-двадцатым среди таких же арбитражеров, так что халявы не ждите 

Это я прекрасно понимаю, но мне и не нужна такая скорость. Я не собираюсь бороться с арбитражерами типа фьючерс-базовый инструмент (скорее я для них буду кормомSmile), у меня другая стратегия.
Но с написанием программы под шлюзы FIX/Cgate есть проблема, я ни разу не программист и на Delphi-то пишу с трудомSmile, так что это мне не осилить. 
 
serverok
Стаж: 7 лет 2 месяца
Откуда: Москва
Сообщений: 84
Вс Фев 05, 2017 20:23 (спустя 3 дня 5 часов) Ответить с цитатой Получить постоянный адрес сообщения
Через квик данные сначала идут на сервер квик, далее на Ваш компьютер (если Вы не в Москве, то это может быть долго). Это уже долго (50-200 мс полагаю). Далее зависит от того, умеете ли Вы общаться с сервером квик напрямую (это сложно). Если не умеете, то квик обрабатывает данные раз в секунду (раньше так было; с введением lua не знаю, какой механизм теперь). Получается зависим от того, в какой момент секунды придут данные. Потом данные надо максимально быстро обработать. И весь путь обратно при отсылке транзакции. Резюме: с использованием стандартных средств будете получать 0.3-1.5 сек раундтрипа (как повезет), ну в среднем секунду где-то. Все цифры сильно приблизительные 
 
Balug
Стаж: 8 лет 11 месяцев
Сообщений: 41
Вт Фев 07, 2017 11:45 (спустя 4 дня 21 час) Ответить с цитатой Получить постоянный адрес сообщения
serverok писал(а):
Если не умеете, то квик обрабатывает данные раз в секунду (раньше так было; с введением lua не знаю, какой механизм теперь). Получается зависим от того, в какой момент секунды придут данные. 

Это было при использовании QPILE по Lua данные передаются в режиме реального времени.
Прихожу к заключению,что придется писать скрипт на Lua по передачи данных через DLL в Delphi.
Если кто-нибудь знает, подскажите примеры таких DLL, никогда не поверю, что их никто не писалSmile
 
karat
Стаж: 1 год 7 месяцев
Сообщений: 137
Вт Фев 07, 2017 12:58 (спустя 4 дня 22 часа) Ответить с цитатой Получить постоянный адрес сообщения
DLL (чтобы из нее вызывать функции) для Qlua нужно писать особым образом. Не как обычную dll. Но не в этом вопрос.

Как вы решили в свое приложение доставить данные?

 
 
Oleg Vazhnev
Стаж: 7 лет 11 месяцев
Сообщений: 1376
Вт Фев 21, 2017 21:56 (спустя 19 дней 7 часов) Ответить с цитатой Получить постоянный адрес сообщения
Если говорить о задержке клиентской машины, то на колакации ребята заявки ставят за менее чем 1 мкс (=0.000001 сек) и даже быстрее, о каких 0.1 сек. вообще говорить?
В описании требований к роботу тоже нет ничего, с чем бы не справился современный компьютер. Вообще все цифры и задержки как-будто из 80ых.

Вы скажите нам какие пары вы там торгуете и как, с задержками в 0.1 сек., так, что ещё и зарабатываете, а мы остальное сделаем.

Ну или купите виртуалку у брокера в зоне колокации биржи (несколько тыщ в месяц наверное), туда фаст от биржи (ещё 2 тыщи рублей в месяц), твайм(ещё 2 тыщи), любимый язык программирования (но не делфи, конечно), и должны выйти на желаемые цифры с большим запасом. 
 
Последний раз редактировалось автором 21.02.2017 22:03, всего редактировалось 4 раза
Показать сообщения:   
Новая тема   Ответить на тему
Список разделов форума -> Техническая поддержка

Rambler's Top100 Rambler's Top100
Рейтинг@Mail.ru
Copyright © Московская биржа, 2006-2017.
Ваши предложения, замечания и вопросы
по работе форума направляйте на email: