Подскажите как протестировать на истории используя свечки из текстового файла? Или вообще как можно протестировать используя внешний источник данных?
// создаем шлюз для эмуляции
// инициализируем настройки (инструмент в истории обновляется раз в секунду)
var trader = new EmulationTrader(
new[] { security },
new[] { portfolio })
{
MarketTimeChangedInterval = timeFrame,
StorageRegistry = storageRegistry,
// использовать стаканы
UseMarketDepth = emulationInfo.UseMarketDepth,
// использовать свечки
UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,
};
Из примера SampleHistoryTesting, чтобы указывать StorageRegistry = storageRegistry свой какстомный или какие есть вариации?
Комментарии (11)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
// инициализируем настройки (инструмент в истории обновляется раз в секунду) var trader = new EmulationTrader( new[] , new[] ) { MarketTimeChangedInterval = timeFrame, StorageRegistry = storageRegistry,
};
// инициализируем настройки (инструмент в истории обновляется раз в секунду) var trader = new EmulationTrader( new[] , new[] ) { MarketTimeChangedInterval = timeFrame, StorageRegistry = storageRegistry,
};
Вы не поверите, но там есть примеры) Будьте внимательнее)
Производительность тестирования на истории в текстовых файлах ниже чем при работе с бинарными файлами. Лучше с Гидрой попробовать разобраться.
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 собирает данные только фьючерсов, а акции - нет, хотя акции нужнее.
Михаил, может подскажете как прогнать свечи в EmulationTrader?
А в чем заключается плохость? Источник гидры собирает данные с FTP. Как изначально и планировалось. Если вы нашли подход лучше - сделайте свой источник. Наш работает только через FTP. Что там выкладывают - это уже дело биржи.
Демонстрация работы на свечках есть в примере SampleHistTesting.
Здесь либо самому экспериментировать, либо в техподдержку обратиться за помощью.
http://www.stocksharp.com/forum/3294/RawConvertableCandleBuilderSource/
После чего, я этим вопросом более не занимался. Если у вас получится, пожалуйста отпишитесь на форуме.