Отчеты
Для стратегий, построенных на базе Strategy, S# предоставляет механизм генерации отчетов. Отчет включает в себя такие вещи, как код инструмента (Strategy.Security), общее время работы (Strategy.TotalWorkingTime), проскальзывание (Connector.SlippageManager), P&L (Strategy.PnLManager) и т.д. Также, генерация отчетов включает детальную статистику по всем заявкам (Strategy.Orders) и сделкам (Strategy.MyTrades), которые были совершены в рамках работы стратегии.
Механизм отчетов построен на базе класса StrategyReport, который стандартно имеет следующие реализации:
ExcelStrategyReport - генерация отчета в формат Excel. При данной генерации можно использовать файл-шаблон (ExcelStrategyReport.Template), который уже содержит необходимые формулы и графики, опирающиеся на генерируемые данные. Данные из шаблона перед генерацией копируются в результирующий файл, имя которого передается через конструктор.
По умолчанию, ExcelStrategyReport использует лист Excel с названием "отчет", куда записывает данные. Если такого листа в файле-шаблоне нет, то он будет автоматически создан.
XmlStrategyReport - генерация отчета в формат Xml. Данный формат удобен, когда необходимо передать параметры стратегии из торгового робота в другую программу.
CsvStrategyReport - генерация отчета в формат CSV. Упрощенная версия Excel отчета, поддерживается большим количеством сторонних программ.
Предварительные условия
Добавление в SampleSMA генерации Excel отчета
На форму необходимо добавить кнопку генерации отчета:
<Button x:Name="Report" Grid.Column="0" Width="100" Grid.ColumnSpan="2" Grid.Row="11" IsEnabled="False" Content="Отчет" Click="Report_Click" />
Сам код генерации (срабатывает при нажатии кнопки):
private void Report_Click(object sender, RoutedEventArgs e) { // сгерерировать отчет по прошедшему тестированию new ExcelStrategyReport(_strategy, "sma.xls").Generate(); // открыть отчет Process.Start("sma.xls"); }
В результате сгенерированный файл будет находится в папке рядом с SampleSMA.exe