← 戻る

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

Небольшой баг с автопоиском инструментов в Гидре 4.2.2.21. Для данного источника все валютные пары после поиска имеют шаг цены 0,0001. Соответственно если не исправить его для не JPY пар на 0,00001, то качаться они не будут и появятся ошибки. Для пар с валютой котировки JPY точность 0,0001 избыточна. Правильно - 0,001. Впрочем, возможно, это не проблема.

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

トピックを共有

コメント (46)

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

Architectus
Architectus 著者

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

После старта закачки, данные не загружаются. Вместо этого появляются ошибки раз в 7-10 минут.


15:03:43.738|       |TrueFX    |Инициализируется.
15:03:43.754|       |TrueFX    |Перешел в состояние Starting.
15:03:43.755|       |TrueFX    |Перешел в состояние Started.
15:12:28.567|Error  |TrueFX    |Ionic.Zip.BadReadException: Could not read block - no data!  (position 0x0294A1ED)
   at Ionic.Zip.SharedUtilities._ReadFourBytes(Stream s, String message)
   at Ionic.Zip.ZipEntry.HandleUnexpectedDataDescriptor(ZipEntry entry)
   at Ionic.Zip.ZipEntry.ReadEntry(ZipContainer zc, Boolean first)
   at Ionic.Zip.ZipFile.ReadIntoInstance_Orig(ZipFile zf)
   at Ionic.Zip.ZipFile.ReadIntoInstance(ZipFile zf)
   at Ionic.Zip.ZipFile.Read(Byte[] buffer, TextWriter statusMessageWriter, Encoding encoding)
   at StockSharp.Algo.History.Forex.TrueFXSource.#=qmWdy_jATEBUa49BvNpa5EdYHjduRa5MVBivZi8A9jE0=.#=qwP6BMvI3rwdKiXw7iN5xskY6ek5VztJ3XP_X4QXznXQ=()
   at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
   at StockSharp.Algo.History.Forex.TrueFXSource.LoadTicks(Security security, DateTime date)
   at StockSharp.Hydra.TrueFX.TrueFXTask.OnProcess()
   at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
15:21:16.679|Error  |TrueFX    |Ionic.Zip.BadReadException: Could not read block - no data!  (position 0x0294A1ED)
   at Ionic.Zip.SharedUtilities._ReadFourBytes(Stream s, String message)
   at Ionic.Zip.ZipEntry.HandleUnexpectedDataDescriptor(ZipEntry entry)
   at Ionic.Zip.ZipEntry.ReadEntry(ZipContainer zc, Boolean first)
   at Ionic.Zip.ZipFile.ReadIntoInstance_Orig(ZipFile zf)
   at Ionic.Zip.ZipFile.ReadIntoInstance(ZipFile zf)
   at Ionic.Zip.ZipFile.Read(Byte[] buffer, TextWriter statusMessageWriter, Encoding encoding)
   at StockSharp.Algo.History.Forex.TrueFXSource.#=qmWdy_jATEBUa49BvNpa5EdYHjduRa5MVBivZi8A9jE0=.#=qwP6BMvI3rwdKiXw7iN5xskY6ek5VztJ3XP_X4QXznXQ=()
   at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
   at StockSharp.Algo.History.Forex.TrueFXSource.LoadTicks(Security security, DateTime date)
   at StockSharp.Hydra.TrueFX.TrueFXTask.OnProcess()
   at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()

Mikhail Sukhov
Mikhail Sukhov

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

После старта закачки, данные не загружаются. Вместо этого появляются ошибки раз в 7-10 минут.

Не удается найти проблему. Видимо это какой-то единичный инструмент. Можете попробовать локализовать его? Надо попеременно менять с ALL на какой-то конкретный инструмент. Или посмотреть по датам, какой инструмент не качается.

Architectus
Architectus 著者

У меня по парам EURUSD и GBPUSD уже закачаны данные с 2010 г. по февраль 2014. Соответственно из-за них и была проблема. Запустил закачку по другой паре, она успешно стартовала с 2010 г. Если в источнике еще не появились новые данные (за март), то ошибка только в непонимании Гидрой конца закачки по инструменту.

Mikhail Sukhov
Mikhail Sukhov

Не уверен что понял. Если данные пары не качаются то откуда данные?

Architectus
Architectus 著者

