← Назад

OrderStates

Добрый день. Раньше для отслеживания не отправленных и ожидающих регистрацию ордеров, использовал: var _orderPeningNone = this.Orders.FirstOrDefault(o => (o.State == OrderStates.Pending || o.State == OrderStates.None)). Перешел на S#5 и Quik8, ордер остаётся в статусе Pending даже после того как он был зарегистрирован и появился в Квике как активный. Как правильно отслеживать статус ордеров?

Комментарии (14)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Support
Support

Добрый день

Вы можете использовать наш пример SampleConnection где показана работа с заявками. Статусы заявок в примере обновляются. Обновляются ли они у вас? Если нет, пожалуйста, пришлите lua log.

Алексей
Алексей Автор

Еще бы понять как посмотреть этот пример? Пытался скачать через nuget, ругается: "Не удалось установить пакет «StockSharp.Samples 5.0.2». Вы пытаетесь установить этот пакет в проект, требуемая версия платформы которого — «.NETFramework,Version=v4.8», но в пакете нет ссылок на сборки или файлов содержимого, совместимых с этой платформой. Дополнительную информацию можно получить у автора пакета." Скачал через github(разблокировал), вылезает куча ошибок и ругается, что не может что-то подкачать.

Высылаю лог моей стратегии, заявка выставляется, но при проверке статус не меняется (Pending), что делать?

Support
Support
  1. С данной страницы https://stocksharp.ru/products/download/ скачивается архив с примерами.
  2. Распаковка архива и запуск sln в VS 2019
Алексей
Алексей Автор

Support:

  1. С данной страницы https://stocksharp.ru/products/download/ скачивается архив с примерами.
  2. Распаковка архива и запуск sln в VS 2019

Закачал, разблокировал, распаковал, запустил sln в VS 2019, результат:

Во время восстановления пакетов NuGet произошла ошибка: Пакет "StockSharp.Tradier.5.0.20" указан в веб-канале "nuget.org [https://api.nuget.org/v3/index.json]", но после нескольких попыток не удалось скачать файл NUPKG. Указан недопустимый веб-канал либо необходимые пакеты были удалены во время выполнения текущей операции. Убедитесь, что пакет существует в веб-канале и повторите попытку. 1>------ Сборка начата: проект: SampleConnection, Конфигурация: Debug Any CPU ------ 1>C:\Program Files\dotnet\sdk\3.1.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(234,5): error NETSDK1004: файл ресурсов "D:\S#\API\Samples\Connectors\SampleConnection\obj\project.assets.json" не найден. Восстановите пакет NuGet, чтобы создать его. 1>Сборка проекта "SampleConnection.csproj" завершена с ошибкой. 1>C:\Program Files\dotnet\sdk\3.1.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(234,5): error NETSDK1004: файл ресурсов "D:\S#\API\Samples\Connectors\SampleConnection\obj\project.assets.json" не найден. Восстановите пакет NuGet, чтобы создать его. 1>Сборка проекта "SampleConnection.csproj" завершена с ошибкой. ========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Алексей
Алексей Автор

Support, у вас странная привычка вместо конкретного ответа вы в очередной раз посылаете меня самого искать ответ😠. Я должен с начало помучатся с запуском примеров, потом разобраться в коде и найти аналогичную ситуацию. Все это я могу сделать без платной тех. поддержке. Я задал вопрос на пару строк кода, мне нужны быстрые и четкие ответы. Как правильно отслеживать статус ордеров? Прошу ответить конкретно с примером кода.

Support
Support
connector.OrderChanged += order =>
{
  switch (order.State)
  {
     case OrderStates.Active: // заявка активна
        break;
    case OrderStates.Done: // заявка снята (order.Balance > 0) или исполнена (order.Balance = 0)
        break;
  }
};
Алексей
Алексей Автор

День добрый. Используя приведенный вами код не удалось отследить изменение статуса заявки т.к. событие OrderChangedне приходит, после отправки заявка остается в состоянии Pending (в Квике она активна). Также выяснилось, что кроме OrderChanged не приходят события: OrderReceived, OrderRegistered, OrderLogItemReceived, WhenOrderChanged. События SubscriptionStarted, OrderRegistering, OrderRegisterFailed, NewOrder работают нормально. В примерах выводится статус заявки только Pending и Failed, остальные статусы отследить невозможно. Прошу тех.поддержку разобраться в ситуации, а пользователей поделиться методом отслеживания OrderStates.

(S# 5.0, Quik 8(Открытие), Windows 10 Pro, WS 2019, .NET 4.8 FW)

Support
Support

Добрый день

Пожалуйста, проверьте поведение с помощью нашего примера SampleConnection. Шаги указаны здесь https://stocksharp.ru/posts/m/50688/ Так же убедитесь NugetInstaller, что у вас установлена последняя версия коннектора QUIK.

Алексей
Алексей Автор

Support: Добрый день

Пожалуйста, проверьте поведение с помощью нашего примера SampleConnection. Шаги указаны здесь https://stocksharp.ru/posts/m/50688/ Так же убедитесь NugetInstaller, что у вас установлена последняя версия коннектора QUIK.

NugetInstaller установил последнюю версию. Проверил с помощью вашего примера, результат аналогичный, заявка в Квике выставляется, статус заявки в примере не меняется.

Support
Support

Алексей:

Support: Добрый день

Пожалуйста, проверьте поведение с помощью нашего примера SampleConnection. Шаги указаны здесь https://stocksharp.ru/posts/m/50688/ Так же убедитесь NugetInstaller, что у вас установлена последняя версия коннектора QUIK.

NugetInstaller установил последнюю версию. Проверил с помощью вашего примера, результат аналогичный, заявка в Квике выставляется, статус заявки в примере не меняется.

Вышлите логи примера и Lua части.

Алексей
Алексей Автор

Support:

Алексей:

Support: Добрый день

Пожалуйста, проверьте поведение с помощью нашего примера SampleConnection. Шаги указаны здесь https://stocksharp.ru/posts/m/50688/ Так же убедитесь NugetInstaller, что у вас установлена последняя версия коннектора QUIK.

NugetInstaller установил последнюю версию. Проверил с помощью вашего примера, результат аналогичный, заявка в Квике выставляется, статус заявки в примере не меняется.

Вышлите логи примера и Lua части.

Support
Support

Добрый день

Попробуйте обновленный релиз. Коннектор так же необходимо обновить. Просьба сообщить о результате.

Алексей
Алексей
Алексей Автор

Support: Добрый день

Попробуйте обновленный релиз. Коннектор так же необходимо обновить. Просьба сообщить о результате.

Пример работает, статус заявки меняется.

Support
Support

Спасибо за информацию.

Проверьта, аналогично, вашу проблему со стаканом - https://stocksharp.ru/forum/11949/whenmarketdepthchanged()-ne-rabotaet-pri-otkrytom-stakane/ Меняются ли стаканы.