Тиковые данные из Hydra
Atom Ответить
09.04.2012


Добрый вечер,возник вопрос
у меня есть данные сделок и стаканов, загруженные гидрой и хранящиеся в папке (допустим папка dates а в ней папки с ID инструментов)
чтобы получить данные по какому-либо инструменту нужно использовать TradingStorage.GetTradeStorage(Security)
а как мне получить список инструментов, по которым имеются данные в папке, чтобы предоставить пользователю выбор инструмента из имеющихся, на котором он будет тестировать стратегию?

я думал будет коллекция инструментов хранится в TradingStorage.Securities но при загрузке из данных RIU9@RTS (которые идут в стандартном архиве с s#) эта коллекция пуста
может я чего не правильно делаю?

хранилище создаю так

Код
storage = new TradingStorage(new InMemoryStorage())
                {
                    BasePath = "путь к данным"
                };

securityComboBox.ItemsSource = storage.Securities; //пусто (

Теги:


Спасибо:




11 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.04.2012
Ответить


art.tsgnet Перейти

Код
storage = new TradingStorage(new InMemoryStorage())
                {
                    BasePath = "путь к данным"
                };

securityComboBox.ItemsSource = storage.Securities; //пусто (


InMemoryStorage получает мета данные из памяти. Надо использовать Database
Спасибо: art.tsgnet

art.tsgnet

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


Database это класс поддерживающий интерфейс IStorage или что-то другое (физическая база данных в MS SQL?)

тоесть мне из гидры данные нужно не в файлы сохранять, а в базу данных?
если с базой данных, то как при создании хранилища передать путь к базе данных




Все, ,большое спасибо, вроде разобрался, вместе InMemorySorage использовал FileStorage
Автор топика
Спасибо:

art.tsgnet

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


ещё вопрос возник, гидра почему-то сохраняет тиковые сделки, и вот файл Security.xml не создает, и хранилище не может получить информацию об инструментах
в опциях гидры не нашел ничего
Автор топика
Спасибо:

Alexander

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


Инструменты хранятся в БД
Спасибо:

art.tsgnet

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


Я немного не понял принципа работы с БД

гидра при загрузке исторических данных автоматически загружает их в БД или она только сохраняет файлы (bin,xml)? (MS SQL SERVER )
если только файлы, то как мне в базу данных загнать инструменты? вручную?
как мне из приложения обращятся к БД? (через TradingStorage? то какой в конструкторе указывать класс с IStorage ?)

для чего вообще нужна база данных? котировки же хранятся в файлах

(версия S# и гидры 4.0.21)
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.04.2012
Ответить


art.tsgnet Перейти

для чего вообще нужна база данных? котировки же хранятся в файлах


Для Гидры - хранения инструментов. Для роботов - там еще заявки со сделками хранятся (если не интрадей).
Спасибо:

Garry

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


Присоединяюсь к вопросу, как получить список всех инструментов хранилища, созданного гидрой. При создании
var storage = new TradingStorage(new FileStorage("c:\\\\tik\\Hydra"))
{
BasePath = "c:\\\\tik\\Hydra"
};

foreach (Security sec in storage.Securities)
{
listBox1.Items.Add(sec.Code);
}
ругается что не создан файл Security.xml. Если в качестве параметра IStorage указать InMemoryStorage(), то список пустой. Что указать в качестве параметра IStorage, или тут какая-то другая логика?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 29.04.2012
Ответить


Garry Перейти
ли тут какая-то другая логика?


Тут логика как в Гидре. И работать надо с инструментами так, как в Гидре.
Спасибо:

art.tsgnet

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


Инструменты гидра не сохраняет в файлы, она их в базу сохраняет (по умолчанию SQLite, можно в файле Hydra.exe.conf изменить базу на MS SQL)
а потом уже из базы брать
вместо FileStorage нужно Database создавать
(вроде как Ecng.Data и Ecng.Data.Provider подключить нужно)
Автор топика
Спасибо: Mikhail Sukhov Garry

Garry

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


Спасибо разобрался!
Спасибо:

AlekZ

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


список инструментов можно получить например так:
Код
Console.WriteLine("Список инструментов из C:\\Users\\user\\Documents\\StockSharp\\Hydra\\StockSharp.db:");           
var db = new Database("Hydra Database", "data source=C:\\Users\\user\\Documents\\StockSharp\\Hydra\\StockSharp.db")
{
  Provider = new Ecng.Data.Providers.SQLiteDatabaseProvider()
};

var storageRegistryDb = new StorageRegistry(db);
{
  Console.WriteLine("{0}: {1} {2}", sec.Id, sec.Code, sec.Name);
}
Спасибо:


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

loading
clippy