Ошибка при перерегистрации ордера - ReRegisterOrder ошибка


Ошибка при перерегистрации ордера - ReRegisterOrder ошибка
Atom
18.02.2014


Подскажите кто сталкивался, выполняю перерегистрацию ордеров по нужным мне ценам с помощью ReRegisterOrder.
Какое то время все хорошо, потом в статусе текущей заявки появляется статус None, в терминале остается активная заявка, а в мониторе следующее:

FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:39 Info Перерегистрация заявки 71328746 с ценой 9645 на цену 9646.
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:39 Info Перерегистрация проскальзывания заявки 71328746 (0x179D47C) на заявку (0x629157).
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:40 Info Заявка 71328746 больше не активна.
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:40 Info Перерегистрация заявки 71328747 с ценой 9646 на цену 9645.
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:40 Info Перерегистрация проскальзывания заявки 71328747 (0x629157) на заявку (0x2FF6AFB).
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:40 Info Заявка 71328747 больше не активна.
FS_SRH4@FORTS_SPBFUT00b19 14.02.2014 20:28:40 Info Новая позиция: SPBFUT00b19-SRH4@FORTS=28.

None статус у следующего ордера №71328748, в монитор он не попадает вообще.

Откуда берется новая позиция, не понимаю, как полечить посоветуйте.
Пока на квик джуниор гонял стратегию, может быть джуниор глючит, на реале может не будет такой ошибки, сложно проверить из за ограничения на кол-во транзакций.

версия библиотеки 4.2.2.6 ошибка в том, что не приходит ответ от терминала, что ордер выставлен и активен, если этот ордер снять вручную, то приходит статус Done, если ордер начинает исполнятся, то так же приходят нужные статусы, но до исполнения робот не видит ордер.

Теги:


Спасибо:


< 1 2 3 4  > >>
Bond

Фотография
Дата: 18.02.2014
Ответить


vsnoopy83 Перейти
Ну я так понял от разработчиков ждать пояснений бесполезно, придется видимо что то придумывать, не понимаю чего, но потратить столько времени на изучение сток шарпа и в итоге понять, что он работает не стабильно, печально. Самое противное, что я бы уже на реале запустил давно.


Ну, может все не так плохо) Нужно просто разобраться как свериться с таблицей Квика. В трейдинге все глючит - компы, инет, роботы, терминалы, биржа. Без этого никак.
Спасибо:

vsnoopy83

Фотография
Дата: 18.02.2014
Ответить


Да, но не когда это просто техническая связка, у меня работает рукописный робот уже несколько месяцев, ни одной ошибки, человек хрен знает когда писал, без всяких сток шарпов, а я не могу функционал повторить элементарный, как то это не правильно. к сток шарпу идешь за скоростью, а она глючить начинает. Причем у людей на форуме были такие проблемы еще в 12 году, так никто и не помог тогда)
Спасибо:

Mikhail Sukhov

Фотография
Дата: 18.02.2014
Ответить


vsnoopy83 Перейти
Да, но не когда это просто техническая связка, у меня работает рукописный робот уже несколько месяцев, ни одной ошибки, человек хрен знает когда писал, без всяких сток шарпов, а я не могу функционал повторить элементарный, как то это не правильно. к сток шарпу идешь за скоростью, а она глючить начинает. Причем у людей на форуме были такие проблемы еще в 12 году, так никто и не помог тогда)


А о чем речь идет?
Спасибо:

vsnoopy83

Фотография
Дата: 18.02.2014
Ответить


Михаил Сухов Перейти
vsnoopy83 Перейти
Да, но не когда это просто техническая связка, у меня работает рукописный робот уже несколько месяцев, ни одной ошибки, человек хрен знает когда писал, без всяких сток шарпов, а я не могу функционал повторить элементарный, как то это не правильно. к сток шарпу идешь за скоростью, а она глючить начинает. Причем у людей на форуме были такие проблемы еще в 12 году, так никто и не помог тогда)


А о чем речь идет?


Речь о технической проблеме, описанной в первом сообщении, при перерегистрации ордеров время от времени не приходит статус заявки, хотя она выставлена в терминал и активна. В библиотеке статус None
Спасибо:

Mikhail Sukhov

Фотография
Дата: 18.02.2014
Ответить


vsnoopy83 Перейти

Речь о технической проблеме, описанной в первом сообщении, при перерегистрации ордеров время от времени не приходит статус заявки, хотя она выставлена в терминал и активна. В библиотеке статус None


Не нашел в сообщении упоминания, как воспроизвести проблему?
Спасибо:

Bond

Фотография
Дата: 18.02.2014
Ответить


vsnoopy83 Перейти
Bond Перейти
Любят они и тики отключать и сделки. Типа нам это не нужно)
Вам нужно отлавливать момент, когда происходит изменение.
В дополнение поставьте таймер. Если в течении минуты статус не изменился снимайти заявку и выставляйте по-новому. Лучше перестраховаться. Биржа тоже порой косячит не по-детски.


Так хорошо, но как её снять то))) если S# её не видит)) а по факту в терминале она стоит уже давно)


