IvanB
|
Date: 7/23/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...) и убедитесь, что путь до хранилища указывается до момента попытки сохранения в нем.
|
|
|
|
Thanks:
|
|
|
|
|
|
pft_man
|
Date: 7/23/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());
});
}
|
|
|
|
Thanks:
|
|
|
|
|
|
IvanB
|
Date: 7/24/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
|
|
|
|
|
|
|
JaguarFX
|
Date: 1/19/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 настроить работу трейдера с сохраненными свечами?
|
|
|
|
Thanks:
|
|
|
|
|
|
IvanB
|
Date: 1/20/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,
}
}
};
|
|
|
|
Thanks:
|
|
|
|
|
|
JaguarFX
|
Date: 1/20/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
|
Date: 1/21/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/
|
|
|
|
Thanks:
|
|
|
|
|
|
Architectus
|
Date: 3/15/2014
Подскажите, пожалуйста, какие инструменты доступны в источнике GainCapital. Не получается найти ни одного через S#.Data. Версия программы 4.2.2.14.
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/15/2014
Architectus:
Подскажите, пожалуйста, какие инструменты доступны в источнике GainCapital. Не получается найти ни одного через S#.Data. Версия программы 4.2.2.14.
Вам стоит обратиться к GainCapital с данным вопросом.
|
|
|
|
Thanks:
|
|
|
|
|
|
Architectus
|
Date: 3/15/2014
GainCapital предоставляет исторические данные на своем сайте по ссылке http://ratedata.gaincapital.com/.
Могу ли я используя возможности программы S#.Data скачать их оттуда?
|
|
|
|
Thanks:
|
|
|
|
|