Тестирование на истории из текстового файла
Atom Ответить
06.11.2013


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

Код
            // создаем шлюз для эмуляции
// инициализируем настройки (инструмент в истории обновляется раз в секунду)
var trader = new EmulationTrader(
    new[] { security },
    new[] { portfolio })
{
    MarketTimeChangedInterval = timeFrame,
    StorageRegistry = storageRegistry,
 
    // использовать стаканы
    UseMarketDepth = emulationInfo.UseMarketDepth,
 
    // использовать свечки
    UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,
};


Из примера SampleHistoryTesting, чтобы указывать StorageRegistry = storageRegistry свой какстомный или какие есть вариации?

Теги:


Спасибо:




11 Ответов
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
Ответить


https://www.stocksharp.co...ableCandleBuilderSource/

После чего, я этим вопросом более не занимался. Если у вас получится, пожалуйста отпишитесь на форуме.
Спасибо:

Mikhail Sukhov

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


Andrii Перейти

Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. Crying


А что с ним такого?
Спасибо:

Andrii

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


Михаил Сухов Перейти
Andrii Перейти

Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. Crying


А что с ним такого?


Давно уже писал, что UX собирает данные только фьючерсов, а акции - нет, хотя акции нужнее.

Михаил, может подскажете как прогнать свечи в EmulationTrader?
Автор топика
Спасибо:

Mikhail Sukhov

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


Andrii Перейти
Михаил Сухов Перейти
Andrii Перейти

Гидра, ксожелению, отпадает, так как там плохо реализован источник UX. Crying


А что с ним такого?


Давно уже писал, что UX собирает данные только фьючерсов, а акции - нет, хотя акции нужнее.

Михаил, может подскажете как прогнать свечи в EmulationTrader?


А в чем заключается плохость? Источник гидры собирает данные с FTP. Как изначально и планировалось. Если вы нашли подход лучше - сделайте свой источник. Наш работает только через FTP. Что там выкладывают - это уже дело биржи.

Демонстрация работы на свечках есть в примере SampleHistTesting.
Спасибо:


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

loading
clippy