Урок 7. Сохранение и накопление данных

Урок 7. Сохранение и накопление данных
Atom
6/18/2013
IvanB


Видео-уроки:
Hydra (S#.Data) основные моменты

[vk]http://vk.com/video_ext.php?oid=-66650972&id=167470414&hash=b23e64182732032e&hd=3[/vk]

Темы занятия:


    • Работа с Гидрой (S#.Data)
    • Получение данных через Гидру
    • Использование полученных данных в своем проекте



Полезные ссылки:
Документация по S#.Data
Создание своего источника для S#.Data,

Вложения:
Скачать проекты



Thanks:


< 1 2 3 4  >
IvanB

Avatar
Date: 7/23/2013
Reply


pft_man

...

Code

Connection.SafeConnection.Trader.NewMyTrades += mytrades => this.GuiAsync(() =>
                    {
                        _storageRegistry.GetTradeStorage(Connection.SelectedSecurity).Save(mytrades.Select(t => t.Trade).ToList());
                    });


Но теперь возникает вот такая ошибка. Не понимаю, почему, путь я указываю выше в коде.

Code

((LocalMarketDataDrive)_storageRegistry.DefaultDrive).Path = @"С:\History"; // изменяем путь, используемый по умолчанию
((LocalMarketDataDrive)_storageRegistry.DefaultDrive).UseAlphabeticPath = true; // используем алфавитное хранилище


Помогите, пожалуйста, добить эту тему, а то никак не получается загрузить прошлую информацию в стратегию.

Покажите описание стека вызовов из сообщения об ошибке (ссылка View Detail...) и убедитесь, что путь до хранилища указывается до момента попытки сохранения в нем.
Thanks:

pft_man

Avatar
Date: 7/23/2013
Reply


Вроде путь присваивается до обращения по нему. Пробовал указывать путь @"С:\History\S\SBER@QJSIM", но всё-равно не работает.
Зато если закомментировать строку, в которой сохраняется путь, то всё работает, с ней не хочет.

Code

        private StorageRegistry _storageRegistry = new StorageRegistry();

        public MainWindow()
        {
            InitializeComponent();
            Connection.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()));
            _logManager.Sources.Add(Connection.SafeConnection.Trader);
            _logManager.Listeners.Add(new FileLogListener("log.txt"));
            _logManager.Listeners.Add(new GuiLogListener(_monitorWindow));
            _monitorWindow.MakeHideable();
            _myTradesWindow.MakeHideable();

            ((LocalMarketDataDrive)_storageRegistry.DefaultDrive).Path = @"С:\History"; // изменяем путь, используемый по умолчанию
            ((LocalMarketDataDrive)_storageRegistry.DefaultDrive).UseAlphabeticPath = true; // используем алфавитное хранилище

            Connection.SafeConnection.Trader.NewMyTrades += mytrades => this.GuiAsync(() =>
                    {
                        _storageRegistry.GetTradeStorage(Connection.SelectedSecurity).Save(mytrades.Select(t => t.Trade).ToList());
                    });
        }
error.jpg 55 KB (351)
Thanks:

IvanB

Avatar
Date: 7/24/2013
Reply


pft_man
Вроде путь присваивается до обращения по нему. Пробовал указывать путь @"С:\History\S\SBER@QJSIM", но всё-равно не работает.
Зато если закомментировать строку, в которой сохраняется путь, то всё работает, с ней не хочет.

Code

        private StorageRegistry _storageRegistry = new StorageRegistry();

        public MainWindow()
        {
            InitializeComponent();
            Connection.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()));
            _logManager.Sources.Add(Connection.SafeConnection.Trader);
            _logManager.Listeners.Add(new FileLogListener("log.txt"));
            _logManager.Listeners.Add(new GuiLogListener(_monitorWindow));
            _monitorWindow.MakeHideable();
            _myTradesWindow.MakeHideable();

            ((LocalMarketDataDrive)_storageRegistry.DefaultDrive).Path = @"С:\History"; // изменяем путь, используемый по умолчанию
            ((LocalMarketDataDrive)_storageRegistry.DefaultDrive).UseAlphabeticPath = true; // используем алфавитное хранилище

            Connection.SafeConnection.Trader.NewMyTrades += mytrades => this.GuiAsync(() =>
                    {
                        _storageRegistry.GetTradeStorage(Connection.SelectedSecurity).Save(mytrades.Select(t => t.Trade).ToList());
                    });
        }

