ra81
|
Дата: 03.08.2012
rminko Парни подскажите а событие NewTrades синхронно или нет? может ли пока я обрабатываю одно событие прийти следующее и обработаться в другом потоке? Просто у меня возникают ситуация что следующая сделка открывается за 5 секунд до закрытия предыдущей или вообще открываются две сделки с перерывом в пару секунд хотя еще одного сигнала на вход не возникало... как вообще работает это событие? раньше немного уже спрашивал про событие обновления стакана, там тоже был ньюанс в том что в обработчик события передается не копия текущего состояния стакана а ссылака на живой стакан и пока я его обрабатываю в обрабочике данные в переданной мне в обрабочик стакане меняются что конечноже бред ну да лано победил клонированием и работой клоном.. Может тут тоже такая же мулька?
Ну это событие должно передоваться последовательно. То есть завешав обработчик получить следующее будет невозможно.
|
|
Спасибо:
|
|
|
|
|
rminko
|
Дата: 03.08.2012
Это хорошо если синхронно. Вчера провел несколько опытов и тоже понял что синхронно. А проблема с различием времени открытия и закрытия позы видимо связанна с разницей времени сервера и моего. Только вот беру я его и там и там из сделки,ну это ладно победю... не понятно остается откуда еще могут быть сделки без сигнала
|
|
Спасибо:
|
|
|
|
|
ra81
|
Дата: 03.08.2012
rminko Это хорошо если синхронно. Вчера провел несколько опытов и тоже понял что синхронно. А проблема с различием времени открытия и закрытия позы видимо связанна с разницей времени сервера и моего. Только вот беру я его и там и там из сделки,ну это ладно победю... не понятно остается откуда еще могут быть сделки без сигнала Такое может быть если время открытия сделки берется и с сервера и с локального времени. В коннекторах я замечал что время отмеряется локально а не берется с сервера самого. С ммоента старта коннектора время отмеряется локально после синхронизации стартовой. Это может быть причиной. Хотя не до конца понял в чем расхождение времени.
|
|
Спасибо:
|
|
|
|
|
rminko
|
Дата: 03.08.2012
с расхождением разобрался реально из-за разницы времени локального компа и квика. а вот сделки без причинные не понятны... но явно не из-за врени так как разница локального и квиковского времени всего 4-5 сек. а сигнала нет в радиусе как минимум 1-2 минут. могут ли сделки приходить не в прямом порядке например при тормозах?
|
|
Спасибо:
|
|
|
|
|
ra81
|
Дата: 04.08.2012
rminko с расхождением разобрался реально из-за разницы времени локального компа и квика. а вот сделки без причинные не понятны... но явно не из-за врени так как разница локального и квиковского времени всего 4-5 сек. а сигнала нет в радиусе как минимум 1-2 минут. могут ли сделки приходить не в прямом порядке например при тормозах? На альфа директе замечено, что порой ответ о сделке и исполнении ордера может задерживаться на длительное время. Даже на час другой. Это явно связано с терминалом или сервером альфы. Как на квике, не скажу нужны спецы по квику.
|
|
Спасибо:
|
|
|
|
|
rminko
|
Дата: 04.08.2012
|
|
|
|
ra81 rminko с расхождением разобрался реально из-за разницы времени локального компа и квика. а вот сделки без причинные не понятны... но явно не из-за врени так как разница локального и квиковского времени всего 4-5 сек. а сигнала нет в радиусе как минимум 1-2 минут. могут ли сделки приходить не в прямом порядке например при тормозах? На альфа директе замечено, что порой ответ о сделке и исполнении ордера может задерживаться на длительное время. Даже на час другой. Это явно связано с терминалом или сервером альфы. Как на квике, не скажу нужны спецы по квику. Речь шла о таблице всех сделок, а не о моих сделок. Но вопрос о правильной обработки собственных сделок и заявок тоже актуален. Сейчас думаю над задачей управления позицией: Как обычно это реализуется, может есть что почитать? Так как пока не могу придумать никакого толкового алгоритма открытия/закрытия позы что бы полностью исключить риск того что реальная поза окажется отличной от той что "подразумевает" робот Хотел уточнить кстати по порядку возникновения событий, в описании что-то не понял. Существует 3 возможных результата после отправки заявки на биржу. 1. Заявка отклонена биржей (ГО не хватает, объем или цена неверные, биржа не работает, связь отрублена и т.д.) в этом случае я так понимаю прийдет OrdersRegisterFailed? для неработающей биржи или отсутствии связи с биржей это событие не придет? 2. Заявка регистрируется в системе и появляется в стакане - ну тут придет NewOrders, с этим ясно 3. Заявка исполняется сразу (по рынку кинули например). Вот тут не понятно, придет И NewOrders и OrdersChanged и NewPosition/ChangePosition и в каком порядке? я так понимаю в любом? или первое событие не возникнет?
|
|
Спасибо:
|
|
|
|
|
ra81
|
Дата: 05.08.2012
|
|
|
|
rminko ra81 rminko с расхождением разобрался реально из-за разницы времени локального компа и квика. а вот сделки без причинные не понятны... но явно не из-за врени так как разница локального и квиковского времени всего 4-5 сек. а сигнала нет в радиусе как минимум 1-2 минут. могут ли сделки приходить не в прямом порядке например при тормозах? На альфа директе замечено, что порой ответ о сделке и исполнении ордера может задерживаться на длительное время. Даже на час другой. Это явно связано с терминалом или сервером альфы. Как на квике, не скажу нужны спецы по квику. Речь шла о таблице всех сделок, а не о моих сделок. Но вопрос о правильной обработки собственных сделок и заявок тоже актуален. Сейчас думаю над задачей управления позицией: Как обычно это реализуется, может есть что почитать? Так как пока не могу придумать никакого толкового алгоритма открытия/закрытия позы что бы полностью исключить риск того что реальная поза окажется отличной от той что "подразумевает" робот Хотел уточнить кстати по порядку возникновения событий, в описании что-то не понял. Существует 3 возможных результата после отправки заявки на биржу. 1. Заявка отклонена биржей (ГО не хватает, объем или цена неверные, биржа не работает, связь отрублена и т.д.) в этом случае я так понимаю прийдет OrdersRegisterFailed? для неработающей биржи или отсутствии связи с биржей это событие не придет? 2. Заявка регистрируется в системе и появляется в стакане - ну тут придет NewOrders, с этим ясно 3. Заявка исполняется сразу (по рынку кинули например). Вот тут не понятно, придет И NewOrders и OrdersChanged и NewPosition/ChangePosition и в каком порядке? я так понимаю в любом? или первое событие не возникнет? Для квика если сервер не доступен, полагаю ничего не прийдет :). Но это лучше уточнить у квикеров :). Порядок прихода событий по сделке не должен иметь значения ибо может идти с разных потоков. Я лично просто жду событие NewMyTrade и OrderMatched. Это однозначно показывает что ордер исполнился. Хотя по факту если ордер исполнился сделка уже явно совершилась на бирже.Размер позиции будет равен тому, сколько в ордере исполнилось. То есть объем исполненный в ордере. NewOrders - всегда есть для ордера. OrdersChanged - всегда есть для ордера который изменился. Если исполнился то событие есть. Смотреть исполнение ордера по ChangePosition думаю нецелесообразным.
|
|
Спасибо:
|
|
|
|
|
rminko
|
Дата: 05.08.2012
ra81 Хотя по факту если ордер исполнился сделка уже явно совершилась на бирже.Размер позиции будет равен тому, сколько в ордере исполнилось. То есть объем исполненный в ордере.
Не совсем согласен. Разве не может быть ситуации в которой заявка исполнилась, а информация о позиции еще не обновилась... То-есть если я в обработчике orderchanged вижу что у заявки статус - done и баланс 0- значит весь объем съели, но если я тут же проверю состояние позиции по инструменту то вполне могу получить что позиция еще не изменилась... или нет?
|
|
Спасибо:
|
|
|
|
|
rminko
|
Дата: 05.08.2012
Еще сейчас подумал - и еще больше подводных камней нашел. Например совершенно непонятно как разрулить через NewMyOrders и OrderChanged ситуацию когда отправлена заявка на вход в позицию, но еще не пришли никакие события о регистрации этой заявки, а уже поступает сигнал на выход или на переворот. вообщем надо закрывать предыдущую сделку а еще не понятно она вообще есть или заявка в стакане висит или отклонена биржей..... Походу все-таки надо через PositionChanged отслеживать текущую позицию и реализовать какой-то класс синхронизатор который будет смотреть какую позу подразумевает робот а какая реально есть на бирже и синхронизирует их. Интересно как другие контролируют позу? Или так же на авось и периодически синхронизируют?
|
|
Спасибо:
|
|
|
|
|
Kalikazandr
|
Дата: 06.08.2012
|
|
|
|
rminko Еще сейчас подумал - и еще больше подводных камней нашел. Например совершенно непонятно как разрулить через NewMyOrders и OrderChanged ситуацию когда отправлена заявка на вход в позицию, но еще не пришли никакие события о регистрации этой заявки, а уже поступает сигнал на выход или на переворот. вообщем надо закрывать предыдущую сделку а еще не понятно она вообще есть или заявка в стакане висит или отклонена биржей..... Походу все-таки надо через PositionChanged отслеживать текущую позицию и реализовать какой-то класс синхронизатор который будет смотреть какую позу подразумевает робот а какая реально есть на бирже и синхронизирует их. Интересно как другие контролируют позу? Или так же на авось и периодически синхронизируют? здрасте всем. чтото Вы тут огород огородите. тут нет никакой проблемы, если Вы внимательно почитаете встроенную справку по купайлу в квике, то там есть описания функций, с помощью которых оч легко осуществить такой контроль, а робота Вашего надо заставить не делать последующих выставлений ордеров без получения положительного ответа от биржи. по поводу разницы по времени: 1 сек серверного времени = 1000милисек, что означает 1000 ордеров/сек, если их пришло больше, то в табл всех сделок Вы увидете недалекое будущее, я замечал до 5 сек реального времени, как то так.
|
|
Спасибо:
|
|
|
|