← 返回

Источник данных DukasCopy

Тема для обсуждения источника данных DukasCopy в S#.Data (Гидра).

У меня следующий вопрос. Как скачать какие-либо данные с DukasCopy?

Версия Гидры 4.2.2.14. Видео по работе из данной темы посмотрел.

Не могу найти инструменты в окне Инструменты. Что надо вбивать в поиск? Я могу скачать данные отсюда http://www.dukascopy.com/swiss/ru/marketwatch/historical/ ?

评论 (19)

登录创建账户, 登录或注册以发表评论

Architectus
Architectus 作者

После обновления S# Data до версии 4.2.2.21 исчезли проблемы с источниками Форекс GainCapital и TrueFX. Стал работать поиск инструментов. Стала работать загрузка данных. Это очень радует.

С источником DukasCopy проблемы остались.

Во-первых не работает поиск инструментов. Если поднять окно Инструменты из вкладки DukasCopy, и вбить там что-то, то программа зависает намертво.

Во-вторых при добавление инструмента вручную и старте закачки появляется много раз следующая ошибка

16:37:36.310|Error  |DukasCopy |SevenZip.SevenZipLibraryException: Can not load 7-zip library or internal COM error! Message: DLL file does not exist.
   в SevenZip.SevenZipLibraryManager.LoadLibrary(Object user, Enum format)
   в SevenZip.SevenZipExtractor.Init(Stream stream)
   в StockSharp.Algo.History.Forex.DukasCopySource.#=qeBQ1iWN$6lSuqUQPkgTANg==(Byte[] #=qtvULmdvY1khuuzuZONxToA==)
   в StockSharp.Algo.History.Forex.DukasCopySource.#=qGfukoMHdADZNMcywHNPpHA==(Security #=qVndSqG8XK5cDFIvTrftqeQ==, TimeSpan #=q2dkAjXkZ3qfZGl0imGY2KQ==, DateTime #=q7qhAcUJ9_kPOhU8TJzFvvw==, Byte[] #=qxWL3U_EX$KlrzJo1YioO3Q==)
   в StockSharp.Algo.History.Forex.DukasCopySource.LoadCandles(Security security, TimeSpan timeFrame, DateTime date, OrderDirections direction)
   в StockSharp.Hydra.DukasCopy.DukasCopyTask.OnProcess()
   в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()

Инструмент добавлял EUR/USD и AUD/CAD. Никаких данных при этом естественно не загружается.

Architectus
Architectus 作者

Обновился до последней версии 4.2.2.24.

Указанные проблемы с источником DukasCopy по-прежнему присутствуют.

Mikhail Sukhov
Mikhail Sukhov

Поиск инструментов пока не сделан. А ошибку скачивания посмотрим.

Architectus
Architectus 作者

Обновился до версии S# Data 4.2.3.0.

+ Работает поиск инструментов. Причем поиск происходит моментально.

Данные качаются и качаются быстро.

- Баг с поиском инструментов. Для данного источника все валютные пары после поиска имеют шаг цены 0,0001 (вместо 0,00001), JPY пары 0,01 (вместо 0,001).

После окончания закачки данных не успокаивается и начинает непрерывно писать в лог

22:11:09.868|       |DukasCopy |Нет несохраненных дней для загрузки 00:01:00 свечек по EUR/USD@DUKAS.
22:11:09.930|Error  |DukasCopy |System.Net.WebException: The remote server returned an error: (404) Not Found.
   at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
   at System.Net.WebClient.DownloadData(Uri address)
   at StockSharp.Algo.History.Forex.DukasCopySource.LoadCandles(Security security, TimeSpan timeFrame, DateTime date, OrderDirections direction)
   at StockSharp.Hydra.DukasCopy.DukasCopyTask.OnProcess()
   at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
Mikhail Sukhov
Mikhail Sukhov

Architectus: Баг с поиском инструментов. Для данного источника все валютные пары после поиска имеют шаг цены 0,0001 (вместо 0,00001), JPY пары 0,01 (вместо 0,001).

Дукас сам такие данные возвращает. Плюс сохранение работает без ошибки кратности шага.

Насчет 404 - поправим.

Architectus
Architectus 作者

Михаил Сухов:

Architectus: Баг с поиском инструментов. Для данного источника все валютные пары после поиска имеют шаг цены 0,0001 (вместо 0,00001), JPY пары 0,01 (вместо 0,001).

Дукас сам такие данные возвращает.

По факту можно видеть, что точность составляет 5 знаков после запятой (для не JPY).

Михаил Сухов: Плюс сохранение работает без ошибки кратности шага. Вы имеете ввиду, что и выставляя такой (не совсем верный) минимальный шаг все правильно сохраняется? API само разбирается как сохранять? Если так, то надо ли где-то обращать внимание на MinStepSize (сохранение данных, разработка стратегий)?

Mikhail Sukhov
Mikhail Sukhov

Architectus: Вы имеете ввиду, что и выставляя такой (не совсем верный) минимальный шаг все правильно сохраняется? API само разбирается как сохранять?

Да... Вы пробовали запускать ДукасКопи? Он у вас работает без ошибок? Если да, то проблема с шагами цен недействительна.

Architectus
Architectus 作者

Михаил Сухов:

Architectus: Вы имеете ввиду, что и выставляя такой (не совсем верный) минимальный шаг все правильно сохраняется? API само разбирается как сохранять?