Качать данные с TrueFX можно. По парам EURUSD и GBPUSD я качал данные ранее. Тогда все закачалось. Теперь соответственно ошибка (при том что данные по 28.02.2014 уже есть). Я попробовал другую пару (по которой не было данных) - по ней все качается. Если в TrueFX данные есть только по февраль 2014, то ошибка связана с непониманием Гидры, что качать по тому или иному инструменту больше нечего. И она вместо перехода к следующему инструменту кидает эту ошибку раз за разом.

Architectus
Architectus 著者

Проверил www.truefx.com, данные и за март, и за апрель уже есть.

А дело похоже в следующем. У меня в TemporaryFiles лежал файл EUR_USD_201403.zip c 0 размером. Об него собственно Гидра и спотыкалась, пытаясь загрузить из него данные за март 2014. Я его удалил и все наладилось. Также стало ясно, откуда он взялся. После загрузки за март и за апрель данных, в TemporaryFiles появился файл EUR_USD_201405.zip с 0 размером. Т.е. после загрузки данных за предыдущий месяц появляется битый архив за месяц текущий. После старта источника этот битый архив каждый раз появляется снова (если его удалить) (сейчас за май 2014). А так конец загрузки проходит корректно.

Также у меня перестал работать поиск инструментов в данном источнике.

Architectus
Architectus 著者

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

Поиск инструментов заработал.

По-поводу ошибки "Ionic.Zip.BadReadException: Could not read block - no data!" могу сказать следующее. Она возникает при попытке чтения битого файла архива. Для пользователя тут 2 варианта - найти и удалить соответствующий архив из TemporaryFiles или зачистить все в TemporaryFiles. Вариант для разработчиков - перекачивать нужный архив при возникновении такой ошибки. Помимо архива за последний месяц (когда данных в источнике еще нет) с нулевым размером, бывает и что какой-либо архив скачивается не полностью.

Architectus
Architectus 著者

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

Были закачаны данные по EURUSD по апрель 2014. Хотел докачать за май. После старта Гидры в TemporaryFiles появились пустые архивы за каждый месяц периода 01.2010-06.2014. После чего произошло окончание итерации.

devruss
devruss

Попробовал закачать данные с TrueFX - во-первых, нигде не спрашивает пароль на аккаунт, это так надо? А во-вторых данные в импорте помечены как D (дневные?) и они вообще не скачиваются (поставил скачивать с начала 2014 года)

UPDATE: В /TemproraryFiles/ все файлы размером в 0 байт.

devruss
devruss

Несмотря на новый билд, все равно ничего не скачивается. Файлы с 0 размером пропали, теперь вообще нет никаких файлов. В логах есть запись "Старт загруки сделок за xx.xx.xxxx для xx/xx@TRUEFX", но никакой информации не скачивается, прошло 3 часа, никаких данных вообще не скачалось

Mikhail Sukhov
Mikhail Sukhov

devruss: никаких данных вообще не скачалось

Может скачивать нечего.

Architectus
Architectus 著者

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

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

23:22:12.510| |TrueFX |Старт загрузки сделок за 01.01.2010 для EUR/USD@TRUEFX. 23:22:13.680| |TrueFX |Старт загрузки сделок за 02.01.2010 для EUR/USD@TRUEFX. 23:22:14.162| |TrueFX |Старт загрузки сделок за 09.01.2010 для EUR/USD@TRUEFX. 23:22:14.644| |TrueFX |Старт загрузки сделок за 16.01.2010 для EUR/USD@TRUEFX. 23:22:15.119| |TrueFX |Старт загрузки сделок за 23.01.2010 для EUR/USD@TRUEFX. ...

И так за каждый день от начала периода скачивания до сегодня. При этом TemporaryFiles оставался пустым, и никаких новых данных не закачалось. У меня данные по апрель закачаны. Сейчас уже на http://truefx.com/ выложены данные за май. Они должны бы докачаться, но этого не происходит. Ну а файлов с размером 0 действительно нет.

Mikhail Sukhov
Mikhail Sukhov

Architectus: выложены данные за май.

В логах есть сообщение про май?

devruss
devruss

Architectus: Обновился до S# Data 4.2.3.10

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

23:22:12.510| |TrueFX |Старт загрузки сделок за 01.01.2010 для EUR/USD@TRUEFX. 23:22:13.680| |TrueFX |Старт загрузки сделок за 02.01.2010 для EUR/USD@TRUEFX. 23:22:14.162| |TrueFX |Старт загрузки сделок за 09.01.2010 для EUR/USD@TRUEFX. 23:22:14.644| |TrueFX |Старт загрузки сделок за 16.01.2010 для EUR/USD@TRUEFX. 23:22:15.119| |TrueFX |Старт загрузки сделок за 23.01.2010 для EUR/USD@TRUEFX. ...

