← 戻る

Тестовые данные с версией API

Добрый вечер. При скачивании любой версии S#API в примерах всегда прилагаются данные RIZ2@FORTS за 12 год длинной в месяц. Где можно взять/купить таких данных за несколько лет? Очень хочется быстро, не выходя за пределы системы менять таймфреймы на более длительные. Буду признателен за помощь.

このトピックは参考になりましたか?

トピックを共有

コメント (39)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Support
Support

Добрый день

Есть вариант с бесплатными данными http://stocksharp.ru/articles/322/konvertatsiya-istoricheskih-failov-qscalp-v-format-stocksharp/

И официально от биржи http://www.moex.com/ru/historicaldata/des

andy_baka
andy_baka 著者

Файлы скачал, даже что-то получил. Спасибо огромное. Попытался подставить в программу - естественно не заработало.

Кто сможет помочь с запуском программы на новых данных? Рассмотрю любые предложения.

Support
Support

О какой программе идёт речь?

andy_baka
andy_baka 著者

SampleHistoryTesting из инсталяционного пакета

Support
Support

А вы изменили в коде время и код инструмента?

andy_baka
andy_baka 著者

Конечно. Насколько я понял, конвертор воспользоваться которым вы предложили генерирует файлы вида orderLog.bin Программа вроде как работает, показывает стакан, но свечи не прорисовывает. Да - еще надо было поменять название инструмента и соответствующей директории на RIZ4 например, а не оставлять в формате RTS-12.14 Свечи не рисует

Support
Support

andy_baka: Конечно. Насколько я понял, конвертор воспользоваться которым вы предложили генерирует файлы вида orderLog.bin Программа вроде как работает, показывает стакан, но свечи не прорисовывает. Да - еще надо было поменять название инструмента и соответствующей директории на RIZ4 например, а не оставлять в формате RTS-12.14 Свечи не рисует

Какая у вас версия API?

andy_baka
andy_baka 著者

Support:

andy_baka: Конечно. Насколько я понял, конвертор воспользоваться которым вы предложили генерирует файлы вида orderLog.bin Программа вроде как работает, показывает стакан, но свечи не прорисовывает. Да - еще надо было поменять название инструмента и соответствующей директории на RIZ4 например, а не оставлять в формате RTS-12.14 Свечи не рисует

Какая у вас версия API? 4.4.5

JaguarFX
JaguarFX

Если ОрдерЛог не нужен и для вашей торговой стратегии достаточно М1 и выше, то есть более простой альтернативный путь, чем конвертация исторических файлов QScalp. Вариант заключается в скачивании готовых свечек М1 и более высоких тайм-фреймов с сервера Finam через S#.Data и затем их подгрузка в стратегии.

JaguarFX
JaguarFX

Стратегии тогда при тестировании на истории "восстанавливает" стаканы внутри свечки, и проводит исполнение ордеров. И кстати работает на обычных ПК гораздо быстрее чем стаканогенерация через ОрдерЛог.

Support
Support

Просьба прислать данные и изменённый пример.

andy_baka
andy_baka 著者

Support: Просьба прислать данные и изменённый пример.

Пример не изменял - всё как в инсталляторе. Файл отправил

Support
Support

Просьба написать на support@stocksharp.com

andy_baka
andy_baka 著者

отправил ссылку на файл

Support
Support

Результат тестирования по вашим файлам:

f01aebe8400089967fada1a270d5b1b5.png

andy_baka
andy_baka 著者

Очень странно - всё повторил - стакан показывает, свечи не рисует.
ProcessCandle(Candle candle) дажене вызывается. Могут временные настройки влиять?

В log файле вот такая вещь:

0001/01/01 00:00:00.000| |HistoryEmulationConnector|Connect 2014/09/14 14:45:00.000| |HistoryEmulationConnector|Создан новый портфель test account. 2014/09/14 14:45:00.000| |SS_RIZ4@FORTS_test account|Стратегия Запущена. [0,-1]. Позиция 0. 2014/09/14 14:45:00.000| |HistoryEmulationConnector|Инструмент RIZ4@FORTS зарегистрирован на получение рыночных данных для OrderLog. 2014/09/14 14:45:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -> Starting 2014/09/14 14:45:00.000|Error |HistoryBasketMessageAdapter|System.ArgumentException: Элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в Ecng.Collections.SynchronizedDictionary2.Add(TKey key, TValue value) в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataResponse(IMessageAdapter adapter, MarketDataMessage message) в StockSharp.Algo.HeartbeatMessageAdapter.OnInnerAdapterNewOutMessage(Message message) в StockSharp.Algo.SubscriptionMessageAdapter.ProcessInMarketDataMessage(MarketDataMessage message) в StockSharp.Algo.SubscriptionMessageAdapter.SendInMessage(Message message) в StockSharp.Algo.HeartbeatMessageAdapter.SendInMessage(Message message) в StockSharp.Algo.BasketMessageAdapter.ProcessMarketDataRequest(MarketDataMessage mdMsg) в StockSharp.Algo.BasketMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter.SendInMessage(Message message) 2014/09/14 14:45:00.000|Error |HistoryEmulationConnector|Ошибка регистрации инструмента RIZ4@FORTS на получение рыночных данных для OrderLog: 2014/09/14 14:45:00.000| |HistoryEmulationConnector|Инструмент RIZ4@FORTS зарегистрирован на получение рыночных данных для CandleTimeFrame 00:05:00. 2014/09/14 14:45:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Starting -> Started

