Порядок запуска скриптов при запуске QUIK

Страницы: 1
RSS
Порядок запуска скриптов при запуске QUIK, как и что поступает, из-за чего скрипт может обработать то, чего ему не надо обрабатывать
 
Ситуация примерно следующая: допустим вчера я поработал в quik, был запущен скрипт и по завершению не была нажата кнопка "Остановить", сегодня при запуске quik скрипт автоматом запускается и наблюдается примерно следующее - скрипт начинает отрабатывать, да еще и не по разу. При этом скрипт видимо обрабатывает транзакции, которые могли произойти пока терминал был закрыт, но результат при этом вообще не предсказуем.
Если в картинках, то произошло сегодня примерно следующее: днем была экспирация опционов, вечером при запуске квика в таблице сделок видим:
[img]d:\1.png[/img]
при запуске квика вечером скрипт на такую ситуацию отреагировал следующим образом:
[img]d:\2.png[/img]
параметры выставленных стопов:
[img]d:\3.png[/img]
если последний стоп я понять могу, он закрыл купленный фьючерс, то откуда взялись первые два стопа? фильтр по коду класса инструмента сделан, отрабатывать скрипт должен только при торговле фьючерсами.
и вообще это нормально, что скрипт обрабатывает все что было в прошлом, пока терминал был закрыт?
 
сори) накошмарил с картинками
Если в картинках, то произошло сегодня примерно следующее: днем была экспирация опционов, вечером при запуске квика в таблице сделок видим:

при запуске квика вечером скрипт на такую ситуацию отреагировал следующим образом:

параметры выставленных стопов:
 
откуда сюда картинки то можно вставлять?)
вместо второй должна быть
 
Цитата
Александр написал:
откуда сюда картинки то можно вставлять?
Прямо под полем ввода текста, ссылка есть «Загрузить картинки». После загрузки, на неё нажимаете, и вставляете в текст.

Цитата
Александр написал:
и вообще это нормально, что скрипт обрабатывает все что было в прошлом, пока терминал был закрыт?
Если он у вас по таблице всех сделок работает, то да. В неё подгружаются все сделки за текущую торговую сессию при соединении Quik с сервером.
 
Цитата
Suntor написал:
Прямо под полем ввода текста, ссылка есть «Загрузить картинки». После загрузки, на неё нажимаете, и вставляете в текст.
Спасибо) +1 лвл к освоению форума. +10 к карме Suntor
Цитата
Если он у вас по таблице всех сделок работает, то да. В неё подгружаются все сделки за текущую торговую сессию при соединении Quik с сервером.
работаю я с таблицами stop_orders, futures_client_holding и orders и только в колбеках. нет ни какой обработки исторического содержимого этих таблица. получается, что при загрузке quik для любого возможного трейда (который прошел в режиме оффлайн) отрабатывает весь набор событий ?
 
Цитата
Александр написал:
Спасибо) +1 лвл к освоению форума. +10 к карме  Suntor
)))

Цитата
Александр написал:
работаю я с таблицами stop_orders, futures_client_holding и orders и только в колбеках. нет ни какой обработки исторического содержимого этих таблица
Ну таблицы, как внутренние, так и пользовательские в Quik разумеет обновятся актуальными данными при подключении к серверу. Если заявки и стоп-завки сработали в момент отсутствия, то при подключении информация по ним придёт. Просто без картинок, непонятно изначально по каким «лишним стопам» был вопрос.
 
Вобщем получается нечто следующее: если скрипт не был остановлен, а просто был закрыт quik, то при следующем запуске quik - автоматически загружается и срабатывает скрипт. Но, если за прошлый день были какие то сделки, то в новый день они по новой прогоняются, для них срабатывают все соответствующие колбеки. Скрипт думает, что это новые сделки и выполняет соответствующие действия. В моем случае ставит по ним стопы:

На картинке в таблице сделок всякие сделки за вчера (26.06.2018), в таблице стоп-заявок все стопы были выставлены скриптом сегодня при запуске quik. Собственно, непонятно, почему вчерашние сделки датированы сегодняшней датой. Вопрос видимо больше к разработчиком, что происходит при запуске квика в таком случае, что там в ядре генерируется, что qlua думает, что произошла куча новых сделок, хотя они все старые?
 
Повторяется только один раз, видимо если сменилась дата. Если еще раз закрыть квик и снова открыть, то ничего подобного уже не повторится.
 