Попробуйте перепечатать путь в строке
Code
((LocalMarketDataDrive)_storageRegistry.DefaultDrive).Path = @"С:\History"; // изменяем путь, используемый по умолчанию

может быть какой-то символ не латинский, и имя самой директории.
Если это не поможет, то надо смотреть проект, можете прислать на почту iv_qul@list.ru
Thanks: pft_man

JaguarFX

Avatar
Date: 1/19/2014
Reply


В API 4.2.1.7 у класса EmulationTrader уже нет свойства UseCandlesTimeFrame.
При этом возникает ошибка (может быть из-за отсутствия свойства, может еще что-то изменилось) - трейдер не берет имеющиеся в папке готовые свечки как ранее, а лезит сразу за сделками!
Это видно по логам:
Вместо FileAccess: C:\Users\lsa\Documents\StockSharp\Hydra\R\RIM3@FORTS\2013_04_01\candles_TimeFrameCandle_00-05-00.bin
получаю: FileAccess: C:\Users\lsa\Documents\StockSharp\Hydra\R\RIM3@FORTS\2013_04_30\trades.bin.

Пытался решить проблему установив "UseExternalCandleSource= true", но не помогло, похоже это не то свойство что надо.

Прошу пояснить как с учетом версии API 4.2.1.7 настроить работу трейдера с сохраненными свечами?
Thanks:

IvanB

Avatar
Date: 1/20/2014
Reply


lebedevsrg
В API 4.2.1.7 у класса EmulationTrader уже нет свойства UseCandlesTimeFrame.
При этом возникает ошибка (может быть из-за отсутствия свойства, может еще что-то изменилось) - трейдер не берет имеющиеся в папке готовые свечки как ранее, а лезит сразу за сделками!
Это видно по логам:
Вместо FileAccess: C:\Users\lsa\Documents\StockSharp\Hydra\R\RIM3@FORTS\2013_04_01\candles_TimeFrameCandle_00-05-00.bin
получаю: FileAccess: C:\Users\lsa\Documents\StockSharp\Hydra\R\RIM3@FORTS\2013_04_30\trades.bin.

Пытался решить проблему установив "UseExternalCandleSource= true", но не помогло, похоже это не то свойство что надо.

Прошу пояснить как с учетом версии API 4.2.1.7 настроить работу трейдера с сохраненными свечами?


Из примера к 4.2.2.2

Thanks:

JaguarFX

Avatar
Date: 1/20/2014
Reply


Иван, благодарю - помогло.
Версию я правда пока менять не стал, но нашел свойство MarketEmulator и списал туда


Появился еще такой вопрос - при экспорте данных есть параметр "sql", использование которого как заявлено должно приводить к экспорту данных в sql-сервер. Но где прописать настройки mssql сервера и саму дерективу insert?
Thanks: Aleksey24

IvanB

Avatar
Date: 1/21/2014
Reply


lebedevsrg
Иван, благодарю - помогло.
Версию я правда пока менять не стал, но нашел свойство MarketEmulator и списал туда


Появился еще такой вопрос - при экспорте данных есть параметр "sql", использование которого как заявлено должно приводить к экспорту данных в sql-сервер. Но где прописать настройки mssql сервера и саму дерективу insert?


Нужно прописать строку подключения в файле Hydra.exe.config
Здесь обсуждали данный вопрос:
http://stocksharp.com/fo...ma-tiki--zaghnat--v-sql/
Thanks:

Architectus

Avatar
Date: 3/15/2014
Reply


Подскажите, пожалуйста, какие инструменты доступны в источнике GainCapital. Не получается найти ни одного через S#.Data. Версия программы 4.2.2.14.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/15/2014
Reply


Architectus
Подскажите, пожалуйста, какие инструменты доступны в источнике GainCapital. Не получается найти ни одного через S#.Data. Версия программы 4.2.2.14.


Вам стоит обратиться к GainCapital с данным вопросом.
Thanks:

Architectus

Avatar
Date: 3/15/2014
Reply


GainCapital предоставляет исторические данные на своем сайте по ссылке http://ratedata.gaincapital.com/.
Могу ли я используя возможности программы S#.Data скачать их оттуда?
Thanks:
< 1 2 3 4  >

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

loading
clippy