← 返回

Ошибки при работе S#.Shell 5.0 и S#.API 5.0

Добрый день,

Я являюсь пользователем графического каркаса S#.Shell. Вот какие ошибки я обнаружил в процессе эксплуатации S#.Shell:

  1. При работе с адаптером Interactive Brokers идентификатор инструмента отображается неправильно!!! Вместо синтаксиса [код инструмента]@[код площадки] идентификатор инструмента отображается в неизвестном формате. Например, идентификатор акций компании Apple должен выглядеть вот так: AAPL@NASDAQ, а выглядет вот так:

AAPL##STK##USD####@NASDAQ.NMS

Согласитеcь, не самый удобный идентификатор! Причем эта ошибка возникает не только с S#.Shell, но и с другими продуктами StockSharp. В S#.Data (Hydra) при подключении к Interactive Brokers идентификатор инструмента отображается также неправильно. Скорее всего, это связано с тем, что Interactive Brokers обновили свои API, и в них изменили формат передачи сообщений. А адаптер Interactive Brokers S#.API работает со старым форматом передачи сообщений. Поэтому это ошибка именно S#.API!

Вот скриншот: https://stocksharp.ru/file/115116

  1. При анализе кода выявлены следующие ошибки:

Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  TestingControl.xaml.cs	                222	 
Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  SmaIndexTestingControl.xaml.cs	142	 
Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  SmaIndexTestingControl.xaml.cs	231	 
Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  SmaTestingControl.xaml.cs		138	 
Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  SmaTestingControl.xaml.cs		206	 
Предупреждение	CS0618	'Connector.NewSecurity" является устаревшим: 'Use SecurityReceived event.'  StairsTrendTestingControl.xaml.cs	197	 
Предупреждение	CS0618	'Connector.NewPortfolio" является устаревшим: 'Use PortfolioReceived event.'  PortfolioGridControl.xaml.cs	        10	 
Предупреждение	CS0618	'Connector.NewPosition" является устаревшим: 'Use PositionReceived event.'  PortfolioGridControl.xaml.cs	        11	 

При попытке замены вручную кода устаревших команд S#.API на новые, Visual Studio подчеркивает красным и сообщает о критической ошибке.

  1. При подключении к нескольким адаптерам, в S#.Shell загружаются портфели только из адаптера, который идет первым в списке. Эта ошибка - скорее всего следствие вышеуказанных ошибок в коде S#.Shell.

  2. После остановки стратегии в S#.Shell для повторного запуска стратегию нужно заново создавать. Иначе при повторном старте, S#.Shell создает два экземпляра стратегии, которые начинают работать параллельно и выставляют заявки одновременно. Поэтому приходится закрывать страницу со стратегией и создавать новую, чтобы удалить старый экземпляр стратегии.

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

Заранее спасибо за ответ!

评论 (2)

登录创建账户, 登录或注册以发表评论

Support
Support

Добрый день

  1. Это не ошибка. Идентификатор действительно должен иметь такой формат, так как символьное обозначение в TWS не уникально и обозначает разные типы инструментов.
  2. Пока игнорируйте данные предупреждения, если нет возможности исправить самостоятельно. Мы выпустим обучающие материалы + заменим исходные коды примеров в скором времени.
  3. Просьба сообщить какие подключения использовались. 4-5) Информация передана разработчикам.
Анвар Насыров
Анвар Насыров 作者
  1. По вопросу 3: первое подключение - адаптер Interactive Brokers, а второе подключение - адаптер Transaq.

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

  3. На вкладке Реал-тайм -> Стратегии есть галочка "Торговля". В инструкции к S#.Shell про нее ничего не написано. Для чего нужна эта галочка? Какие функции при этом активируются?