абсолютно аналогичная ситуация. Я поставил закачку только 2014 года, сообщение о старте есть на каждый торговый день, а данных нет

Architectus
Architectus 著者

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

Architectus: выложены данные за май.

В логах есть сообщение про май?

Да


23:24:52.878|       |TrueFX    |Старт загрузки сделок за 01.05.2014 для EUR/USD@TRUEFX.
23:24:53.346|       |TrueFX    |Старт загрузки сделок за 02.05.2014 для EUR/USD@TRUEFX.
23:24:53.814|       |TrueFX    |Старт загрузки сделок за 03.05.2014 для EUR/USD@TRUEFX.
23:24:54.285|       |TrueFX    |Старт загрузки сделок за 04.05.2014 для EUR/USD@TRUEFX.
23:24:55.027|       |TrueFX    |Старт загрузки сделок за 05.05.2014 для EUR/USD@TRUEFX.
23:24:55.499|       |TrueFX    |Старт загрузки сделок за 06.05.2014 для EUR/USD@TRUEFX.
23:24:55.966|       |TrueFX    |Старт загрузки сделок за 07.05.2014 для EUR/USD@TRUEFX.
23:24:56.432|       |TrueFX    |Старт загрузки сделок за 08.05.2014 для EUR/USD@TRUEFX.
23:24:56.899|       |TrueFX    |Старт загрузки сделок за 09.05.2014 для EUR/USD@TRUEFX.
23:24:57.365|       |TrueFX    |Старт загрузки сделок за 10.05.2014 для EUR/USD@TRUEFX.
23:24:57.825|       |TrueFX    |Старт загрузки сделок за 11.05.2014 для EUR/USD@TRUEFX.
23:24:58.294|       |TrueFX    |Старт загрузки сделок за 12.05.2014 для EUR/USD@TRUEFX.
23:24:58.766|       |TrueFX    |Старт загрузки сделок за 13.05.2014 для EUR/USD@TRUEFX.
23:24:59.234|       |TrueFX    |Старт загрузки сделок за 14.05.2014 для EUR/USD@TRUEFX.
23:24:59.699|       |TrueFX    |Старт загрузки сделок за 15.05.2014 для EUR/USD@TRUEFX.
23:25:00.158|       |TrueFX    |Старт загрузки сделок за 16.05.2014 для EUR/USD@TRUEFX.
23:25:00.631|       |TrueFX    |Старт загрузки сделок за 17.05.2014 для EUR/USD@TRUEFX.
23:25:01.115|       |TrueFX    |Старт загрузки сделок за 18.05.2014 для EUR/USD@TRUEFX.
23:25:01.585|       |TrueFX    |Старт загрузки сделок за 19.05.2014 для EUR/USD@TRUEFX.
23:25:02.051|       |TrueFX    |Старт загрузки сделок за 20.05.2014 для EUR/USD@TRUEFX.
23:25:02.520|       |TrueFX    |Старт загрузки сделок за 21.05.2014 для EUR/USD@TRUEFX.
23:25:02.989|       |TrueFX    |Старт загрузки сделок за 22.05.2014 для EUR/USD@TRUEFX.
23:25:03.457|       |TrueFX    |Старт загрузки сделок за 23.05.2014 для EUR/USD@TRUEFX.
23:25:03.925|       |TrueFX    |Старт загрузки сделок за 24.05.2014 для EUR/USD@TRUEFX.
23:25:04.386|       |TrueFX    |Старт загрузки сделок за 25.05.2014 для EUR/USD@TRUEFX.
23:25:04.855|       |TrueFX    |Старт загрузки сделок за 26.05.2014 для EUR/USD@TRUEFX.
23:25:05.318|       |TrueFX    |Старт загрузки сделок за 27.05.2014 для EUR/USD@TRUEFX.
23:25:05.779|       |TrueFX    |Старт загрузки сделок за 28.05.2014 для EUR/USD@TRUEFX.
23:25:06.239|       |TrueFX    |Старт загрузки сделок за 29.05.2014 для EUR/USD@TRUEFX.
23:25:06.582|       |TrueFX    |Старт загрузки сделок за 30.05.2014 для EUR/USD@TRUEFX.
23:25:07.055|       |TrueFX    |Старт загрузки сделок за 31.05.2014 для EUR/USD@TRUEFX.

