Добрый вечер,коллеги. Думаю,с этим вопросом сталкивался любой,у кого несколько счетов. Вопрос: с помощью чего вы дублируете действия между квиками?

★2
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.
Мне посоветовали самое простое решение. Не самое высококлассное, а именно простое и стабильное.
А именно:
1. в ведущем квике делается скрипт, который выгружает все действия в текстовый файл.
2. в ведомых запускается скрипт, который считывает оттуда и полностью повторяет, использую поправочные коэффициенты на сайз.

И второй момент: не хотелось бы изобретать велосипед, возможно ктото уже даже не только столкнулся с этим, но и успешно решил. Буду благодарен коллеге, который посчитает возможным поделиться решением. С меня большая вкусная ватрушка.
avatar
mark_money, самое простое решение подключить TrustManager. Все уже придумано до нас.
Oskolkov, спасибо, знаю про него, но к сожалению, TrustManager не подходит — немного другой функционал.
avatar
можно погуглить: квик дубликатор сделок. Автор есть на смартлабе:  smart-lab.ru/profile/Mihalich81
avatar
Ajax, спасибо, видел этот софт, но насколько понятно из описания — он дублирует сделки, а не приказы. Нужно же дублирование всех ордеров, в том числе стоп и тейк.
avatar
Ajax, возможно Михаил Понамаренко захочет поучаствовать в вопросе? 
avatar
mark_money, в дублировании сделок и ордеров есть некоторый опыт. Ровно 10 лет назад, в мае 2007-го изобрёл дубликатор МТ4->Квик.
Дубликатор сделок QUIK-QUIK http://pmntrade.ru/double_trades_quik-quik.html
Дублирует сделки по факту совершения. Само собой, дублируются и стоп заявки, но после исполнения заявки в отправителе (входа в позицию). Есть коэффициенты, позволяющие изменять дублируемое количество в каждом из получателей отдельно. Можно использовать виртуальные диски, например для копирование на другой ПК через локальную сеть или Интернет. Программа понятна и работает стабильно.
Дубликатор заявок  QUIK-QUIK
http://pmntrade.ru/double_orders_quik-quik.html
Организована также, как дубликатор сделок, но при дублировании заявок возникают большие проблемы. Дело в том, что заявка далеко не всегда исполняется в полном объёме. Часто бывает, что в отправителе исполнилась, а в получателе не исполнилась. Что будем делать с неисполненной заявкой? В моей версии неисполненная заявка снимается через указанное время. Но можно сделать, чтобы неисполненный объём исполнялся по рынку через это же указанное время. Поэтому использование заявок может не улучшить цены входа.
Михаил Понамаренко, Добрый день, Михаил, да Ваше решение как раз близко к тому что нужно. Я не стал писать Вам в личку, чтобы наша переписка осталась тут и, возможно, пригодилась кому-то еще в будущем.

Давайте посмотрим по деталям? 
Отталкиваемся от:
1. Есть Квик, на который заведено масса софта, через который ведется работа. Иногда и через сам квик.
2. Есть ведомые квики, которые должны в точности повторять ордера.
3. Ордера могут быть: обычные и отложенные (стопы, тейки).
4. Ордера могут как ставиться так и сниматься.
5. Квики могут быть разных брокеров, как следствие — могут быть разные коды бумаг (прежде всего фортса).
6. Внутри одного ведомого квика, на одном UID, может быть несколько счетов. Соответственно, дублирование может проводиться на все. Должна быть возможность выбора списка ведомых.
7. При подаче заявок в комментарии к заявке может передаваться служебная информация в примечаниях, она также требует дублирования.
8. При исполнении дублирования могут возникать коллизии и ошибки екзекьюшена:
а. Выставленные лимитники по всем счетам исполнились по разному (то, о чем вы писали).
б. При попытке выставления ведомые не повторили, по любой причине, например нехватка средств, отсутствие связи с брокером, неверный код инструмента или любой другой.
Соответственно мы должны контролировать процесс дублирования и предусмотреть решения этих проблем.
9. Должно быть стабильно.
10. Должно быть быстро.
11. Должно быть расширяемо/дополняемо в будущем.
avatar
mark_money, из описанного выше, вам, всё же нужно дублирование заявок. А эта задача несёт в себе массу коллизий. Поэтому иметь одинаковые позиции будет невозможно. Будет накапливаться очень большой перекос позиций на счетах. Или нужно исполнять не исполненные позиции в получателе по рынку через определённый тайм-аут.
Михаил Понамаренко, либо делать положительное проскальзывание. Не полностью по рынку, а на размер удовлетворяющего проскальзывания. Тогда в большинстве случаев будем брать весь объем, а остатки можно также брать по рынку через тайм аут. 
Либо предусмотреть дополнительную логику. Например, можно заложить логику, например, смотреть на ликвидность, учитывать ее. Как вариант можно опираясь на ликвидность, повторяя транзакцию — бить ее частями и ставить лучшим бидом например. В итоге в 10 выставлений наберется объем полюбому, с меньшими затратами на проскальзывании.
avatar
mark_money, выставлять нужно заявку, по такой же цене, как в отправителе. После тайм-аута, почти всегда лучше работает выставление и переставление заявки внутри спреда или по цене последней сделки, т.е. выгодней входы, чем по рынку. Правда, иногда на рынке бывают тренды, в этом случае лучше сразу запрыгивать по цене, какую дали.
Михаил Понамаренко, да, для меня вероятность исполнения важнее, чем издержки на проскальзывании. Поэтому в принципе можно открываться по встречным.
avatar
Михаил Понамаренко, 