Цитата
Александр написал:
Собственно, непонятно, почему вчерашние сделки датированы сегодняшней датой.
Потому что есть «Дата торгов», а есть «Дата сделки». Зайдите в настройки «Таблицы сделок», и добавьте ещё параметр «Дата сделки». Сразу увидите, что они отличаются. Дата торгов, показывает сессию которая началась после вечернего клиринга, она идёт вечером предыдущего дня, и днём следующего, это всё одна сессия торговая. Соответственно, в скрипте, нужно проверять даты сделок, которые приходят в ф-ции обратного вызова. Это во-первых.

А во-вторых, а почему собственно ваш скрипт не может ставить стоп по сделкам за предыдущий день? Может у вас такой алгоритм, в один день покупаете, потом ждёте и на следующий день уже выставляете стопы и закрываете позиции. То-есть, это не вопрос к датам в Quik, это вопрос к ведению позиций в вашем алгоритме. Как вы их храните, считаете, открываете и закрываете. Хоть в текстовый файл информацию сохраняйте...
 
Цитата
Suntor написал:
Потому что есть «Дата торгов», а есть «Дата сделки». Зайдите в настройки «Таблицы сделок», и добавьте ещё параметр «Дата сделки». Сразу увидите, что они отличаются. Дата торгов, показывает сессию которая началась после вечернего клиринга, она идёт вечером предыдущего дня, и днём следующего, это всё одна сессия торговая. Соответственно, в скрипте, нужно проверять даты сделок, которые приходят в ф-ции обратного вызова. Это во-первых.
шайтанама!!! про то, что время клиринга сделано не по ацтекскому календарю, я знал, но чтоб прям так...просто ВАХ
Цитата
Suntor
А во-вторых, а почему собственно ваш скрипт не может ставить стоп по сделкам за предыдущий день? Может у вас такой алгоритм, в один день покупаете, потом ждёте и на следующий день уже выставляете стопы и закрываете позиции. То-есть, это не вопрос к датам в Quik, это вопрос к ведению позиций в вашем алгоритме. Как вы их храните, считаете, открываете и закрываете. Хоть в текстовый файл информацию сохраняйте...
да не, у меня все просто, купил фьюч - сразу поставил стоп, продал - сделал тоже самое. ну и плюс сам скрипт там считает уже открыте позиции и все такое) зачем мне там выставление стопов на следующий день, я же не олигарх, я только учусь :)
 
Цитата
Александр написал:
да не, у меня все просто, купил фьюч - сразу поставил стоп, продал - сделал тоже самое
Ну тогда нужно следить за временем и датой в сделках, если у вас внутридневная торговля... А вообще, по хорошему, каждая заявка и сделка имеют уникальные номера. И вот к ним нужно привязываться. И помечать, что заявки и сделки с такими-то номерами были обработаны, чтобы на них повторно не попадать. Это отдельная задача, и не такая простая на самом деле. У меня это вылилось в отдельную торговую библиотеку.
 
Цитата
Suntor написал:
Ну тогда нужно следить за временем и датой в сделках, если у вас внутридневная торговля... А вообще, по хорошему, каждая заявка и сделка имеют уникальные номера. И вот к ним нужно привязываться. И помечать, что заявки и сделки с такими-то номерами были обработаны, чтобы на них повторно не попадать. Это отдельная задача, и не такая простая на самом деле. У меня это вылилось в отдельную торговую библиотеку.
то, что тут каждый чих имеет свой уникальный номер эт понятно, оно наверно даже и правильно, все таки не семечки на кону а деньги. но с другой стороны хранить кучу уникальных номеров это со временем вырастет в проблему именно количества, что тоже не есть гуд.
Спасибо за наводку про разные даты и тип дат, буду эксперементировать дальше)
 
Цитата
Александр написал:
но с другой стороны хранить кучу уникальных номеров это со временем вырастет в проблему именно количества, что тоже не есть гуд
Хранить только то, что активно. Ставится заявка, номер её сохраняется. Когда по ней идут сделки, соответственно она и обрабатывается. Когда все сделки прошли, позиция закрылась, то и заявка и её номер удаляются, они больше не нужны. Даже если после переподсоединения, или на следующий день, Quik повторно пришлёт по этой заявке обратный вызов, то поскольку её номер уже был удалён, это вызов просто отбрасывается и всё. Робот хранит только несколько номеров нескольких активных заявок с которыми работает в данный момент, всё остальное просто отбрасывается.
Страницы: 1
Читают тему
Наверх