Может кто уже мучился с лучшим BID, OFFER?!

Страницы: Пред. 1 2
RSS
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
И всё, и по битам только почитать)))
 
Цитата
Michael Bulychev написал:
Добрый день.
Николай немного сгустил краски.
достаточно сохранить ссылку на полученную в колбеке таблицу. Примерно так:
Код
  gTrade  =  {}
 function   OnTrade (t)
 gTrade  =  t
 end 
 function   main ()
 --в gTrade будет последняя сделка из OnTrade 
 end 
   
Если я не правильно Вас понял, то опишите задачу подробнее.
Ну да...
А вот такая ситуация
сделку приняли по инструменту сбербанк
сохранили передали в майн управление
а в это время исполнилась сделка по газпрому
сделку по сбербанку мы затерли и в майне вместо сбербанка получили газпром.
что делать дилетанту?
 
или вот еще прикол.
как известно если сделки были совершены часто, то они придут пакетом
в результате они последовательно как из автомата  gTrade и затрут друг друга.
 
 
пардон, опечатка
в результате они последовательно как из автомата  будут записаны в gTrade и следующие затрут предыдущие. В майне будет обработана лишь последняя
 
указанные мной случае - это классика обработки асинхронных событий, но не для дилетантов.
 
указанные мной случаи - это классика обработки асинхронных событий, но не для дилетантов.
 
Николай, я отвечал вот на этот вопрос:
Цитата
Или мне нужно будет её обязательно скопировать внутри коллбека, чтобы данные остались внутри скрипта?
Все остальное - очереди, синхронные функции и т.п. уже обсуждалось не раз на этом форуме
 
Цитата
Michael Bulychev написал:
Николай, я отвечал вот на этот вопрос:
Цитата
Или мне нужно будет её обязательно скопировать внутри коллбека, чтобы данные остались внутри скрипта?
Все остальное - очереди, синхронные функции и т.п. уже обсуждалось не раз на этом форуме
Т е очереди и синхронные функции - это для дилетантов? Вы действительно так думаете или шутите?  
 
Решил поднять эту ветку, а не заводить новую.

Время от времени (очень редко, не более 10 раз за всё время торговли) я сталкивался с ситуацией: скрипт выставляет заявку, она не срабатывает, снимается по таймеру, и тут же выставляется снова по той же цене. И так несколько раз. Я никогда не обращал на это внимания (заявки обычно всё равно срабатывали, сдвинув цену на пару пунктов), но теперь, в связи с причёской новой версии, решил разобраться, раз уж снова напоролся на именно такой случай. Итак, скрипт хочет продать, причём по BID - цена его устраивает. Выставляет заявку, и... BID стоит, как вкопанный, а мой придурок ставит, снимает, ставит, снимает... вот так пять часов и простоял! Обычно у меня в таких случаях одновременно с "заявка зарегистрирована" выскакивает сразу и "удовлетворено", а здесь... что бы это могло означать?

Вчера же напоролся и вообще на очень странную штуку. Как известно, прерывания на одно событие приходят пачками (именно по этой причине я использую из коллбеков только OnTrade, как минимально необходимое и уже в нём самом давлю паразитные вызовы). Но вчера я всё обвистовал отладочной печатью: решения о подаче заявок скриптом, момент передачи их в стек заявок и вывода оттуда, занесение в стек сделок и "снятие с учёта", сами сделки (первичная она, вторичная или дубль) и все выходы на ошибки. Короче говоря, время работы этих утилит должно, по идее, резко замедлиться. Так вот, один раз (только один, больше не повторилось) я получил в логе диагностику, от которой просто глаза полезли на лоб: не закончив обработку первого коллбека, снова появилась строка диагностики о начале обработки коллбека. Если я что-нибудь в чём-нибудь понимаю, этого не может быть потому, что не может быть никогда: коллбек не может быть вызван, пока не завершено выполнение другого коллбека - тем более, этого же самого. Вопрос: может ли В ПРИНЦИПЕ такое случиться? После того, что мне довелось здесь наблюдать, я уже ни в чём не уверен.
 
Цитата
Владимир написал:
Выставляет заявку, и... BID стоит, как вкопанный, а мой придурок ставит, снимает, ставит, снимает... вот так пять часов и простоял!
Если заявка попала в стакан и там есть встречный бид, она не может не исполниться, это означало бы, что сломана биржа, что вряд ли. Поэтому либо заявка по факту выставлена не была, либо стоящий как вкопанный бид стоит только в воображении клиента (например, слетел фильтр на получение этого параметра), а реальный бид далеко ниже.

Цитата
Владимир написал:
коллбек не может быть вызван, пока не завершено выполнение другого коллбека
Это проистекает из того, как квик обрабатывает очередь сообщений в основном потоке. Выбрал сообщение, дернул колбеки, обновил таблицы, пошел за следующим сообщением. Т.е. даже если что-то и приехало в процессе, квик этого пока не видит. Но есть теоретическое исключение: если внутри колбека идет работа с окном, И эта работа содержит некий модальный цикл сообщений, И одним из выбранных сообщений в этом цикле будет сообщение о приезде чего-то нового, обработка вновь приехавшего произойдет внутри колбека и, следовательно, увидим вложенный колбек. Модальные циклы в дизасме видел, пытался воспроизвести вложенный колбек - не удалось, сделал вывод, что на основных путях такого не бывает. Но если сильно постараться, то может и бывает. Есть также другое (более простое) объяснение: гонки в коде логирования.
 
Anton, Каждый раз при подаче получал "заявка зарегистрирована", после снятия - "заявка снята", что такое "встречный бид", я не понимаю, биржа работала (по другим тикерам сделки происходили), реальный бид каждый раз запрашивался заново из ТТТ перед подачей заявки.

Нет, внутри колбека не идет работа с окном - только работа с логом, то бишь вывод в файл. Ладно, будем пока считать, что марсиане прилетели, и в софте что-то сбойнуло. :smile:  
 
Цитата
Владимир написал:
реальный бид каждый раз запрашивался заново из ТТТ перед подачей заявки.
Если фильтр по инструменту слетел, там было все время одно и то же, все пять часов, хотя реальный бид упрыгал конечно далеко. А по другим инструментам все могло ехать и ехать как положено. Есть ли в логе цена выставлявшейся заявки? Она менялась?
 
Anton, А что такое "фильтр по инструменту слетел"? Мне брокер сказал, что если стоит "умный заказ", то все остальные настройки не имеют значения, я всё равно должен получать реальные данные.

Нет, цена выставлявшейся заявки тоже стояла, как вкопанная - она же и есть бид! У меня, вообще-то стоит запрет новой сделки по той же цене - она должна хоть немного шевельнуться, но этот уровень устанавливается только после совершённых сделок, а нужно, судя по всему, ещё и при снятии несработавших заявок.
 
Цитата
Владимир написал:
Мне брокер сказал, что если стоит "умный заказ", то все остальные настройки не имеют значения, я всё равно должен получать реальные данные.
Это по дизайну. На практике может "самопроизвольно" сброситься галка (настройки - заказ данных - текущие параметры, посмотрите, стоит ли галка на бид на этом инструменте).
Цитата
Владимир написал:
цена выставлявшейся заявки тоже стояла, как вкопанная
Что как бы подтверждает предположение. Не стоял же этот бид пять часов, даже в неликвиде шевеление есть какое-то.
 
Anton, Да, наверное что-то в этом роде. Сейчас этот бид сменился, свечки тикают, но мой скрипт обиделся и больше не хочет его продавать (BDTX)  :smile:  
Страницы: Пред. 1 2
Читают тему
Наверх