Далее уже вопросы:
1. Наиболее близко к этому — это Дубликатор заявок. Отдельно хотел сказать, что сделано все качественно, и видеоинструкции и сам софт, и документация.
2. Насколько он решает обозначенные задачи и где есть белые пятна?
3. Он сделан на qpile, есть ли недостатки в сравнении с реализацией на lua?
avatar
mark_money, белое пятно в том, что система дублирует только лимитные заявки, т.е. стоп-заявки не дублируются. Здесь сложность в том, чтобы получатель отличал заявки выставленные трейдером и заявки порождённые стоп-заявками. Сейчас при исполнении стоп-заявки в отправителе, порождается лимитная заявка, которая и дублируется в получатель.

Недостатки QPILE, прежде всего, в скорости. Его нельзя обрабатывать чаще, чем раз в 1 сек. Многие функции выполняются дольше. 

Михаил Понамаренко, может тогда имеет смысл реализовать это на qlua?
честно говоря, 1 секунда не принципиальное время. больше беспокоят другие моменты, а именно узкая функциональность языка, стабильность, прекращение его поддержки.
Возможно есть более современные способы реализации. Например, есть тот же quiksharp, amisharp.
avatar
mark_money, имеет, конечно смысл. Перехожу потихоньку. Есть одна очень неприятная вещь для меня. Таблицы QLUA не помнят на какой вкладке были открыты https://forum.quik.ru/messages/forum10/message20140/topic2264/. При запуске Квик все таблицы роботов и скриптов открываются на одной вкладке. Для меня очень неудобно. Люблю, когда всё по полочкам.
Михаил Понамаренко, у меня все таблицы внешнего софта вынесены в отдельную вкладку, куда я даже не заглядываю, и как пользователю — это не фактор. Хотя наверно для разработчиков неудобен момент.
avatar
Михаил Понамаренко, думаю, что это можно решить путем прописывания служебной информации в заявку. например, в мастере в стопе есть запись в поле брокерреф, тогда при срабатывании стопа эта инфа по идее запишется в брокерреф порождаемой лимитной заявки. Слейвы же, считывая данную транзакцию увидят не пустое поле и пропустят данную транзакцию.
Если предположения верны, то можно таким образом сделать.
Либо еще варианты подумать.
avatar
mark_money, у меня ИД заявки свободны. )
Михаил Понамаренко, получается можно все таки таким образом фильтровать заявки? имею ввиду стопы, имея примечание или другой любой блок, переносят эту информацию в порождаемую заявку?
avatar
Михаил Понамаренко, либо, можно сделать со стопами и тейками, так что по умолчанию копируем только заявки, а когда мастер делает дисконнект — выгружаем все стопы в ведомые. а при подключении — опять снимаем и работаем только с заявками?
avatar
mark_money, да, такой вариант вполне имеет место быть
и не нагружает работу программы (нет необходимости постоянно отслеживать условные заявки).
В свою версию Дубликатора заявок пока добавлять возможность дублирования условных заявок не буду. Сначала нужно перейти на QLUA, но времени для этого потребуется немало. Программирование всё также остаётся в рамках хобби.
Михаил Понамаренко, может используя библиотеки удастся сделать это быстрее? имею ввиду quicksharp например?