Других сообщений, о факте загрузки или ошибок, нет

Mikhail Sukhov
Mikhail Sukhov

Architectus:

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

Architectus: выложены данные за май.

В логах есть сообщение про май?

Да

23:24:52.878| |TrueFX |Старт загрузки сделок за 01.05.2014 для EUR/USD@TRUEFX. 23:24:53.346| |TrueFX |Старт загрузки сделок за 02.05.2014 для EUR/USD@TRUEFX.

> 
> Других сообщений, о факте загрузки или ошибок, нет

А вот за эти даты были удалены файлы из TempData? Те, что нулевую длину имеют.
Architectus
Architectus 著者

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

Architectus:

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

Architectus: выложены данные за май.

В логах есть сообщение про май?

Да

23:24:52.878| |TrueFX |Старт загрузки сделок за 01.05.2014 для EUR/USD@TRUEFX. 23:24:53.346| |TrueFX |Старт загрузки сделок за 02.05.2014 для EUR/USD@TRUEFX.

> >
> > Других сообщений, о факте загрузки или ошибок, нет
> 
> А вот за эти даты были удалены файлы из TempData? Те, что нулевую длину имеют.

Если речь про TemporaryFiles, то никаких файлов там нет и я не видел, чтобы они там были. Файлы с нулевой длиной появлялись в 4.2.3.9, в 4.2.3.10 не появляются.
devruss
devruss

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

Architectus:

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

Architectus: выложены данные за май.

В логах есть сообщение про май?

Да

23:24:52.878| |TrueFX |Старт загрузки сделок за 01.05.2014 для EUR/USD@TRUEFX. 23:24:53.346| |TrueFX |Старт загрузки сделок за 02.05.2014 для EUR/USD@TRUEFX.

> >
> > Других сообщений, о факте загрузки или ошибок, нет
> 
> А вот за эти даты были удалены файлы из TempData? Те, что нулевую длину имеют.

Пока я руками не удалил все данные из TempData у меня вообще закачка не начиналась
Mikhail Sukhov
Mikhail Sukhov

Architectus: Если речь про TemporaryFiles, то никаких файлов там нет и я не видел, чтобы они там были. Файлы с нулевой длиной появлялись в 4.2.3.9, в 4.2.3.10 не появляются.

А вы уверен что нет файлов? Может быть данные все таки скачались уже ранее? Потому что я вот сейчас проверил - за май закачалось.

Architectus
Architectus 著者

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

Architectus: Если речь про TemporaryFiles, то никаких файлов там нет и я не видел, чтобы они там были. Файлы с нулевой длиной появлялись в 4.2.3.9, в 4.2.3.10 не появляются.

А вы уверен что нет файлов? Может быть данные все таки скачались уже ранее? Потому что я вот сейчас проверил - за май закачалось.

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

Для эксперимента попробовал скачать данные по AUDJPY. Ранее данные не скачивал по этой паре. Даже папка не появилась. Никаких данных во временной директории тоже нет. По данным Process Monitor Hydra.exe делала WriteFile только в логи. Есть также записи типа ...\HydraData\TemporaryFiles\AUD__JPY_marketdepth_2014_05.zip с типом QueryOpen и результатом NAME NOT FOUND. Т.е. гидра посмотрела есть ли временные файлы, обнаружила что их нет и все.

Mikhail Sukhov
Mikhail Sukhov

Architectus:

Инструмент и точная дата.

Architectus
Architectus 著者

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

Architectus:

Инструмент и точная дата.

EURUSD Начальная дата - 2010-01-01. Данные закачаны по 2014-04-30. GBPUSD Начальная дата - 2014-01-01. Данные закачаны по 2014-02-28. AUDJPY Начальная дата - 2014-01-01. Данные не закачаны.

Сегодня запускал закачку (отдельно по каждому из инструментов) с версией Гидры 4.2.3.10. В папке TemporaryFiles до и после работы Гидры пусто.

Mikhail Sukhov
Mikhail Sukhov

Architectus:

Мне лишь одна дата нужна. Попробуйте выставить 5-ый месяц. Закачивать с мая. По какому-то одному инструменту.

Architectus
Architectus 著者

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

Architectus:

Мне лишь одна дата нужна. Попробуйте выставить 5-ый месяц. Закачивать с мая. По какому-то одному инструменту.

Не совсем понял, что именно нужно. Поставил начальную дату на 2014-05-01. Инструмент AUDJPY. Поведение такое же.

