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

Урок 7. Сохранение и накопление данных
Atom
18.06.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,

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

Теги:


Спасибо:


< 1 2 3 4  >
IvanB

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


pft_man

...

Код

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


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

Код

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


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

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

pft_man

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


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

Код

        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 (339)
Спасибо:

IvanB

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


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

Код

        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());
                    });
        }

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

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

JaguarFX

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


В 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 настроить работу трейдера с сохраненными свечами?
Спасибо:

IvanB

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


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

Спасибо:

JaguarFX

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


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


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

IvanB

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


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


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


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

Architectus

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


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

Mikhail Sukhov

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


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


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

Architectus

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


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

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

loading
clippy