Да... Вы пробовали запускать ДукасКопи? Он у вас работает без ошибок? Если да, то проблема с шагами цен недействительна.

Я запускал Дукас с созданной ранее вручную парой EURUSD с правильным шагом. По ней закачка проходила и проходит все еще успешно. Но только по ней, как оказалось. Сейчас по найденным парам с неправильным шагом, и если исправить шаг на правильный, и даже при создании пары вручную сыпется ошибка


23:02:05.659|Error  |DukasCopy |System.ArgumentNullException: Value cannot be null.
Parameter name: security
   at StockSharp.Hydra.Core.Extensions.IsAllSecurity(Security security, IHydraTask task)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at StockSharp.Hydra.DukasCopy.DukasCopyTask.OnProcess()
   at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
23:02:05.663|Error  |DukasCopy |System.ArgumentNullException: Value cannot be null.
Parameter name: security
   at StockSharp.Hydra.Core.Extensions.IsAllSecurity(Security security, IHydraTask task)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at StockSharp.Hydra.DukasCopy.DukasCopyTask.OnProcess()
   at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
Mikhail Sukhov
Mikhail Sukhov

Architectus: Сейчас по найденным парам с неправильным шагом, и если исправить шаг на правильный, и даже при создании пары вручную сыпется ошибка

Перезапуск Гидры помогает?

Architectus
Architectus 作者

Михаил Сухов:

Architectus: Сейчас по найденным парам с неправильным шагом, и если исправить шаг на правильный, и даже при создании пары вручную сыпется ошибка

Перезапуск Гидры помогает?

Нет. И в какой-то момент у меня даже добавлять инструменты стало нельзя. Появлялась та же ошибка, только теперь при добавлении инструмента.

Я удалил базу Гидры и она создала новую. После этого ошибка "Value cannot be null" исчезла.

По минимальному шагу следующая ситуация. Я нашел инструмент USD/CHF в поиске. Для него шаг был указан 0,0001. Я решил попробовать так. Данные закачались, но сохранились неверно. При загрузке получались цены не типа 0,88000, а 8,8. Если исправлять шаг на 0,00001, то сохраняется и загружается верно. Так что оставлять 0,0001 нельзя.

Также неожиданно обнаружил, что стаканы из Dukascopy сохраняются только с 0 до 1 часа. Т.е. идут стаканы с 0 до 1 к примеру 1 числа, после 0:59 идут с 0 до 1 2-го числа и т.д. Видимо из-за этого бага скорость загрузки была такая высокая. Со свечками все в порядке.

Architectus
Architectus 作者

Обновился до S# Data 4.2.3.3.

Стаканы теперь качаются за весь день (не только с 0 до 1), но почему-то только за воскресенья. За другие дни стаканов нет. Все старые данные по DukasCopy удалял. База в этой версии создалась новая. Свечки вроде в порядке.

При поиске также инструменты получают неправильный минимальный шаг. Советую менять его на правильный перед закачкой данных.

Mikhail Sukhov
Mikhail Sukhov

Architectus: но почему-то только за воскресенья.

Пишите сразу - какой инструмент, какая дата.

Architectus
Architectus 作者

Михаил Сухов:

Architectus: но почему-то только за воскресенья.

Пишите сразу - какой инструмент, какая дата.

Инструмент EUR/USD. Начальная дата - 01.01.2010. Закачались все воскресенья по 04.05.2014.

Mikhail Sukhov
Mikhail Sukhov

Architectus: Инструмент EUR/USD. Начальная дата - 01.01.2010.

За эту дату закачалось за весь день.

Architectus
Architectus 作者

Михаил Сухов:

Architectus: Инструмент EUR/USD. Начальная дата - 01.01.2010.

За эту дату закачалось за весь день.

У меня quotes есть только по воскресеньям, candles везде есть. В 2010 г. quotes начинаются с 31.01.

Mikhail Sukhov
Mikhail Sukhov

Architectus: У меня quotes есть только по воскресеньям, candles везде есть. В 2010 г. quotes начинаются с 31.01.

Может надо удалить временную директорию?

Architectus
Architectus 作者

Михаил Сухов:

Architectus: У меня quotes есть только по воскресеньям, candles везде есть. В 2010 г. quotes начинаются с 31.01.

Может надо удалить временную директорию?

Во временной директории я не вижу и никогда не видел никаких файлов, имеющих отношение к Dukas. Тем не менее попробовал убрать временную директорию. EUR/USD все еще не грузится. Однако новый инструмент GBP/USD пошел. Может попробую еще переудалить EUR/USD данные.

Architectus
Architectus 作者

Обновился до S# Data 4.2.3.9.

Закачка данных идет без проблем.

Только обратите внимание, что при поиске инструментов они имеют неправильный минимальный шаг. Необходимо перед закачкой данных менять шаг на правильный. Для не XXXJPY пар на 0,00001. Для XXXJPY пар на 0,001.

Mikhail Sukhov
Mikhail Sukhov

Для справки.

Есть пол года назад закаченная история (выборочно) для EUR/USD. Для юнит тестов. Тесты перестали проходить успешно, так как данные отличаются от тех, что были ранее закачены, и тех, что отдаются сейчас. Качал для чистоты через стандартный веб интерфейс. Сейчас за 15 августа 2013 года выдается 60к сделок. Раньше было 65.7к. История рисуется и подрихотвывается? Неожиданно для такой распиаренной компании.