Mikhail Sukhov
Mikhail Sukhov

Architectus:

Видимо что-то с текущим состоянием на диске. Попробуйте запустить Гидру еще где-то у себя. Будут ли там такие проблемы.

devruss
devruss

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

Architectus:

Видимо что-то с текущим состоянием на диске. Попробуйте запустить Гидру еще где-то у себя. Будут ли там такие проблемы.

Михаил, у меня та же самая проблема - места свободного еще гигов 400, но абсолютно ничего не закачивается

Mikhail Sukhov
Mikhail Sukhov

devruss: Михаил, у меня та же самая проблема - места свободного еще гигов 400, но абсолютно ничего не закачивается

Format C:\ 😀

А так может вас уже забанили. Там же по IP банят, если что.

devruss
devruss

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

devruss: Михаил, у меня та же самая проблема - места свободного еще гигов 400, но абсолютно ничего не закачивается

Format C:\ 😀

А так может вас уже забанили. Там же по IP банят, если что.

Это шутка такая? Может и винду тогда после каждого билда Гидры переустанавливать? То, что программа работает у тебя (как у разработчика), говорит только о том, что ты смог ее не только закодить, но и запустить. А вот то, что она не работает у 2х независимых пользователей, говорит о том, что данный коннектор НЕ РАБОТАЕТ. На сайт захожу свободно и вручную могу скачать любую историю, так что все-таки проблемы в коннекторе

Мне все равно, FX не торгую, но то, что каждую ошибку и нерабочий билд надо неделями доказывать, начинает немного раздражать. Посмотри на количество активных пользователей на форуме и в чате, почти никого, кто был еще в январе уже нет - все, кто еще год назад на smartlab писали статьи про то, как круто делать роботов на S# больше этого не делают. Сколько новых активных тем создается и сколько пользователей постят? Может стоит все-таки стать более клиент ориентированным бизнесом и лучше относиться к пользователям, которые тратят свое время на репорты об ошибках и багах?

Architectus
Architectus 著者

Михаил Сухов: Видимо что-то с текущим состоянием на диске. Попробуйте запустить Гидру еще где-то у себя. Будут ли там такие проблемы.

Я попробовал запустить Гидру с другого диска и сохранять в другом месте данные. Также сменил IP адрес. Никакого эффекта это не принесло.

Mikhail Sukhov
Mikhail Sukhov

Architectus: Я попробовал запустить Гидру с другого диска и сохранять в другом месте данные. Также сменил IP адрес. Никакого эффекта это не принесло.

  1. Пропишите путь в exe.Config на локальную директорию. Там где сейчас указано %Documents%. Так БД будет создана отдельная для теста.

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

Если просто гидру из другого места запустить, но настройки не менять - то ничего не меняется.

Architectus
Architectus 著者

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

Architectus: Я попробовал запустить Гидру с другого диска и сохранять в другом месте данные. Также сменил IP адрес. Никакого эффекта это не принесло.

  1. Пропишите путь в exe.Config на локальную директорию. Там где сейчас указано %Documents%. Так БД будет создана отдельная для теста.

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

Если просто гидру из другого места запустить, но настройки не менять - то ничего не меняется.

Все то же самое.

Mikhail Sukhov
Mikhail Sukhov

Architectus: Все то же самое.

Гидра скачена с сайта, установлена. Настройки в локальную папку, как я описывал выше. Результат работы на скрине:

Попробуйте совсем на чистом компьютере. Или ваш IP внесен уже в черный список.

Architectus
Architectus 著者

Михаил Сухов: Попробуйте совсем на чистом компьютере. Или ваш IP внесен уже в черный список.

Я уже писал выше, что пробовал другой IP. В любом случае Гидра работает некорректно. Уж если не получается загрузить, то нужно где-то писать ошибку.

Mikhail Sukhov
Mikhail Sukhov

Architectus: Я уже писал выше, что пробовал другой IP.

Это другой комп или что?

Architectus
Architectus 著者

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

Architectus: Я уже писал выше, что пробовал другой IP.

Это другой комп или что?

Комп этот же. IP другой. Хотя, конечно, MAC тот же. Вообще я не качал ни много, ни часто. Да и проблемы подтвердил devruss. Согласитесь, что вероятность, что проблема связана с каким-то хитрым баном 1 из 100.

Mikhail Sukhov
Mikhail Sukhov

Про бан отметаем тогда. Значит настройки. Пришлите исправленный конфиг файл.

Architectus
Architectus 著者

Михаил Сухов: Про бан отметаем тогда. Значит настройки. Пришлите исправленный конфиг файл.

В смысле с некой БД не в Documents? Менял только это от дефолта


<connectionStrings>
		<!--<add name="SqlServerConStr" connectionString="Server=.\SQLExpress;Database=Trading;User ID=trading;Password=trading;" providerName=""/>-->
		<add name="SQLiteConStr" connectionString="Data Source=C:\HydraTestFolder\StockSharp.db" providerName="System.Data.SQLite"/>
</connectionStrings>

Кстати еще пробовал удалить старую Гидру и перекачать с нуля. Это также не помогло.

Mikhail Sukhov
Mikhail Sukhov

Architectus: Кстати еще пробовал удалить старую Гидру и перекачать с нуля. Это также не помогло.

В конфиг файле 2 пути. Посмотрите поиском по фразе %Documents%. Эти 2 пути замените на какой-то свой. Далее, запустите Гидру, включите TrueFX, скачайте инструменты, добавьте один и выберите нужную дату. При этом путь к данным тоже должен быть неиспользованный ранее.

Architectus
Architectus 著者

Возобновил тестирование.

  1. Скачал файл установщика с сайта. Установил Гидру. Версия - 4.2.3.19.
  2. Не запуская Гидру правлю конфиг.
<?xml version="1.0"?> <configuration> <configSections> <section name="hydra" type="StockSharp.Hydra.Configuration.HydraSection, Hydra"/> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/> </configSections>
<runtime>
	<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
		<probing privatePath="Plugins"/>
	</assemblyBinding>
</runtime>

<startup>
	<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
</startup>
<system.data>
	<DbProviderFactories>
		<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
	</DbProviderFactories>
</system.data>

<appSettings>
	<add key="settingsPath" value=**"K:\Trading\HydraTestFolder\"**/>
	<add key="txt_export_trades" value="{Time:yyyy-MM-dd HH:mm:ss.FFFFFF};{Id};{Price};{Volume};{OrderDirection}"/>
	<add key="txt_export_securities" value="{Code};{ExchangeBoard.Code};{PriceStep};{StepPrice};{Type};{VolumeStep};{Decimals}"/>
	<add key="txt_export_orderlog" value="{Order.Time:yyyy-MM-dd HH:mm:ss.FFFFFF};{Order.IsSystem};{Order.Id};{Order.Price};{Order.Volume};{Order.Direction};{Order.State};{Order.TimeInForce};{Trade.Id};{Trade.Price}"/>
	<add key="txt_export_news" value="{Time:yyyy-MM-dd HH:mm:ss.FFFFFF};{Headline};{Source};{Url}"/>
	<add key="txt_export_level1" value="{LocalTimeStamp:yyyy-MM-dd};{LocalTimeStamp:HH:mm:ss.FFFFFF};{Changes:{BestBidPrice};{BestBidVolume};{BestAskPrice};{BestAskVolume};{LastTradeTime:HH:mm:ss.FFFFFF};{LastTradePrice};{LastTradeVolume}}"/>
	<add key="txt_export_depths" value="{Time:yyyy-MM-dd HH:mm:ss.FFFFFF};{Price};{Volume};{OrderDirection}"/>
	<add key="txt_export_candles" value="{OpenTime:yyyy-MM-dd HH:mm:ss};{OpenPrice};{HighPrice};{LowPrice};{ClosePrice};{TotalVolume}"/>
</appSettings>

<connectionStrings>
	<!--<add name="SqlServerConStr" connectionString="Server=.\SQLExpress;Database=Trading;User ID=trading;Password=trading;" providerName=""/>-->
	<add name="SQLiteConStr" connectionString=**"Data Source=K:\Trading\HydraTestFolder\StockSharp.db"** providerName="System.Data.SQLite"/>
</connectionStrings>

