Игорь Семенов
Игорь Семенов личный блог
04 декабря 2015, 20:08

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

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

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

 

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

В машине )))

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

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

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

   … ))))

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

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

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

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

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

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

41 Комментарий
  • Karim
    04 декабря 2015, 20:23
    Какие заявки, лимитные или стоп, и какой брокер?
  • Eldar Shaymardanov
    04 декабря 2015, 21:07
    Насколько разобрался, trans_id в заявке это идентификатор, который задается в алго. При торговле руками всегда 0.
    Сделано для того, чтобы робот отличал свои заявки от чужих.
      • o|O
        04 декабря 2015, 23:24

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

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

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

          • o|O
            05 декабря 2015, 00:31

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

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

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

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

      • Eldar Shaymardanov
        05 декабря 2015, 06:52
        Игорь Семенов, могу.
        Потому, что общение с брокером и биржей идет не по одной транзакции, а пакетами раз в какое-то время. В этот пакет могут попасть сразу несколько транзакций. И от брокера на биржу уйти разбившись на другие пакеты и вторая транзакция может придти раньше. Транзакция выполнится первая та, которая первая придет на биржу.
        Надо уточнять у брокера.
        Я с этим столкнулся при обновлении стакана. Когда брокер высылает в терминал не каждое обновление, а изменения за 50 мсек. И они могут придти одной кучей.
        Это конечно мои домыслы.
        Вот у меня например функция OnOrder присылает одну и ту же информацию то 3, то 4 раза с одним статусом. В итоге с момента выполнения заявки и до обновления количество позиций по бумаге проходит какое-то время, за которое робот успевает подать еще несколько заявок. Пока пишу письмо в техподдержку квика.
  • Sergio Fedosoni
    04 декабря 2015, 21:16
    есть более простое решение… Селим квик в облаке и обращаемся к нему откуда хотим с теле, планшета, мака, офиса, дома
    • Karmanoff Fedya
      04 декабря 2015, 21:41
      Sergio Fedosoni, ух ты, а как так сделать?? Где прочитать и сколько стоит?
      • Sergio Fedosoni
        04 декабря 2015, 22:03
        Karmanoff Fedya, 35 евро в мес
        • Karmanoff Fedya
          05 декабря 2015, 08:47
          Sergio Fedosoni, а что бесплатных таких нет возможностей? есть же куча облаков бесплатных, с шифрованием. До 15 гб, остальное за бабки.Я правда только что об этом прочитал, поэтому не шарю. А компьютер обязательно при этом включён должен быть?
  • Mr. Bean
    04 декабря 2015, 21:30
    фотошопер ты таксе
    • Дмитрий Третьяков
      04 декабря 2015, 21:33
      Mr. Bean, Точно) 
      • Mr. Bean
        04 декабря 2015, 21:55
        Игорь Семенов, да лан сойдёт и так, всё равно все поняли))
  • java
    04 декабря 2015, 21:37
    … в купайле писал «комментарий» потом проверял в таблицах по коменту активна сработала или нет, по другому не знаю…
    • java
      04 декабря 2015, 21:39
      java, и да лучше сервер)
      • java
        04 декабря 2015, 22:08
        Игорь Семенов, если вы пишете алгоритм то сначало надо проверить через комент в таблице исполненных а потом отсылать вторую

        сервер в каком либо виде наежней по связи и по питанию имхо
          • java
            04 декабря 2015, 22:27
            Игорь Семенов, можно сохранять число позиций в текстовый файл проверять и лишнее закрывать потом
             вы просили совета я вам попытался советовать
  • netlink
    04 декабря 2015, 21:47
    метатрейдер уже есть ))))
  • Тирпиц. Das Boot.
    04 декабря 2015, 23:27
    Домашний сервер и стандартный виндовый Ремоте-Десктоп вполне годно для планшета
  • Оплачиваем vds или на свой комп делаем как удаленный рабочий стол, устанавливаем туда quik и все что нужно. На андроид или ipad ставим Приложение 2x rdp (бесплатно) и радуемся
  • Нет, это подключение к удаленному рабочему столу. Я с смартфона или ай педагог подключаюсь и работаю как на пк. Самое главное, что не нужна большая скорость Мобильного инета
  • Пожалуйста!
  • Eldar Shaymardanov
    05 декабря 2015, 06:57
    И да, от брокера на биржу идет обезличенная заявка, ID брокерским. Так что на биржу они могут попасть в не вашей последовательности.
  • Жук Скарабей
    05 декабря 2015, 09:12
    в машине явно видно что фотошоп)))
  • Йоганн
    05 декабря 2015, 16:36
    Я никогда не писАл под андроид. Долго осваивать? За пару дней получится?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн