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());
});
}
|
|
Спасибо:
|
|
|
|
|
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
|
|
|
|
|
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?
|
|
|
|
|
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/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 скачать их оттуда?
|
|
Спасибо:
|
|
|
|