<hydra>
	<candles>
		<candle name="Time Frame" type="StockSharp.Algo.Candles.TimeFrameCandle, StockSharp.Algo"/>
		<candle name="Tick" type="StockSharp.Algo.Candles.TickCandle, StockSharp.Algo"/>
		<candle name="Volume" type="StockSharp.Algo.Candles.VolumeCandle, StockSharp.Algo"/>
		<candle name="Range" type="StockSharp.Algo.Candles.RangeCandle, StockSharp.Algo"/>
		<candle name="X&amp;O" type="StockSharp.Algo.Candles.PnFCandle, StockSharp.Algo"/>
		<candle name="Renko" type="StockSharp.Algo.Candles.RenkoCandle, StockSharp.Algo"/>
	</candles>
	<indicators>
		<indicator type="StockSharp.Algo.Indicators.Misc.ChaikinVolatility, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.Highest, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.Lowest, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.MeanDeviation, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.MedianPrice, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.QStick, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.LinearReg, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.LinearRegression, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.LinearRegSlope, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.StandardError, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.RSquared, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.Sum, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.Trix, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.VerticalHorizontalFilter, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.Vidya, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Misc.VolumeIndicator, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.VolumePainter, StockSharp.Xaml.Charting"/>

		<indicator type="StockSharp.Algo.Indicators.Oscillator.AverageDirectionalIndex, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.AverageDirectionalIndexPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.AverageTrueRange, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.ChandeMomentumOscillator, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.CommodityChannelIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.DetrendedPriceOscillator, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.DiMinus, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.DiPlus, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.DirectionalIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.Ichimoku, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.IchimokuPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.Momentum, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.RateOfChange, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.RelativeStrengthIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.RelativeVigorIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.StochasticK, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.TrueRange, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Oscillator.UltimateOscillator, StockSharp.Algo"/>

		<indicator type="StockSharp.Algo.Indicators.Trend.BollingerBands, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.BollingerBandsPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.ExponentialMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.JurikMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.MovingAverageConvergenceDivergence, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.MovingAverageConvergenceDivergenceHistogram, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.MovingAverageConvergenceDivergenceHistogramPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.MovingAverageConvergenceDivergenceSignal, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.MovingAverageConvergenceDivergenceSignalPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.ParabolicSar, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.Peak, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.PeakPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.PeakBar, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.Trough, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.TroughPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.TroughBar, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.RangeActionVerificationIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.SimpleMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.SmoothedMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.StandardDeviation, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.VolumeWeightedMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.WeightedMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.WilderMovingAverage, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.ZigZag, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.ZigZagPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Trend.ZigZagEquis, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.ZigZagEquisPainter, StockSharp.Xaml.Charting"/>

		<indicator type="StockSharp.Algo.Indicators.Williams.Acceleration, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.Alligator, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.AlligatorPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.AwesomeOscillator, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.Fractals, StockSharp.Algo" painter="StockSharp.Xaml.Charting.IndicatorPainters.FractalsPainter, StockSharp.Xaml.Charting"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.GatorOscillator, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.MarketFacilitationIndex, StockSharp.Algo"/>
		<indicator type="StockSharp.Algo.Indicators.Williams.WilliamsR, StockSharp.Algo"/>
	</indicators>
</hydra>

<unity>
	<containers>
		<container>
			<types>
				<register type="Ecng.Serialization.IStorage, Ecng.Serialization" mapTo="Ecng.Data.HierarchicalDatabase, Ecng.Data">
					<constructor>
						<param name="name" value="Hydra Database"/>
						<param name="connectionString">
							<!-- По умолчанию используется SQLite -->
							<value value="SQLiteConStr" typeConverter="Ecng.Configuration.ConnectionSettingsTypeConverter, Ecng.Configuration"/>
							<!--<value value="SqlServerConStr" typeConverter="Ecng.Configuration.ConnectionSettingsTypeConverter, Ecng.Configuration"/>-->
						</param>
					</constructor>

					<!-- SQLite не поддерживает хранимые процедуры -->
					<!--<property name="CommandType" value="StoredProcedure" />-->

					<!-- Для других баз данных провайдер необходимо поменять -->
					<property name="Provider">
						<dependency type="Ecng.Data.Providers.SQLiteDatabaseProvider, Ecng.Data.Providers"/>
					</property>

					<property name="AllowDeleteAll" value="true"/>

					<lifetime type="singleton"/>
				</register>

				<register type="StockSharp.Algo.Storages.IEntityRegistry, StockSharp.Algo" mapTo="StockSharp.Hydra.Core.HydraEntityRegistry, StockSharp.Hydra.Core">
					<constructor>
						<param name="storage">
							<dependency type="Ecng.Serialization.IStorage, Ecng.Serialization"/>
						</param>
					</constructor>

					<!-- Путь, по которому будут записываться маркет-данные -->
					<!--<property name="BasePath" propertyType="System.String" value="" />-->

					<lifetime type="singleton"/>
				</register>
			
				<!-- Пользовательский модель авторзации S#.Data Server клиентских запросов -->
				<!--<register type="StockSharp.Algo.History.Hydra.IRemoteStorageAuthorization, StockSharp.Algo" mapTo="StockSharp.Algo.History.Hydra.WindowsRemoteStorageAuthorization, StockSharp.Algo">
				</register>-->
			</types>
		</container>
	</containers>
