Как отобразить данные на графике из хранилища

Как отобразить данные на графике из хранилища
Atom
04.01.2016
dron3333


Всем привет! Столкнулся с проблемой: как отобразить данные на графике из хранилища? Сначала генерирую сделки, потом записываю в хранилище, достаю, а дальше не могу понять как делать. Как отобразить тиковые или минутные графики? Подскажите кто знает. Вот код


<Window x:Class="StorageData.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:charting="http://schemas.stocksharp.com/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <charting:Chart x:Name="Chart" Height="300" Width ="475"/>
    </Grid>
</Window>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using StockSharp.BusinessEntities;
using StockSharp.Algo;
using StockSharp.Quik;
using Ecng.Common;
using StockSharp.Localization;
using StockSharp.Messages;
using StockSharp.Algo.Storages;
using StockSharp.Xaml.Charting;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Indicators;
//using Ecng.Xaml;
//using Ecng.Collections;
//using System.Net;
//using Ookii.Dialogs.Wpf;


namespace StorageData
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            //int dfg = 2;
            //int ddf = dfg;

            var security = new Security
            {
                Id = "AAPL@NASDAQ",
                PriceStep = 0.1m,
                Decimals = 1,
            };



            var trades = new List<Trade>();

            // генерируем произвольные сделки
            for (var i = 1 - (1); i <= 100 - (1); i++)
            {
                var t = new Trade
                {
                    Time = DateTime.Today + TimeSpan.FromMinutes(i),
                    Id = i + (1),
                    Security = security,
                    Volume = RandomGen.GetInt(1, 10),
                    Price = RandomGen.GetInt(1, 100) * security.PriceStep ?? 1m + 99
                };

                trades.Add(t);
            }

            var storage = new StorageRegistry();

            var tradeStorage = storage.GetTradeStorage(security);

            tradeStorage.Save(trades);


            var loadedTrades = tradeStorage.Load(DateTime.Today, DateTime.Today + TimeSpan.FromMinutes(1000));


            //Console.WriteLine("1");
            foreach (var trade in loadedTrades)
            {
                Console.WriteLine("{0} {1} {2} {3}", trade.Id, trade.Time, trade.Volume, trade.Price);
            }
            //Console.WriteLine("2");






            ChartArea _candlesArea = new ChartArea();
            //ChartArea _indicatorsArea = new ChartArea();

            Chart.Areas.Add(_candlesArea);
            //Chart.Areas.Add(_indicatorsArea);


            //Chart.Draw(loadedTrades);
           
        }
    }
}


Теги:


Спасибо:


Иван З.

Фотография
Дата: 04.01.2016
Ответить


Вам вот эти примеры помогут https://github.com/StockSharp/StockSharp/tree/master/Samples/Testing

Спасибо: Mikhail Sukhov

dron3333

Фотография
Дата: 06.01.2016
Ответить


Спасибо, посмотрю...

Спасибо:

Сергей Гаврилов

Фотография
Дата: 08.01.2016
Ответить


В документации посмотрите раздел "Склеивание свечек, история + реал-тайм", там показано как создавать TradeStorageCandleBuilderSource. Для работы с историей в конструктор канлменеджера коннектор можете не передавать..

Если используете готовые свечи из хранилища, то прото задайте для свойства CandleManager.StorageRegistry ссылку на хранилище.

Спасибо: Mikhail Sukhov

dron3333

Фотография
Дата: 13.01.2016
Ответить


Спасибо, тоже посмотрю...

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy