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/forum/3714/Probliemy-s-kvikom--nie-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 - это массив сделок из Квика, а не СтокШарпа. Проверял, все там четко работает.
Специально для тебя потратил время. Но, я думаю, ты сам в следующий раз разберешься.
|
|
|
|
Спасибо:
|
|
|
|
|