ПС. Насколько долго добавить этот функционал в Дубликатор на qpile? Возможно, хотя это решение подойдет в качестве временного?
avatar
mark_money, 

QPILE не позволяет работать с внешними функциями.

Михаил Понамаренко, а без внешних библиотек возможно доработать дублирование и стопов тоже?
avatar
Может быть завести субсчет у своего же брокера и торговать через одну платформу квик? Нее?
avatar
Avkzn, 1. Брокеры разные и изменить это невозможно. 2. В рамках даже одного брокера — все равно нужно дублирование. Не подача консолидированных заявок, а именно дублирование действий.
avatar
mark_money, вопрос так понимаю именно в синхронизации действий, причем моментально по разным счетам? Взять например Открытие, открываешь субсчет, например сделка по Ри, ставишь в стакан заявку по одному счету, тут же в стакане выбираешь другой счет и ставишь заявку по другому счету, дело мне кажется секунды. Затем ставишь стоп по одному счету, потом ctr+A, счет в стоп-заявке меняешь и получается +сто-заявка по другому счету. Или я чет не догоняю?
avatar
Avkzn, да, вопрос в том, чтобы синхронизировать данные действия. Мастер аккаунт в одном квике делает, работает — остальные ее повторяют полностью.
avatar
mark_money, понятно. Пока пользуюсь вручную как описал выше в одном квике, но всего лишь два счета) Вроде пока успеваю)
avatar
mark_money, http://www.i-tt.ru/products/investation для управления несколькими счетами я пока ничего лучше не нашел на рф рынке
avatar
Mr Gold, спасибо, да, видел этот софт, на мой взгляд действительно одна из лучших альтернатив стоковому траст менеджеру. Натыкался на него, когда нужно было просто управление несколькими счетами.
Но в моем случае, немного другая специфика, поскольку нужно именно не интерфейс работы с несколькими счетами, удобный, пользовательский, а именно дубликатор ордеров.

Почему?
1. У меня к ведущему терминалу подключен софт. Скальперский, опционный, и малая автоматизация через с#.
2. Соответственно мне нужно чтобы работа разносилась на остальные квики, самим же квиком.
avatar
Ramon Albert Rudolfovich, что это?

avatar
Приглашаю профессионалов поделиться идеями:
Сергей < o-s-a.net >  buybackoff  Prophetic FateevVV XXM А. Г. 
avatar
[email protected]  Приглашаю присоединиться к обсуждению.
avatar

Здравствуйте.

А собственно, в чем вопрос?
Сделать можно, но есть один нюанс. Поскольку способов выставления заявок много, типов условных заявок еще больше и далее в том же роде, то если делать все серьезно и качественно, то махать лопатой придется долго и яму выкопать придется большую. Собственно, иных сложностей и нет, если не рассматривать случаи, когда рынок не позволяет дублировать действия...

Частный случай, когда нужно копировать только заявки: http://www.bot4sale.ru/projects/robots/robots-list/427-quik-data-exchange.html

avatar
[email protected], способы выставления заявок будут влиять? мы ведь просто видим конечные заявки в квике, как они туда прилетели имеет значение, или я что то не учел? условных заявок только 2- тейк и стоп.
Рынок не позволяет дублировать — это если цена уходит имеете ввиду или какие-то другие ситуации?

Посмотрел по ссылке- появилась мысль. Если мы дублируем все заявки, рыночные и лимитные, но не дублируем стоп-заявки, то они все равно будут продублированы в случае исполнения, НО при условии что все терминалы работают и обмениваются данными.

Отсюда идея. Возможно ли просто реализовать такую вещь, что стоп-заявки выгружаются в ведомые только в момент выключения мастер-квика?

ПС. Я понимаю, что если решать эту задачу под сферического коня в вакууме, то сделать нужно много защит и много что учесть. Но думаю, то у каждого эти моменты будут индивидуальны и какие-то вещи и моменты, я например, могу взять риск на себя.
ПСПС. Можете в личку написать какого размера ватрушка будет в самый раз, чтобы поделиться своими наработками?
avatar
Конечно, возможно. )
avatar

Только зарегистрированные и авторизованные пользователи могут оставлять ответы.

Залогиниться

Зарегистрироваться

теги блога marat_tmr

....все тэги



UPDONW
Новый дизайн