Click or drag to resize

Statistics

StrategiesStatisticsPanel - таблица для отображения параметров и статистики работы стратегий.

Основные свойства и методы

Ниже показаны внеший вид компонета, а также фрагменты кода с его использованием. Пример кода взят из Samples/Testing/SampleHistoryTestingParallel.

GUI Strategies Statistics Panel
XAML
<Window x:Class="SampleHistoryTestingParallel.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:loc="clr-namespace:StockSharp.Localization;assembly=StockSharp.Localization"
        xmlns:charting="http://schemas.stocksharp.com/xaml"
        Title="{x:Static loc:LocalizedStrings.XamlStr563}" Height="430" Width="525">

  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="100" />
      <ColumnDefinition Width="*" />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="10" />
      <RowDefinition Height="Auto" />
      <RowDefinition Height="10" />
      <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Label Grid.Column="0" Grid.Row="0" Content="{x:Static loc:LocalizedStrings.XamlStr593}" />
    <TextBox x:Name="HistoryPath" Text="" Grid.Column="1" Grid.Row="0" />
    <Button x:Name="FindPath" Grid.Column="2" Grid.Row="0" Content="..." Width="25" HorizontalAlignment="Left" Click="FindPathClick" />

    <Button x:Name="StartBtn" Content="{x:Static loc:LocalizedStrings.Str2421}" Grid.Row="2" Grid.Column="0" Click="StartBtnClick" />
    <ProgressBar x:Name="TestingProcess" Grid.Column="1" Grid.Row="2" />

        <TabControl Grid.Row="4" Grid.ColumnSpan="3" Grid.Column="0" >
            <TabItem Header="{x:Static loc:LocalizedStrings.Equity}">
                <charting:EquityCurveChart x:Name="Curve" />
            </TabItem>
            <TabItem Header="{x:Static loc:LocalizedStrings.Str436}">
                <charting:StrategiesStatisticsPanel x:Name="Stat" ShowProgress="False"/>
            </TabItem>
        </TabControl>
  </Grid>
</Window>
C#
var strategies = periods
    .Select(period =>
    {
        var candleManager = new CandleManager(connector);
        var series = new CandleSeries(typeof(TimeFrameCandle), security, timeFrame);

        // create strategy based SMA
        var strategy = new SmaStrategy(candleManager, series, new SimpleMovingAverage { Length = period.Item1 }, new SimpleMovingAverage { Length = period.Item2 })
        {
            Volume = 1,
            Security = security,
            Portfolio = portfolio,
            Connector = connector,

            // by default interval is 1 min,
            // it is excessively for time range with several months
            UnrealizedPnLInterval = ((stopTime - startTime).Ticks / 1000).To<TimeSpan>()
        };

        strategy.SetCandleManager(candleManager);

        var curveItems = Curve.CreateCurve(LocalizedStrings.Str3026Params.Put(period.Item1, period.Item2), period.Item3);
        strategy.PnLChanged += () =>
        {
            var data = new EquityData
            {
                Time = strategy.CurrentTime,
                Value = strategy.PnL,
            };

            this.GuiAsync(() => curveItems.Add(data));
        };

        Stat.AddStrategies(new[] { strategy });

        return strategy;
    });