Слушай, да тут делов на две строчки в коде [biggrin]

Если заявка долго не переходит в состояние Активная, делай вот такую штуку:
Код

foreach (var order in Trader.Orders)
            {
                if (order.State == OrderStates.Active) Trader.CancelOrder(order);
            }


И торгуй себе дальше)
Спасибо:

vsnoopy83

Фотография
Дата: 18.02.2014
Ответить


Bond Перейти
vsnoopy83 Перейти
Bond Перейти
Любят они и тики отключать и сделки. Типа нам это не нужно)
Вам нужно отлавливать момент, когда происходит изменение.
В дополнение поставьте таймер. Если в течении минуты статус не изменился снимайти заявку и выставляйте по-новому. Лучше перестраховаться. Биржа тоже порой косячит не по-детски.


Так хорошо, но как её снять то))) если S# её не видит)) а по факту в терминале она стоит уже давно)


Слушай, да тут делов на две строчки в коде [biggrin]

Если заявка долго не переходит в состояние Активная, делай вот такую штуку:
Код

foreach (var order in Trader.Orders)
            {
                if (order.State == OrderStates.Active) Trader.CancelOrder(order);
            }


И торгуй себе дальше)


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

vsnoopy83

Фотография
Дата: 18.02.2014
Ответить


Михаил Сухов Перейти
vsnoopy83 Перейти

Речь о технической проблеме, описанной в первом сообщении, при перерегистрации ордеров время от времени не приходит статус заявки, хотя она выставлена в терминал и активна. В библиотеке статус None


Не нашел в сообщении упоминания, как воспроизвести проблему?


Воспроизвести можно следующим образом:

на обновление стакана вешаем функцию:
private Order _LimitOrderLong;

private void Algoritm()
{
lock (_locker)
{
//выставляем заявки
if (_LimitOrderLong == null && PriceInWS >= _WorkSecurity.MinPrice && PriceInWS <= _WorkSecurity.MaxPrice)//если нет ордера выставляем
{
var NewLimitOrderLong = new Order()
{
Direction = OrderDirections.Buy,
Price = PriceInWS,
Volume = DeltaWS,
Security = _WorkSecurity,
};
_LimitOrderLong = NewLimitOrderLong;
_Strategy.RegisterOrder(NewLimitOrderLong);
}
else if (_LimitOrderLong != null && PriceInWS >= _WorkSecurity.MinPrice && PriceInWS <= _WorkSecurity.MaxPrice)// двигаем ордер
if ((_LimitOrderLong.State == StockSharp.Messages.OrderStates.Active) && _LimitOrderLong.Price != PriceInWS) // заменяем ордер
{
//Заменяем ордер
var NewReRegOrder = _LimitOrderLong.Clone();
NewReRegOrder.Price = PriceInWS;
NewReRegOrder.Volume = 0;//_LimitOrderLong.Balance > DeltaWS ? DeltaWS : _LimitOrderLong.Balance;
_Strategy.ReRegisterOrder(_LimitOrderLong, NewReRegOrder);
_LimitOrderLong = NewReRegOrder;
};
}
}

PriceInWS берется небольшое отклонение от текущих цен, смысл в том, чтобы заставить часто перевыставлять ордера с изменением цен, у меня на 100 - 400 перевыставлений по некоторым ордерам не приходит статус active, но в квике ордера активны. Для моей стратегии это очень важно, прошу помочь в решении, на форуме видел старые сообщения про такую же проблему, решения там не было.

вот тема http://stocksharp.com/fo...-vyzyvaiutsia-sobytiia/ 4 сообщение о том же.

Михаил, можно ли с Вами как то связаться помимо форума?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 19.02.2014
Ответить


vsnoopy83 Перейти


Навскидку косяк - перерегистрация может случится в момент, когда предыдущая еще не зарегистрирована биржей.
Спасибо:

Bond

Фотография
Дата: 19.02.2014
Ответить


vsnoopy83 Перейти
Bond Перейти
vsnoopy83 Перейти
Bond Перейти
Любят они и тики отключать и сделки. Типа нам это не нужно)
Вам нужно отлавливать момент, когда происходит изменение.
В дополнение поставьте таймер. Если в течении минуты статус не изменился снимайти заявку и выставляйте по-новому. Лучше перестраховаться. Биржа тоже порой косячит не по-детски.


Так хорошо, но как её снять то))) если S# её не видит)) а по факту в терминале она стоит уже давно)


Слушай, да тут делов на две строчки в коде [biggrin]

Если заявка долго не переходит в состояние Активная, делай вот такую штуку:
Код

foreach (var order in Trader.Orders)
            {
                if (order.State == OrderStates.Active) Trader.CancelOrder(order);
            }


И торгуй себе дальше)


я же говорю, CancelOrder не пройдет, нельзя снять ордер, если система считает, что его нет.


Trader.Orders - это массив сделок из Квика, а не СтокШарпа. Проверял, все там четко работает.
Специально для тебя потратил время. Но, я думаю, ты сам в следующий раз разберешься.
Спасибо:
< 1 2 3 4  > >>

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy