Урок 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]

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

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

Полезные ссылки: Документация по 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()); });

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

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

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());
                });
    }
Попробуйте перепечатать путь в строке
```csharp
((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


				// создаем подключение для эмуляции
				// инициализируем настройки (инструмент в истории обновляется раз в секунду)
				var connector = new HistoryEmulationConnector(
					new[] { security },
					new[] { portfolio })
				{
					StorageRegistry = storageRegistry,

					MarketEmulator =
					{
						Settings =
						{
							// использовать стаканы
							UseMarketDepth = emulationInfo.UseMarketDepth,

							// использовать свечки
							UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,

							// проверка что стаканы соответствуют сделкам. Улучшает реалистичность тестирования.
							SyncDepthToTrades = true,

							// сведение сделки в эмуляторе если цена коснулась нашей лимитной заявки. 
							// Если выключено - требуется "прохождение цены сквозь уровень"
							// (более "суровый" режим тестирования.)
							FillOnTouch = false,
						}
					}
				};

Спасибо:

JaguarFX

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


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

        trader.MarketEmulator.Settings.UseMarketDepth = true;
        trader.MarketEmulator.Settings.UseCandlesTimeFrame = timeFarame;
        trader.MarketEmulator.Settings.SyncDepthToTrades = true;
        trader.MarketEmulator.Settings.FillOnTouch = true;

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

Спасибо: Aleksey24

IvanB

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


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

        trader.MarketEmulator.Settings.UseMarketDepth = true;
        trader.MarketEmulator.Settings.UseCandlesTimeFrame = timeFarame;
        trader.MarketEmulator.Settings.SyncDepthToTrades = true;
        trader.MarketEmulator.Settings.FillOnTouch = true;

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

Нужно прописать строку подключения в файле Hydra.exe.config Здесь обсуждали данный вопрос: http://stocksharp.com/forum/3729/Kak-dannyie-s-finama-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