Блог им. alpharomeo1545

Квик, андроид и импорт транзакций из файла.

Предистория:

По роду своей деятельности у меня нет возможности постоянно находиться у торгового
монитора и до недавнего времени использовал teamviewer в смартфоне, что не совсем удобно.
Задался целью сделать что-то попроще и понаглядней. В итоге смастерил програмулину под андроид,
которая выводит на экран смартфона любую таблицу из квик через  DDE-сервер плюс вычисляемые поля.
И вот я уже слежу за рынком на рыбалке ))

 

 Квик, андроид и импорт транзакций из файла.

В машине )))

 Квик, андроид и импорт транзакций из файла.

на совещании )))

 Квик, андроид и импорт транзакций из файла.

   … ))))

И все-бы  хорошо,  да только нарисовалась одна проблема — быстрый сдвиг активной
заявки в ту или другую сторону. Раньше я транзакции отправлял через Trans2QUIK.dll.
но потом отказался, т.к. на разных компах с разными ОС возникали проблемы.
Железобетонно работал импорт транзакций из файла, пока я не попал в следующую ситуацию:

Сформировав 2 строки транзакции

                -удалить старую заявку

                -выставить заявку с новой ценой

Получил результат- сработала и старая и новая заявка. Для отладки я разделил пакет
заявок на 2 части 1-удаление, 2- ожидание нажатия клавиши и выставление.
Клавишу нажимаю после сообщения о снятии заявок. Файл транзакций читается каждые 2 сек.
И вот бывают ситуации когда заявка не снимается 2 и более секунд как будто подвисает.
Мне непонятно – как получается, что транзакция с меньшим идентификатором(TRANS_ID)
выполняется позже следующей за ней заявкой.
Уважаемые коллеги трейдеры-программисты.
Подскажите, куда копать, может кто сталкивался с такой бедой.
Уж очень хочется добить программу до конца.

П.с. картинки вставил для удержания внимания т.к. пост довольно нудный.

★9
41 комментарий
Какие заявки, лимитные или стоп, и какой брокер?
avatar
лимитные Открытие и ВТБ

avatar
Насколько разобрался, trans_id в заявке это идентификатор, который задается в алго. При торговле руками всегда 0.
Сделано для того, чтобы робот отличал свои заявки от чужих.
avatar
Eldar Shaymardanov, посылаю такую последовательность
TRANS_ID=33;CLASSCODE=TQBR;ACTION=KILL_ORDER;ORDER_KEY=14380977616;FIRM_ID=;STATUS=0;TRANS_NAME=«Снятие заявки по номеру»;
TRANS_ID=34;CLASSCODE=TQBR;ACTION=Ввод заявки; Торговый счет = L01-00000F00; К/П = Купля; Тип = Лимитная; Тип по цене = По разным ценам; Тип по остатку = Поставить в очередь; Тип ввода значения цены = По цене; Режим = TQBR; Инструмент = MTSS; Цена = 216,3; Лоты = 1; Примечание = **003346; STATUS=0;TRANS_NAME=«Ввод заявки»;

бывают ситуации когда вторая транзакция срабатывает раньше первой.можете сказать почему?
avatar

Игорь Семенов, а что при этом пишется в .tro файл?

Скорее всего дело в том, что квик отправляет заявки на сервер почти одновременно, одну за другой, а там уж как они обработаются — зависит от сервера брокера.

Для надёжности проверить .tro файл на появление строки с подтверждением выполнения первой транзакции (по TRANS_ID) и уже после этого кидать вторую.

avatar
o|O, я сначала обрабатывал тро и трр но при подвисании более секунды м.б. какой нибудь стопосьем и ситуация описАна выше.А вот фраза
как они обработаются — зависит от сервера брокера.
меня заинтересовала
помнится было такое понятие — обработка входного потока
ориентированного на запись и поток. Похоже что ID существует только в визуализации брокера а на биржу кидается пачка записей… хотя записи обрабатываются последовательно)))
ну вроде бы картина вырисовывается
avatar

Игорь Семенов, Вообще у меня подозрение, что TRANS_ID существует только для квика :)

По ним он определяет, какие транзакции уже выполнялись.

Вот цитата из документации:

ЗАМЕЧАНИЕ: Перед первым чтением .tri-файла QUIK обращается к .tro-файлу и считывает обработанные заявки. Заявки, содержащиеся в .tro-файле считаются обработанными, и строки в .tri-файле с тем же параметром TRANS_ID игнорируются. Если внешняя программа при каждом запуске начинает нумеровать заявки сначала, то перед ее запуском необходимо удалить .tro-файл из рабочей директории.