</unity>

<system.serviceModel>
	<services>
		<service name="StockSharp.Hydra.Server.HydraServer">
			<endpoint address="" binding="netTcpBinding" bindingConfiguration="tcpbinding_config" contract="StockSharp.Algo.History.Hydra.IRemoteStorage"/>
			<host>
				<baseAddresses>
					<add baseAddress="net.tcp://localhost:8000"/>
				</baseAddresses>
			</host>
		</service>
	</services>
	<bindings>
		<netTcpBinding>
			<binding name="tcpbinding_config" transferMode="StreamedResponse" receiveTimeout="00:05:00" sendTimeout="01:00:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
				<security mode="None"/>
				<readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647"/>
			</binding>
		</netTcpBinding>
	</bindings>
	<behaviors>
		<serviceBehaviors>
			<behavior>
				<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
				<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
			</behavior>
		</serviceBehaviors>
	</behaviors>
</system.serviceModel>

</configuration>

  1. Запускаю Гидру в режиме x86. В папке Documents/StockSharp чисто. Все файлы в указанной папке.
  2. Настраиваю TrueFX - закачка с 2014.05.01. Путь к данным новый. Добавляю инструмент EUR/USD.
  3. Начинаю закачку.

=> Результат тот же. Ничего не качается.

Попробуйте кто-нибудь еще скачать. Пока в теме отписались 3 человека. Качается у 1-го - Михаила)

Mikhail Sukhov
Mikhail Sukhov

Если из кода выполнить такое?

[TestMethod]
public void TrueFX2()
{
	var source = new TrueFXSource();
	source.LoadTicks(new Security { Code = "EUR/USD" }, new DateTime(2014, 5, 9)).Count().AssertEqual(83428);
}
Architectus
Architectus 著者

Михаил Сухов: Если из кода выполнить такое?

[TestMethod] public void TrueFX2() { var source = new TrueFXSource(); source.LoadTicks(new Security , new DateTime(2014, 5, 9)).Count().AssertEqual(83428); }


Скачал версию S# 4.2.3.21.

```csharp

//Добавляю пространство имен. Автодополнение все видит.
using StockSharp.Algo.History.Forex;

//TrueFXSource доступен
var source = new TrueFXSource();

StockSharp.Algo.History.dll добавлена в проект. Target framework 4.5.

Ошибка: The type or namespace name 'History' does not exist in the namespace 'StockSharp.Algo' (are you missing an assembly reference?)

Mikhail Sukhov
Mikhail Sukhov

Architectus: Ошибка: The type or namespace name 'History' does not exist in the namespace 'StockSharp.Algo' (are you missing an assembly reference?)

Надо подключить сборку Algo.History

Architectus
Architectus 著者

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

Architectus: Ошибка: The type or namespace name 'History' does not exist in the namespace 'StockSharp.Algo' (are you missing an assembly reference?)

Надо подключить сборку Algo.History

Сборка StockSharp.Algo.History.dll 4.2.3.21 уже добавлена. Я и написал про target framework, т.к. обычно в нем проблема в таких случаях. Например http://stackoverflow.com/questions/4228992/namespace-not-recognized-even-though-it-is-there или http://stackoverflow.com/questions/3304741/vs2010-getting-type-or-namespace-name-could-not-be-found-but-everything-seem

Гм, похоже в этом и дело. StockSharp.Algo.History требует именно target framework 4.5.1, а не 4.5. Обычно было просто 3, 3.5, 4, 4.5.

Architectus
Architectus 著者

Михаил Сухов: Если из кода выполнить такое?

[TestMethod] public void TrueFX2() { var source = new TrueFXSource(); source.LoadTicks(new Security , new DateTime(2014, 5, 9)).Count().AssertEqual(83428); }


Все ок.
Architectus
Architectus 著者

Закачка данных через Гидру по-прежнему не работает. Тем не менее при запуске из кода source.LoadTicks данные получить удается. В чем же дело?

Mikhail Sukhov
Mikhail Sukhov

Architectus: Закачка данных через Гидру по-прежнему не работает. Тем не менее при запуске из кода source.LoadTicks данные получить удается. В чем же дело?

Сам не могу понять. Могу выслать через личку версию с расширенными логами, если интересно разобраться.