Bond
|
Дата: 06.11.2013
Andrii Подскажите как протестировать на истории используя свечки из текстового файла? Или вообще как можно протестировать используя внешний источник данных? Код
// создаем шлюз для эмуляции
// инициализируем настройки (инструмент в истории обновляется раз в секунду)
var trader = new EmulationTrader(
new[] { security },
new[] { portfolio })
{
MarketTimeChangedInterval = timeFrame,
StorageRegistry = storageRegistry,
// использовать стаканы
UseMarketDepth = emulationInfo.UseMarketDepth,
// использовать свечки
UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,
};
Из примера SampleHistoryTesting, чтобы указывать StorageRegistry = storageRegistry свой какстомный или какие есть вариации? На форуме есть раздел Тестирование. Вам туда. Читайте сообщения от других участников форума, пользуйтесь поиском и справкой, и вопросы закроются сами собой.
|
|
Спасибо:
|
|
|
|
|
Andrii
|
Дата: 06.11.2013
Bond Andrii Подскажите как протестировать на истории используя свечки из текстового файла? Или вообще как можно протестировать используя внешний источник данных? Код
// создаем шлюз для эмуляции
// инициализируем настройки (инструмент в истории обновляется раз в секунду)
var trader = new EmulationTrader(
new[] { security },
new[] { portfolio })
{
MarketTimeChangedInterval = timeFrame,
StorageRegistry = storageRegistry,
// использовать стаканы
UseMarketDepth = emulationInfo.UseMarketDepth,
// использовать свечки
UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,
};
Из примера SampleHistoryTesting, чтобы указывать StorageRegistry = storageRegistry свой какстомный или какие есть вариации? На форуме есть раздел Тестирование. Вам туда. Читайте сообщения от других участников форума, пользуйтесь поиском и справкой, и вопросы закроются сами собой. Спасибо, аналогичный вопрос есть и в тестировании. Можете помочь найти с примером или показать как сделать?
|
|
Спасибо:
|
|
|
|
|
Bond
|
Дата: 06.11.2013
Вы не поверите, но там есть примеры) Будьте внимательнее)
|
|
Спасибо:
|
|
|
|
|
Andrii
|
Дата: 06.11.2013
Bond Вы не поверите, но там есть примеры) Будьте внимательнее) Примеры есть, но они используют LocalMarketDataDrive как в примере и в этом постено мне нужно брать из текстового файла, так как гидра не работает из UX источником. Нужен пример где тестируется на истории из файла, если можете, скиньте ссылку на пост.
|
|
Спасибо:
|
|
|
|
|
Bond
|
Дата: 06.11.2013
Производительность тестирования на истории в текстовых файлах ниже чем при работе с бинарными файлами. Лучше с Гидрой попробовать разобраться. Код
private IEnumerable<Candle> GetHistoryCandles()
{
try
{
//закачка из текстового файла
return CultureInfo.InvariantCulture.DoInCulture(
() => File.ReadAllLines("LKOH.txt").Select(
line =>
{
var timeFrame = (TimeSpan) _series.Arg;
var parts = line.Split(";");
var time = parts[0].ToDateTime("yyyy-MM-dd HH:mm:ss");
return new TimeFrameCandle()
{
OpenPrice = parts[1].To<decimal>(),
HighPrice = parts[2].To<decimal>(),
LowPrice = parts[3].To<decimal>(),
ClosePrice = parts[4].To<decimal>(),
TimeFrame = timeFrame,
OpenTime = time,
CloseTime = time + timeFrame,
TotalVolume = parts[5].To<decimal>(),
Security = Connection.SelectedSecurity,
State = CandleStates.Finished
};
}).ToArray());
|
|
Спасибо:
|
|
|
|
|
Andrii
|
Дата: 06.11.2013
|
|
|
|
Bond Производительность тестирования на истории в текстовых файлах ниже чем при работе с бинарными файлами. Лучше с Гидрой попробовать разобраться. Код
private IEnumerable<Candle> GetHistoryCandles()
{
try
{
//закачка из текстового файла
return CultureInfo.InvariantCulture.DoInCulture(
() => File.ReadAllLines("LKOH.txt").Select(
line =>
{
var timeFrame = (TimeSpan) _series.Arg;
var parts = line.Split(";");
var time = parts[0].ToDateTime("yyyy-MM-dd HH:mm:ss");
return new TimeFrameCandle()
{
OpenPrice = parts[1].To<decimal>(),
HighPrice = parts[2].To<decimal>(),
LowPrice = parts[3].To<decimal>(),
ClosePrice = parts[4].To<decimal>(),
TimeFrame = timeFrame,
OpenTime = time,
CloseTime = time + timeFrame,
TotalVolume = parts[5].To<decimal>(),
Security = Connection.SelectedSecurity,
State = CandleStates.Finished
};
}).ToArray());
Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. [crying] Этот пример, конечно же, видел и как раз исходя из него и этот вопрос. В текущем коде получается только набор свеч, но как этот набор прогнать в EmulationTrader, можно ли эти все свечи зарегистрировать в нем? Код
var trader = new EmulationTrader(new[] { security },new[] { portfolio })
{
};
|
|
Спасибо:
|
|
|
|
|
Bond
|
Дата: 06.11.2013
Здесь либо самому экспериментировать, либо в техподдержку обратиться за помощью.
|
|
Спасибо:
|
|
|
|
|
Иван З.
|
Дата: 06.11.2013
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 06.11.2013
Andrii Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. [crying]
А что с ним такого?
|
|
Спасибо:
|
|
|
|
|
Andrii
|
Дата: 08.11.2013
Михаил Сухов Andrii Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. [crying]
А что с ним такого? Давно уже писал, что UX собирает данные только фьючерсов, а акции - нет, хотя акции нужнее. Михаил, может подскажете как прогнать свечи в EmulationTrader?
|
|
Спасибо:
|
|
|
|