avatar
o|O, ну теперь вроде картинка складывается — кидается на сервер биржи туева.уча а там на кого бог послал… правда есть еще такое понятие как проскальз-е )))
но это уже совсем другая история
спасибо за консалтинг
… а ларчик просто открывался…
avatar
Игорь Семенов, могу.
Потому, что общение с брокером и биржей идет не по одной транзакции, а пакетами раз в какое-то время. В этот пакет могут попасть сразу несколько транзакций. И от брокера на биржу уйти разбившись на другие пакеты и вторая транзакция может придти раньше. Транзакция выполнится первая та, которая первая придет на биржу.
Надо уточнять у брокера.
Я с этим столкнулся при обновлении стакана. Когда брокер высылает в терминал не каждое обновление, а изменения за 50 мсек. И они могут придти одной кучей.
Это конечно мои домыслы.
Вот у меня например функция OnOrder присылает одну и ту же информацию то 3, то 4 раза с одним статусом. В итоге с момента выполнения заявки и до обновления количество позиций по бумаге проходит какое-то время, за которое робот успевает подать еще несколько заявок. Пока пишу письмо в техподдержку квика.
avatar
есть более простое решение… Селим квик в облаке и обращаемся к нему откуда хотим с теле, планшета, мака, офиса, дома
avatar
Sergio Fedosoni, ух ты, а как так сделать?? Где прочитать и сколько стоит?
avatar
Karmanoff Fedya, 35 евро в мес
avatar
Sergio Fedosoni, а что бесплатных таких нет возможностей? есть же куча облаков бесплатных, с шифрованием. До 15 гб, остальное за бабки.Я правда только что об этом прочитал, поэтому не шарю. А компьютер обязательно при этом включён должен быть?
avatar
фотошопер ты таксе
avatar
Mr. Bean, Точно) 
Mr. Bean, первые 2 картинки да фотошоп.если так принципиально могу сделать оригинальные фотки в машине и скоро и на зимней рыбалке — но пост не об этом
avatar
Игорь Семенов, да лан сойдёт и так, всё равно все поняли))
avatar
Mr. Bean, ну слава Богу!
avatar
 хорошо в Москве когда скорость не критична.в провинции немного по-другому.это приложение протестировано на 0.5 мбит/сек т.е. может работать в глухих местах(рыбалка, дорога и т.д.) где teamviewer уже не тянет и помимо квика работает еще и робот который управляется со сверхтонкого клиента
avatar
… в купайле писал «комментарий» потом проверял в таблицах по коменту активна сработала или нет, по другому не знаю…
avatar
java, и да лучше сервер)
avatar
java, а чем лучше сервер(облако).у меня цель была еще и низкий бюджет — использую FTP

avatar
java, да я так и делаю через комментарий но проблема в том что если пару транзакций(см выше) разделить по времени = цена может улететь
avatar
Игорь Семенов, если вы пишете алгоритм то сначало надо проверить через комент в таблице исполненных а потом отсылать вторую

сервер в каком либо виде наежней по связи и по питанию имхо
avatar
java, ВРЕМЯ — см комент выше
по надежности согласен — хотя сервер приложений с данными могу запускать и на домашнем и на рабочем и на семейном компе)))
avatar
Игорь Семенов, можно сохранять число позиций в текстовый файл проверять и лишнее закрывать потом
 вы просили совета я вам попытался советовать
avatar
java, спасибо за совет — но без обид 
время критический фактор в том смысле что при закрытии лонговой позиции можно ненароком открыть шортовую, например вместо закрытия лонга по 100  сдвигаю цену на 100.5.если заявка на 100 не удалилась моей транзакцией АП и сработали 2 заявки.
avatar
метатрейдер уже есть ))))
avatar
netlink, хочу чтоб все было бесплатно или дешевле пива ))))

avatar
Домашний сервер и стандартный виндовый Ремоте-Десктоп вполне годно для планшета
avatar
Andres Supers,  и для смартфона
avatar
Оплачиваем vds или на свой комп делаем как удаленный рабочий стол, устанавливаем туда quik и все что нужно. На андроид или ipad ставим Приложение 2x rdp (бесплатно) и радуемся
Александр Александрович, это аналог teamviewer?
avatar
Нет, это подключение к удаленному рабочему столу. Я с смартфона или ай педагог подключаюсь и работаю как на пк. Самое главное, что не нужна большая скорость Мобильного инета
Александр Александрович, спасибо за инфу   на неделе опробую
avatar
Пожалуйста!
И да, от брокера на биржу идет обезличенная заявка, ID брокерским. Так что на биржу они могут попасть в не вашей последовательности.
avatar
Eldar Shaymardanov, спасибо.
avatar
в машине явно видно что фотошоп)))
avatar
Я никогда не писАл под андроид. Долго осваивать? За пару дней получится?
avatar
Зависит от того на чем делать.пару дней маловато будет для освоения
avatar

теги блога Игорь Семенов

....все тэги



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