Support
Support

Попробуйте версию 4.4.5.2. Был фикс с подпиской у конннектора истории.

andy_baka
andy_baka 著者

А полная версия с проектом когда будет на github?

Support
Support

Уточните ваш вопрос пожалуйста.

andy_baka
andy_baka 著者

full версия всегда идет с файлом sln для студии. Версия 4.4.5.2. только исходники. Вот и спрашиваю как собрать 😭

andy_baka
andy_baka 著者

Появилась версия 4.4.5.3 и всё заработало. Спасибо огромное! Поймал интересное явление - пропадание свечей (см фото). Снимок сделан с экрана TWS interactivebrokers. Дневки VZ. В чем может быть причина?

andy_baka
andy_baka 著者

Поисследовал, примерно понятна причина. Первая свеча отображается (см. аттач) 1 января 2018 года, хотя в хранилище она записана 2-м января. Соответственно, свеча за 5-е января попадает на выходной и игнорируется. Свече время закрытия подставляется 19:00:00, очевидно, по восточному времени сша. Не понятно как это исправить.

andy_baka
andy_baka 著者

Вот еще странность - файл первого дня (2018_01_02) тестируемого периода должен два раза загружаться?

Support
Support

Добрый день

Могли бы вы уточнить ваш вопрос?

andy_baka
andy_baka 著者

Что нужно сделать чтобы не пропадали свечи? (см. мой пост от 25.02).

Support
Support

Могли бы вы уточнить ваш вопрос? У вас не получаются все данные из TWS? Вы можете привести код?

andy_baka
andy_baka 著者

Отсутсвие прямого диалога сказывается. Постараюсь изложить детально. Сори. По шагам. Данные получил через API TWS. Со stocksharp это никак не связано. Далее сохранил их в cvs файл и импортировал гидрой в bin файлы. Далее в программе-примере HistoryTesting из инсталляционного архива версии 4.4.5.3 поменял тайм фрейм на .FromDays(1) Указываю ссылку на хранилище гидры, меняю название инструмента на VZ@NYSE, выставляю даты на 02.01.2018-22.02.2018 для краткости, выбираю "свечи" и нажимаю Старт. Программа отрисовывает свечи и завершает работу. Начинаю смотреть на рисунок - на нем слишком много гепов. Начал смотреть детально и обнаруживаю, что некоторые свечи не прорисовываются. Например, свеча за понедельник 08.02. на графике не отображена. Начал дебагером смотреть - candleProcess на этой свече не вызывается. Т.е. она пролетает где-то раньше. Дальше отображается 09.02. и так далее. Причину найти не смог. Время на компьютере стояло EST, поменял на Москву - ситуация не изменилась. В примере поменял только одну строку связанную с таймфреймом свечей - просто хотел проверить начиная с дней.

Картинки в поста ранее.

Постарался максимально подробно. Вопрос в пропадающих свечах.

Support
Support

Могли бы вы выложить данные и код тестирования?

andy_baka
andy_baka 著者

отправил на support@stocksharp.com данные и код. Программа - прямо из дистрибутива версии 4.4.5.3.

Support
Support

Добрый день

Вы можете выключить проверку дат путём редактирования ExchangeBoard.Nyse.WorkingPeriod. Удалите всё настройки у площадки перед запуском тестирования.

andy_baka
andy_baka 著者

Можно попросить код? Не сильно искушен в вашем фреймворке.

Support
Support
ExchangeBoard.Nyse.WorkingTime = null;
andy_baka
andy_baka 著者

Такой вариант я попробовал в первую очередь. Исключение вылетает. (см. Картинку)

Support
Support
ExchangeBoard.Nyse.WorkingTime = new WorkingTime();

Попробуйте такой код.

andy_baka
andy_baka
andy_baka 著者

Заработало. Спасибо большое!

andy_baka
andy_baka 著者

Следующий вопрос. При сборке решения в конфигурации Debug в log файл записывается только первая свеча. (см. img1) При переключении в конфигурцию Release следующий код

this.AddInfoLog(LocalizedStrings.Str3634Params.Put(candle.OpenTime, candle.OpenPrice, candle.HighPrice, candle.LowPrice, candle.ClosePrice, candle.TotalVolume, candle.Security));

все отрабатывает нормально и информация о всех свечах записывается в log файл.

В чем может быть проблема?

Support
Support

Добрый день

Пришлите проект для воспроизведения.

andy_baka
andy_baka 著者

Проект тот же на котором тестировали предыдущую проблему. Еще раз отправил на support@stocksharp.com

Support
Support

Добрый день

Закомментируйте строчку logManager.Dispose(); Логирование асинхронное и менеджер не успевает всё сохранить на диск.