orders delay~/topic/2358/orders-delay/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T18:13:06Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/18449/ Пишет, что метод доступа protected set, для записи не доступно... Security.Exchange.IsSupportAtomic...2012-04-20T08:47:19Z2012-04-20T08:47:19ZКот Матроскинhttps://stocksharp.ru/users/808/info@stocksharp.ru<div class="quote"><span class="quotetitle">hobo <a href="https://stocksharp.ru/posts/m/18445/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><div class="quote"><span class="quotetitle">Кот Матроскин <a href="https://stocksharp.ru/posts/m/18442/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Пишет, что метод доступа protected set, для записи не доступно...</div></div><br />Security.Exchange.IsSupportAtomicReRegister</div></div><br />А я пытался не через Security.Exchange, а через Trader [blush] Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18445/Исполнение лимитки сделано только после того как исполнятся весь объем в стакане на уровне цены лими...2012-04-20T08:31:46Z2012-04-20T08:36:33Zhobohttps://stocksharp.ru/users/27889/info@stocksharp.ru<div class="quote"><span class="quotetitle">pyhta4og <a href="https://stocksharp.ru/posts/m/18429/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Исполнение лимитки сделано только после того как исполнятся весь объем в стакане на уровне цены лимитки. Пример. цена 100 стоит 10 контрактов на покупку. кидаем заявку на покупку 1 контракта. Приходят сделки. 1,2,3 контракта по цене 100. Это кто-то продает в бид. Так вот, пока весь объем 10 контрактов на уровне 100 не кончится тестер не будет исполнять нашу заявку. </div></div><br />Супер. А если стакан новый пришел, а мою заявку еще не исполнили?<br />Ну допустим, на момент выставления моей заявки на уровне было 10 лотов, стакан появился новый, там стало 25 лотов, ясно что все 15(ну 15 минус мой объем, если быть точным) встали после меня, исполнение какого объема будет ждать тестер, когда дойдет до исполнения моего ордера? <br /><br /><div class="quote"><span class="quotetitle">Кот Матроскин <a href="https://stocksharp.ru/posts/m/18442/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Пишет, что метод доступа protected set, для записи не доступно...</div></div><br />Security.Exchange.IsSupportAtomicReRegisterCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18442/ Если IsSupportAtomicReRegister = false, то Register. Если true, то reregister Что-то не получается ...2012-04-20T07:32:41Z2012-04-20T07:32:41ZКот Матроскинhttps://stocksharp.ru/users/808/info@stocksharp.ru<div class="quote"><span class="quotetitle">OvcharenkoVI <a href="https://stocksharp.ru/posts/m/18299/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"> <br />Если IsSupportAtomicReRegister = false, то Register. Если true, то reregister</div></div><br />Что-то не получается установить IsSupportAtomicReRegister = false<br />Пишет, что метод доступа protected set, для записи не доступно...Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18429/В тестировании задержки при исполнении ордеров так же(а имхо даже более) важны, чем Latency при реги...2012-04-19T19:30:48Z2012-04-19T19:30:48Zpyhta4oghttps://stocksharp.ru/users/497/info@stocksharp.ru<div class="quote"><span class="quotetitle">hobo <a href="https://stocksharp.ru/posts/m/18301/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">В тестировании задержки при исполнении ордеров так же(а имхо даже более) важны, чем Latency при регистрации.<br />Кидаем лимитку на уровень с большим числом заявок, ну пусть она зарегистрировалась даже через секунду, выполнение всех ордеров, которые были выставлены раньше, может занять гораздо больше чем секунду</div></div><br /><br />Исполнение лимитки сделано только после того как исполнятся весь объем в стакане на уровне цены лимитки. Пример. цена 100 стоит 10 контрактов на покупку. кидаем заявку на покупку 1 контракта. Приходят сделки. 1,2,3 контракта по цене 100. Это кто-то продает в бид. Так вот, пока весь объем 10 контрактов на уровне 100 не кончится тестер не будет исполнять нашу заявку. Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18301/В тестировании задержки при исполнении ордеров так же(а имхо даже более) важны, чем Latency при реги...2012-04-17T05:35:16Z2012-04-17T05:35:16Zhobohttps://stocksharp.ru/users/27889/info@stocksharp.ruВ тестировании задержки при исполнении ордеров так же(а имхо даже более) важны, чем Latency при регистрации.<br />Кидаем лимитку на уровень с большим числом заявок, ну пусть она зарегистрировалась даже через секунду, выполнение всех ордеров, которые были выставлены раньше, может занять гораздо больше чем секундуCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18299/Вообще 2 варианта рассматривал выждать паузу и латенси при регистрации. Делал тест с латенси 0 мс. п...2012-04-17T03:36:05Z2012-04-17T03:36:05ZOvcharenkoVIhttps://stocksharp.ru/users/390/info@stocksharp.ru<div class="quote"><span class="quotetitle">foRs <a href="https://stocksharp.ru/posts/m/18298/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Вообще 2 варианта рассматривал выждать паузу и латенси при регистрации. Делал тест с латенси 0 мс. получилось к примеру 400 лосов, при латенси 1000 мс. 667 лосов. Ну значит пашет вроде при котировании.<br /><br />А по умолчанию в котировании используется RegisterOrder или ReRegister ?</div></div><br /><br />Если IsSupportAtomicReRegister = false, то Register. Если true, то reregisterCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18298/Вообще 2 варианта рассматривал выждать паузу и латенси при регистрации. Делал тест с латенси 0 мс. п...2012-04-17T03:22:35Z2012-04-17T03:23:39ZfoRshttps://stocksharp.ru/users/28037/info@stocksharp.ruВообще 2 варианта рассматривал выждать паузу и латенси при регистрации. Делал тест с латенси 0 мс. получилось к примеру 400 лосов, при латенси 1000 мс. 667 лосов. Ну значит пашет вроде при котировании.<br /><br />А по умолчанию в котировании используется RegisterOrder или ReRegister ?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18274/Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование...2012-04-16T08:51:24Z2012-04-16T08:51:24ZOvcharenkoVIhttps://stocksharp.ru/users/390/info@stocksharp.ru<div class="quote"><span class="quotetitle">ra81 <a href="https://stocksharp.ru/posts/m/18271/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">OvcharenkoVI <a href="https://stocksharp.ru/posts/m/18263/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование писать</div></div><br />Я так понял вопрос, что нужно перед новой регистрацией заявки, выждать паузу. А не внести латенси регистрации заявки. Отсюда в котировании такой паузы нет.<br /><br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">в котировании используется вроде ReRegisterOrder</div></div><br />Все зависит от Свойства IsSupportAtomicReRegister - если у эмулятора оно будет false, тада котирование будет юзать отмену и затем регистрацию заявки.</div></div><br /><br />об этом и говорюCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18271/Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование...2012-04-16T08:22:56Z2012-04-16T08:22:56Zra81https://stocksharp.ru/users/16581/info@stocksharp.ru<div class="quote"><span class="quotetitle">OvcharenkoVI <a href="https://stocksharp.ru/posts/m/18263/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование писать</div></div><br />Я так понял вопрос, что нужно перед новой регистрацией заявки, выждать паузу. А не внести латенси регистрации заявки. Отсюда в котировании такой паузы нет.<br /><br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">в котировании используется вроде ReRegisterOrder</div></div><br />Все зависит от Свойства IsSupportAtomicReRegister - если у эмулятора оно будет false, тада котирование будет юзать отмену и затем регистрацию заявки.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18264/ Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котировани...2012-04-16T04:52:35Z2012-04-16T04:52:35Zhurricanehttps://stocksharp.ru/users/5988/info@stocksharp.ru<div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"> <br />Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование писать</div></div><br /><br />в котировании используется вроде ReRegisterOrder<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18263/Так в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование...2012-04-16T04:47:38Z2012-04-16T04:47:38ZOvcharenkoVIhttps://stocksharp.ru/users/390/info@stocksharp.ruТак в котировании же также используется RegisterOrder, значит задержка будет, зачем свое котирование писатьCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18262/А в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделат...2012-04-16T00:56:21Z2012-04-16T00:56:21Zra81https://stocksharp.ru/users/16581/info@stocksharp.ru<div class="quote"><span class="quotetitle">foRs <a href="https://stocksharp.ru/posts/m/18253/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделать?</div></div><br />Вот если именно таймаут между перевыставлениями заявок - то кажется никак. Только сделать свое котирование с таймаутом :).<br />Если же речь про латенси о которой говорилось выше, то ответ дан :)Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18257/MarketEmulator.Settings.Latency - задержка при RegisterOrder давным давно было сделано2012-04-15T20:05:39Z2012-04-15T20:05:39Zpyhta4oghttps://stocksharp.ru/users/497/info@stocksharp.ruMarketEmulator.Settings.Latency <br />- задержка при RegisterOrder<br /><br />давным давно было сделаноCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18254/А в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделат...2012-04-15T19:00:19Z2012-04-15T19:00:19ZOvcharenkoVIhttps://stocksharp.ru/users/390/info@stocksharp.ru<div class="quote"><span class="quotetitle">foRs <a href="https://stocksharp.ru/posts/m/18253/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделать?</div></div><br /><br />Если пользоваться предыдущим методом, то, наверное, вообще геморрой )))Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/18253/А в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделат...2012-04-15T14:18:42Z2012-04-15T14:18:42ZfoRshttps://stocksharp.ru/users/28037/info@stocksharp.ruА в тесте с использованием котирования задержку на выставление при перерегистрации заявок как сделать?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16609/а можно поподробнее по задержке с куском кода для примера добавить в справку. это же актуально для в...2012-02-20T13:05:27Z2012-02-20T13:05:27ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ru<div class="quote"><span class="quotetitle">foRs <a href="https://stocksharp.ru/posts/m/16605/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">а можно поподробнее по задержке с куском кода для примера добавить в справку. это же актуально для всех, кто тести на истории</div></div><br /><br />Ну я не думаю что мой код претендует на добавление в справку :)<br />Исполнение у меня сделано примерно так (наследник Strategy)<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
public decimal CurrentPos;
private Object _lockObjCurrentPos = new Object();
private SynchronizedDictionary<Order, OrderInfo> _ordersInfo = new SynchronizedDictionary<Order, OrderInfo>();
public OrderInfo OrderInfo(Order order)
{
return _ordersInfo.SyncGet(o => o.FirstOrDefault(t => t.Key == order)).Value;
}
// Ордера которые отправляются с задержкой.
protected SortedList<Order, DateTime> _delayedOrders = new SortedList<Order, DateTime>();
private Object _lockObjDelayedOrders = new Object();
public void OnMarketTimeChanged()
{
List<Order> orders = new List<Order>();
var processOrders = _delayedOrders.Where(p => p.Value <= TraderManager.MarketTime);
if (processOrders.Count() == 0)
return;
lock (_lockObjDelayedOrders)
{
foreach (var pair in processOrders)
orders.Add(pair.Key);
foreach (var order in orders)
_delayedOrders.RemoveWhere(p => p.Key.Id == order.Id);
}
foreach (var order in orders)
{
lock (_lockObjCurrentPos)
{
CurrentPos += order.Volume * (order.Direction == OrderDirections.Buy ? 1 : -1);
}
base.RegisterOrder(order);
}
}
public virtual void MyCreateOrder(OrderDirections direction, string comment = "", decimal price = 0, decimal volume = 0, TimeSpan _delay = new TimeSpan())
{
var priceLocal = price;
if (volume == 0)
volume = base.Volume;
if (priceLocal == 0)
{
priceLocal = Security.LastTrade.Price + 1000 * (direction == OrderDirections.Buy ? 1 : -1);
}
var order = this.CreateOrder(direction, priceLocal, volume);
var timePlan = MarketTime;
_ordersInfo.SyncDo(o => o.Add(order, new OrderInfo
{
Comment = comment,
PricePlan = price == 0 ? candleList.Last().ClosePrice : price,
TimePlan = timePlan
}));
try
{
if (_delay == new TimeSpan())
{
lock (_lockObjCurrentPos)
{
CurrentPos += order.Volume * (order.Direction == OrderDirections.Buy ? 1 : -1);
}
base.RegisterOrder(order);
}
else
{
_delayedOrders.Add(order, TraderManager.MarketTime + _delay);
}
}
catch (Exception e)
{
LoggingHelper.AddErrorLog(this, e);
}
}
</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16605/а можно поподробнее по задержке с куском кода для примера добавить в справку. это же актуально для в...2012-02-20T11:42:07Z2012-02-20T11:42:07ZfoRshttps://stocksharp.ru/users/28037/info@stocksharp.ruа можно поподробнее по задержке с куском кода для примера добавить в справку. это же актуально для всех, кто тести на историиCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16052/Я это делаю вручную. Ордер сохраняю в список с желаемым временем. Подписываюсь на marketTimeChanged ...2012-01-31T13:51:05Z2012-01-31T13:51:05ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">Garic <a href="https://stocksharp.ru/posts/m/16051/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Я это делаю вручную.<br />Ордер сохраняю в список с желаемым временем.<br />Подписываюсь на marketTimeChanged - и регистрирую.</div></div><br /><br />Переопределите свой IMarketEmulator.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16051/Я это делаю вручную. Ордер сохраняю в список с желаемым временем. Подписываюсь на marketTimeChanged ...2012-01-31T13:32:56Z2012-01-31T13:32:56ZGarichttps://stocksharp.ru/users/809/info@stocksharp.ruЯ это делаю вручную.<br />Ордер сохраняю в список с желаемым временем.<br />Подписываюсь на marketTimeChanged - и регистрирую.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/16042/Возможно ли при тестировании на истории тестеру EmulationTrader принудительно задать задержку наприм...2012-01-31T10:12:18Z2012-01-31T10:12:18Zrafhttps://stocksharp.ru/users/28475/info@stocksharp.ruВозможно ли при тестировании на истории тестеру EmulationTrader принудительно задать задержку например в 1000 милисекунд (по тестируемой шкале времени) для выставления ордеров (пропуск тиков перед размещением ордеров)? Ведь реальная задержка при выставлении ордеров 100 - 250 ms, а тестер их выставляет мгновенно.Copyright @ StockSharp Platform LLC 2010 - 2024