ExpressionIndexSecurity в Shell не рассчитывается


ExpressionIndexSecurity в Shell не рассчитывается
Atom
6/2/2019


Здравствуйте, возник вопрос по формированию индексного графика в Shell. Пытаюсь сделать индекс при помощи ExpressionIndexSecurity и RoslynCompilerService, но индекс не формируется, в графе Expression после инициализации нового инструмента остается null, соответственно и инструмента нет, ошибок никаких не выдает C#. При этом вне рамок Shell все нормально работает. На приложенном скрине два варианта остановы, в которых видно , что в обычной форме индекс создается, а во втором (Shell) нет. Я в Shell пытался код с формированием индекса включать даже при инициализации главной формы но результат тот же. Не пойму, что я делаю не так?
QuestByShellIndex.jpg 161 KB (247)



Thanks:


Support

Avatar
Date: 6/6/2019
Reply


Добрый день

Пожалуйста, пришлите ваш код на support@stocksharp.com
Thanks:

allint29

Avatar
Date: 6/6/2019
Reply


Support Go to
Добрый день

Пожалуйста, пришлите ваш код на support@stocksharp.com

Добрый день выслал на почту код из shell.
Thanks:

Support

Avatar
Date: 6/8/2019
Reply


Добрый день

Попробуйте вместо RoslynCompilerService использовать следующий:

Code
ConfigManager.RegisterService<ICompilerService>(new Fw40CompilerService(Directory.GetCurrentDirectory(), Directory.GetCurrentDirectory()));


После этого ваш код у нас заработал:

Code
_indexSecurity = new ExpressionIndexSecurity()
{
Id = "INDEXTWO@FORTS",
Code = "IndexMy",

Expression = "RIM9@FORTS-10000",
Board = ExchangeBoard.Micex,
};

     var result = _indexSecurity.Formula.Calculate(new[] { 167.43m });

     if (result != -9832.57m)
     {
         throw new Exception(result.ToString());
     }
Thanks:

allint29

Avatar
Date: 6/11/2019
Reply


Здравствуйте, данная корректировка помогла, начали производиться вычисления, но теперь вычисления заканчиваются на открытии свечи, то есть если взять индекс без всяких коэффициентов, то на выходе получаю бар с открытием закрытием и телом в одну точку равным открытию бара данного инструмента на данном таймфрейме. Сначала думал, что индекс строится не из сделок а из свечей таймфрейма, но пробовал разные таймфреймы нестандартные, всегда бар начинается и заканчивается открытием свечи того таймфрейма, который выбран. Скрин экрана прилагаю. Еще хочу уточнить, что на версии 4.4.5.4 из учебного примера все работает как надо на тех же данных.QuestByShellIndex2.jpg
QuestByShellIndex2.jpg 131 KB (460)
Thanks:

Support

Avatar
Date: 6/11/2019
Reply


Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь?
Thanks:

allint29

Avatar
Date: 6/11/2019
Reply


Support Go to
Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь?


Я не только про Shell описываю, а программу которая написана на библиотеке версии (на которых пробовал) 4.4.15 и 4.4.16. В Shell которая у меня, например, версия библиотеки StockSharp.Algo 4.4.15 (версию библиотеки смотрю в свойствах ссылок на библиотеку), а версия из учебного примера (в котором все работает нормально) - 4.4.5.4, там даже модуль Expression выведен в отдельный файл. Я не разработчик данной библиотеки, но считаю что это баг, или, возможно, с версии обучающего видео процедура расчета индекса изменилась и тогда хотелось бы узнать эту процедуру.
Thanks:

Support

Avatar
Date: 6/11/2019
Reply


Пожалуйста, пришлите ваш код для воспроизведения ошибки.
Thanks:

allint29

Avatar
Date: 6/11/2019
Reply


Support Go to
Пожалуйста, пришлите ваш код для воспроизведения ошибки.

В спойлере - код.

Thanks:

Support

Avatar
Date: 6/12/2019
Reply


В приложении модицифированный пример SampleHistoryTesting, который выводит индексные свечи согласно формуле:

508e1b0ebae2eec2b77394615221a0d4.png
Thanks:


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

loading
clippy