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

Ошибки при работе 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.com/file/115116

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

Предупреждение	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 подчеркивает красным и сообщает о критической ошибке.


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

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

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

Заранее спасибо за ответ!
Shell.jpg 170 KB (230) Shell.jpg 170 KB (354)



Thanks:


Support

Avatar
Date: 7/20/2020
Reply


Добрый день

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

Анвар Насыров

Avatar
Date: 7/21/2020
Reply


1) По вопросу 3: первое подключение - адаптер Interactive Brokers, а второе подключение - адаптер Transaq.

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

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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy