Привет. Хочу автоматическую торговую систему сделать (опять). В прошлом писал под ASTS Bridge, Spectra, FAST и Plaza2 на C++, но все эти технологии полагаю в любом случае стоят каких-то денег у брокеров в настоящий момент, поэтому этот свой код использовать не могу. Если хочется бесплатно, то только через Quik или может есть ещё варианты? Для торговли через Quik смотреть в сторону C++ - Lua или что-то лучше есть?
API брокеров бесплатны, как я понимаю. Есть у тинька и финама, но у финама альфа версия и можно забыть про миллисекунды. Для прототипов я использую sol2 либу для C++-Lua, но потом надо переписывать части на Lua C API (или sol::stack...) для скорости
Добавлю --------------------- Если надо скорость, то используем Event в колбеках и Wait в main. Время реакции на колбек составляет не более 0.03 ms. -------------------- Если надо реализовать сложный алгоритм или обрабатывать сотни инструментов, То использую дополнительные потоки в которых работает Luajit. Luajit увеличивает скорость вычислений в 10 и более раз по сравнению с Lua5.4 Дополнительные потоки увеличивают скорость вычислений пропорционально числу ядер -------------------- Если надо еще круче, то делаем кластер, объединяя несколько компов или вешаем. ================== Но есть задержка Интернет. Ставим все в датацентр. Но это уже не бесплатно.
Пардон, опечатка Если надо еще круче, то делаем кластер, объединяя несколько компов или вешаем доп многоядерный сопроцессор (видеокарту) и используем CUDA
Кажется в первую очередь выбор брокера - это стоимость его услуг, комиссий. А то какой бы ни был у него шлюз, расплачиваться придется потом. Финам выглядит более сбалансированным, хотя стоимость сделки за контракт на срочном рынке у него уже 1 рубль, вместо 0.5 рублей. Кажется не много, ерунда. Но когда сделок под тысячу, уже не так смешно становится.
Хочется универсальный способ подходящий под любого брокера. Задержка не имеет значения, т.к. при торговле через интернет ты в любом случае будешь последним.
Oleg Vazhnev написал: Хочется универсальный способ подходящий под любого брокера. Задержка не имеет значения, т.к. при торговле через интернет ты в любом случае будешь последним.
Если вдруг захочется потом продавать робота, то мне кажется, что продавать на C, Java и т.п. будет немного сложновато. Мне кажется что, более или менее люди которые смогут купить робота так или иначе работают с 1С по своему основному месту работы
Константин написал: Если вдруг захочется потом продавать робота, то мне кажется, что продавать на C, Java и т.п. будет немного сложновато. Мне кажется что, более или менее люди которые смогут купить робота так или иначе работают с 1С по своему основному месту работы
Не в этом смысле. Люди уровня менеджеров среднего и высшего звена наверняка только имеют мысли о биржевой торговле или инвестировании. А по сложившейся практике все они так или иначе знакомы с продуктами 1С. будь то торговля или производство.
1С как платформа для роботов - это из области использования сковородки для глажки одежды. Вот как система учета портфеля, сделок, может даже подачи транзакций через файлы и папку обмена Квик - в самый раз. Хотя и это создает ряд сложностей, т.к. это либо установка на конкретном рабочем месте, либо web клиент, что уже требует совсем других затрат на поддержание. Это не говоря уже о скорости работы 1С. Это даже хуже Питона.
Ну не знаю. У меня в день (за 10 часов) выставляется ~5000 заявок (каждые 6-8 секунд пересчитывает состояние какого либо инструмента снимает лимитную заявку и выставляет новую). Само собой сделок гораздо меньше в зависимости от того сошлись ли мы по цене с покупателем/продавцом. Лично мне чаще не надо. (QUIK справляется. 1С справляется. При этом 1С пересчитывает индикаторы используя как раз Python скрипты). Я так понимаю и QUIK и 1С могут гораздо больше. Рынок не совершает таких колебаний, чтобы чаще снимать/выставлять.
При этом 1С анализирует запросом не 1 инструмент, а весь список. Т.е. выставлять и снимать можно сразу 300 акций РФ за 1 цикл. Например каждую минуту. Просто нет в этом смысла.
Константин написал: Ну не знаю. У меня в день (за 10 часов) выставляется ~5000 заявок (каждые 6-8 секунд пересчитывает состояние какого либо инструмента снимает лимитную заявку и выставляет новую). Само собой сделок гораздо меньше в зависимости от того сошлись ли мы по цене с покупателем/продавцом. Лично мне чаще не надо. (QUIK справляется. 1С справляется. При этом 1С пересчитывает индикаторы используя как раз Python скрипты). Я так понимаю и QUIK и 1С могут гораздо больше. Рынок не совершает таких колебаний, чтобы чаще снимать/выставлять.
Делал краш-тест на демо сервере для оценки скорости и надежности работы на QUIK в тесте на каждое изменение ТТП, которое приходило в колбеке Onparam выставлялась заявка после ее регистрации она снималась. По инструменту активной всегда была лишь одна заявка. ----------------- Итоги теста: ------------- Всего инструментов примерно 230. За 4 часа теста выставлено и снято более 200 тысяч заявок без сбоев и зависаний. При этом использовался пул потоков, из которого вызывалось одновременно до 12 потоков Делал максимум до 500 тысяч заявок пока меня разработчики не отключили от сервера. Больше так не делаю. ----------------- Можете сравнить с 1С.
В мои задачи не входило делать краш тестов. Поступал только из логики торговли. На бирже не происходит таких колебаний которые имели бы смысл так активно ее долбить. Возможно надо просто подождать немного дольше между временем постановки и снятия заявки. Думаю интервал ДЕНЬ самое то. Возможно я ошибаюсь.
Мне кажется если вкладывать в понятие "робот" какие то аналитические способности, то возможностей интеграций у 1С как платформы достаточно/предостаточно.
Константин написал: Мне кажется если вкладывать в понятие "робот" какие то аналитические способности, то возможностей интеграций у 1С как платформы достаточно/предостаточно.
Я привел Вам результаты теста так как Вы указали сколько Вы делаете операций. -------------------- Причем далее Вы сами себе противоречите. То 5000 операций, то раз в день. -------------- Вы уж будьте последовательны в своих рассуждениях. -------------- Относительно аналитических возможностей. У меня нет никаких ограничений. Я могу использовать без 1С любые языки программирования, любые библиотеки и любые системы в том числе и ИИ. --------------- Напишите конкретнее , какие новые аналитические возможности даст 1С, кроме обеспечения доступа к системе управления и бухгалтерии предприятия. .
Помогите мне пожалуйста на LUA написать такой запрос:
Выставить на покупку заявки по текущей последней цене все инструменты (русские акции), для которых соблюдаются условия: 1 Текущая цена последняя> Цена последняя неделю назад и+ 2 Цена последняя неделю назад > Цена последняя 2 недели назад и+ 3 Цена последняя 2 недели назад >Цена последняя 3 недели назад и+ 4 Цена последняя 3 недели назад>Цена последняя 4 недели назад и+ Инструменты (акции) при этом надо упорядочить по размаху цене (макс-мин) за период 1 месяц в порядке убывания Это все единым запросом пожалуйста и выведите этот список при совершении покупки на экран
Забыл упомянуть в выше написанном. Акции должны выставляться на покупку пока не окончатся свободные финансы в наличии в порядке упорядочивания этого списка, при этом если уже есть в наличии более чем 2 лота, то инструмент пропустить и не покупать
Константин написал: Забыл упомянуть в выше написанном. Акции должны выставляться на покупку пока не окончатся свободные финансы в наличии в порядке упорядочивания этого списка, при этом если уже есть в наличии более чем 2 лота, то инструмент пропустить и не покупать
Ээто пишется в виде скрипта на луа,. Прикольно, полагаю Вы считаете, что напишите это в виде одной строчки на скриптовый язык 1С, который напоминает бейсик и никогда не оптимизировался для компактных и быстрых приложений можт конкурировать с Луа, который вы очевидно не знаете. Верно? В Квике подобно бейсику 1С был Qpiile в прошлом веке. --------------------- Покажите на 1С свой запрос в виде одной строчки и дайте оценку времени исполнения.
Да. LUA я не знаю. По 2 причинам: 1 По LUA есть всего 2 книжки по языку 2 на сайте hh.ru по нему всего 4 вакансии (без указания з/п)
Именно по этой причине так как тема письма была на чем лучше писать я и написал "если захотите потом робота продавать, то лучше изучить потенциальную аудиторию покупателей"
А так как инвестициями и трейдингом занимаются либо программисты либо менеджеры среднего и высшего звена, которые так или иначе работают в 1С типовых конфигурациях и возможно знакомы с языком 1С, то возможно им будет проще изучить 1С.
Не думаю что люди которые работают на должностях типа "Менеджер по продажам", "Начальник отдела закупок/ продаж", "Зам директора по ....." начнут вдруг изучать LUA по 2 доступным книжкам.
... Кстати я ни разу не написал, что 1с одной строкой можно запрограммировать. Я написал единым запросом к базе данных.
Насколько я понимаю как только биржа добавит в свой API возможность выставлять заявки заявки и исполнять их, у LUA возникнут сложности с его потребностью. Как и у QUIK
Константин написал: Насколько я понимаю как только биржа добавит в свой API возможность выставлять заявки заявки и исполнять их, у LUA возникнут сложности с его потребностью. Как и у QUIK
Данный API ничего не изменит, т.к. это средство для разработки. Чтобы его использовать нужен клиент, читай терминал, в том или ином виде. А самый знакомый и уже давно используемый - это Квик. Вот если брокеры массово начнут писать свои терминалы, тогда возможно. Но это крайне маловерятно. По крайней мере для меня, терминал должен быть не как Web приложение (и даже не на C#), которые сейчас лепят везде, даже там где это бессмысленно.
Константин написал: Насколько я понимаю как только биржа добавит в свой API возможность выставлять заявки заявки и исполнять их, у LUA возникнут сложности с его потребностью. Как и у QUIK
У биржи уже давно есть API с возможностью выставлять и исполнять заявки
Константин написал: Насколько я понимаю как только биржа добавит в свой API возможность выставлять заявки заявки и исполнять их, у LUA возникнут сложности с его потребностью. Как и у QUIK
У биржи уже давно есть API с возможностью выставлять и исполнять заявки