Ошибка: котирование порождает несколько выполненных заявок


Ошибка: котирование порождает несколько выполненных заявок
Atom
10.11.2011


Проблема проявляется даже стандартном примере SampleHistoryTesting. Для обнаружения в OnProcess достаточно добавить
Код
if (Math.Abs(PositionManager.Position) > Volume)
  throw new Exception("Неверное состояние - поза превышает рабочий объем.");

и после получения эксепшена посмотреть Trader.Orders - последние две заявки будут исполненными, а перед ними будет несколько отмененных с примерно тем же временем.

Ошибка плавающая, возникает иногда на первой же заявке, а иногда несколько первых заявок проходят нормально.

Теги:


Спасибо:


< 1 2 3 4  > >>
Camill

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


Цеплял вот таким кодом:

Код

private int count = 0;
protected override ProcessResults OnProcess()
{
  ...

  var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
  var log = new FileLogListener("log" + (count++).ToString() + ".txt");
  strategy.Log += new Action<LogMessage>(message => log.WriteMessage(message));
  base.ChildStrategies.Add(strategy);

Спасибо:

Camill

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


Еще пример, уже из моего проекта, с событийной моделью:

Код
var strat = new MarketQuotingStrategy(LastOrder, new Unit(0), new Unit(50));
var log = new FileLogListener("log" + (++count).ToString() + ".txt");
strat.Name = "котирование " + (count).ToString();
strat.Log += new Action<LogMessage>(message => log.WriteMessage(message));
ChildStrategies.Add(strat);


Код
23:40:34.163 |            | котирование 4   | Стратегия запущена.
23:40:38.823 |            | котирование 4   | Регистрация новой заявки на Buy с ценой 126870 и объемом 1.
23:40:38.823 |            | котирование 4   | Заявка 7167731 на Buy отправлена с ценой 126870 объемом 1.
23:40:56.560 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:41:17.933 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:41:36.310 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:41:43.060 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:41:56.390 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:42:42.827 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:42:57.373 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:43:20.500 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:06.733 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:17.687 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:27.157 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:29.703 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:34.703 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:44:55.093 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:45:40.017 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:46:03.720 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:46:29.970 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:46:32.873 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:46:38.233 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:46:56.797 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:47:35.563 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:47:59.733 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:48:26.627 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:48:28.000 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:48:34.437 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:48:52.063 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:48:56.283 | Warning    | котирование 4   | Заявка 7167731 не имеет состояния.
23:49:20.360 |            | котирование 4   | Цена текущей 126870 и лучшей 127350.
23:49:20.360 |            | котирование 4   | Лучший бид 127300 и лучший аск 127620.
23:49:20.360 |            | котирование 4   | Котирование заявки 7167731 на Buy с ценой 126870 объемом 1.
23:49:20.360 |            | котирование 4   | Отмена заявки 7167731.
23:49:20.370 |            | котирование 4   | Отмена заявки 7167731 прошло успешно.
23:49:25.750 |            | котирование 4   | Регистрация новой заявки на Buy с ценой 127350 и объемом 1.
23:49:25.750 |            | котирование 4   | Заявка 7167732 на Buy отправлена с ценой 127350 объемом 1.
23:49:54.893 |            | котирование 4   | Цена текущей 127350 и лучшей 127600.
23:49:54.893 |            | котирование 4   | Лучший бид 127550 и лучший аск 127655.
23:49:54.893 |            | котирование 4   | Котирование заявки 7167732 на Buy с ценой 127350 объемом 1.
23:49:54.893 |            | котирование 4   | Отмена заявки 7167732.
23:49:54.903 |            | котирование 4   | Отмена заявки 7167732 прошло успешно.
10:30:02.310 |            | котирование 4   | Регистрация новой заявки на Buy с ценой 127600 и объемом 1.
10:30:02.310 |            | котирование 4   | Заявка 7167733 на Buy отправлена с ценой 127600 объемом 1.
10:30:02.310 |            | котирование 4   | Котируемая заявка 7167733 исполнилась.
10:30:02.310 |            | котирование 4   | Регистрация новой заявки на Buy с ценой 127995 и объемом 1.
10:30:02.310 |            | котирование 4   | Новая Buy сделка 7 по цене 127550 на 1 заявки 7167733.
10:30:02.310 |            | котирование 4   | Заявка 7167734 на Buy отправлена с ценой 127995 объемом 1.
10:30:02.310 |            | котирование 4   | Заканчиваем котирование с неисполненным объемом равный 0.
10:30:02.310 |            | котирование 4   | Позиция изменилась на 1.
10:30:02.310 |            | котирование 4   | Заканчиваем котирование с неисполненным объемом равный 0.
10:30:02.310 |            | котирование 4   | Стратегия останавливается.
10:30:02.310 |            | котирование 4   | Заканчиваем котирование с неисполненным объемом равный 0.
10:30:02.310 |            | котирование 4   | Новая Buy сделка 8 по цене 127950 на 1 заявки 7167734.
10:30:02.310 |            | котирование 4   | Стратегия остановлена.
10:30:02.310 |            | котирование 4   | Заканчиваем котирование с неисполненным объемом равный -1.
Спасибо:

Camill

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


Я кого-нибудь убедил в существовании проблемы, или еще что-то нужно уточнить?
Спасибо:

kenota

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


Я тоже сталкивался с такой проблемой. Только в другом виде: при попытке использования StopLoss и TakeProfit стратегий на бектесте все сходит с ума, потому что выполняется пара ордеров в определенный момент и баланс стратегии нарушается.

Уважаемая команда stocksharp вы можете посмотреть на эту проблему? Или подсказать где нам самим чинить, хотя я думаю что это в закрытой части стокшарпа.
Спасибо: andy_baka_

Camill

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


kenota, подсказывайте, конечно.
Чем подробнее мы объясним, где искать, тем больше вероятность, что они полезут исправлять.
Спасибо:

Mikhail Sukhov

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


Camill Перейти
kenota, подсказывайте, конечно.
Чем подробнее мы объясним, где искать, тем больше вероятность, что они полезут исправлять.


Полезем смотреть обязательно. Только времени не было. Плюс у меня очередной отпуск на следующей неделе.

зы По котированию надеюсь народ начнет понимать, что если не помогать с простыми задачами (кстати, спасибо вам за помощь по Гидре), то команда S# будет эти простые задачи сама делать. А на сложные руки не дойдут. Вот и получается, что если кому-то не нужна та же самая Гидра, на самом деле она ему нужна, только он об этом еще не знает.[biggrin]
Спасибо:

Camill

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


Mikhail Sukhov Перейти

Полезем смотреть обязательно. Только времени не было. Плюс у меня очередной отпуск на следующей неделе.

Михаил, да я бы с удовольствием помог, хотя бы в том, что сам использую. Но с котированием - увы - без исходников дебажить это в ассемблере я не смогу.
Если времени нет править, то хоть старую версию котирования верните. А то с фактически нерабочим тестированием использовать новую версию невозможно. А если еще и в боевом режиме такие косяки будут, то вообще караул.
Спасибо:

Alexander

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


Camill Перейти
Mikhail Sukhov Перейти

Полезем смотреть обязательно. Только времени не было. Плюс у меня очередной отпуск на следующей неделе.

Михаил, да я бы с удовольствием помог, хотя бы в том, что сам использую. Но с котированием - увы - без исходников дебажить это в ассемблере я не смогу.
Если времени нет править, то хоть старую версию котирования верните. А то с фактически нерабочим тестированием использовать новую версию невозможно. А если еще и в боевом режиме такие косяки будут, то вообще караул.



Посмотрите, пожалуйста, когда поднимается событие NewOrder - добавьте вывод этого сообщения в лог.
Спасибо:

Camill

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


Alexander Mukhanchikov Перейти
Посмотрите, пожалуйста, когда поднимается событие NewOrder - добавьте вывод этого сообщения в лог.

Если можно, скажите что именно куда добавить. "Регистрация новой заявки" - это разве не оно?
Спасибо:

Alexander

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


Camill Перейти
Alexander Mukhanchikov Перейти
Посмотрите, пожалуйста, когда поднимается событие NewOrder - добавьте вывод этого сообщения в лог.

Если можно, скажите что именно куда добавить. "Регистрация новой заявки" - это разве не оно?


Совсем не оно.
Подпишитесь на событие NewOrders у стратегии MQS и добавьте сообщение о id заявки и времени вывода (с милисекундами).
Спасибо:
< 1 2 3 4  > >>

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

loading
clippy