Гидра на CodePlex
Atom
12.09.2011
Mikhail Sukhov


Так как Гидра теперь выложена со своими исходника в систему CodePlex, предлагаю всем неравнодушным к проекту помочь в развитие.

Навскидку видны следующие таски:


  1. (Сделано) Научить ее работать с SQL Lite, чтобы не требовалась сложная установка с Sql Server 2008.
  2. Авто обновление закаченных данных и структуры базы при новой версии.
  3. (Сделано) Научить Гидру работать со свечками. Закачивать из внешних источников, автоматически их создавать из тиков и т.д. Нужно для тех инструментов, для который просто не найти тики. Со стороны тестера S# такое можно поддержать.
  4. Сделать источники для западных площадок (IQFeed, ESignal).
  5. (Сделано) Научить Гидру сохранять не только тики и стаканы, а так же волатильность, открытый интерес.
  6. (Сделано) Выводить ошибки через MonitorWindow (переделав предварительно все логи на ILogSource).


Желающих прощу высказываться в этом топике.

Теги:


Спасибо:


<< < 5 6 7 8  >
Graliur

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


Отличие между static bundle и bundle релизами SQLite в типе линковки библиотеки The Visual C++ 2008 SP1/2010 runtime, например:
- в sqlite-netFx35-static-binary-bundle-Win32-2008-1.0.77.0.zip:
Цитата:
The Visual C++ 2008 SP1 runtime for x86 is statically linked.

- в sqlite-netFx35-setup-bundle-x86-2008-1.0.77.0.exe :
Цитата:
The Visual C++ 2008 SP1 runtime for x86 is included.

В общем случае далеко не всегда можно использовать статическую и динамическую линковку для одного и того же проекта - это связано с тем, что линковщик может не понять какую динамическую или статическую библиотеку грузить в случае совпадающих имен переменных/функций/классов/пространств имен.
Для Stock# я бы использовал вариант с динамической библиотекой без префикса static.

upd: корректнее будет сказать, что различные по версии библиотеки могут иметь одинаковые имена переменных/функций/классов/пространств имен. Так как линковщик C++ не проверяет версий и в основном отдает предпочтение динамическим библиотекам, то в проектах со статически прилинкованными библиотеками могут быть функции с одинаковыми названиями и разными функциональными частями.
Спасибо:

Mikhail Sukhov

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


Graliur
upd: корректнее будет сказать, что различные по версии библиотеки могут иметь одинаковые имена переменных/функций/классов/пространств имен. Так как линковщик C++ не проверяет версий и в основном отдает предпочтение динамическим библиотекам, то в проектах со статически прилинкованными библиотеками могут быть функции с одинаковыми названиями и разными функциональными частями.


C++ Runtime всегда есть на машине или он когда то может отсутствовать?
Спасибо:

Graliur

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


Visual Studio runtime может отсутствовать, но его всегда можно бесплатно скачать с сайта Microsoft.
Спасибо:

Graliur

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


Сегодня весь вечер сражался со SmartCom'ом(v2.2) - Гидра инструменты из него получает, а котировки получить не может, ругается в вывод visual studio:
Цитата:
Первый этап обработки исключения типа "System.ComponentModel.Win32Exception" в приложении System.dll
Первый этап обработки исключения типа "System.NullReferenceException" в приложении StockSharp.Smart.dll
...
Первый этап обработки исключения типа "System.Runtime.InteropServices.COMException" в приложении StockSharp.Smart.dll
...
Первый этап обработки исключения типа "System.NullReferenceException" в приложении StockSharp.Smart.dll

Настройки плагина Smart:
Спасибо:

Alexander

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


Полный Stack Trace покажите.
Система x64 или x86?

Если x64 - то дело в этом, смартком только под x86 работает.
Спасибо:

Graliur

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


Сегодня с помощью Reflector'а добрался до места первого появления ошибки SQLite 21. Ошибка появляется при 2-м вызове метода DatabaseProvider.CreateConnection сразу после выполнения первой строчки кода :
Цитата:
DbConnection connection = this.Factory.CreateConnection();

Распечатка стека:
stackTrace.txt 12 KB (282)
Спасибо:

Graliur

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


Получить котировки через SmartCOM так и не удалось. Откомпилировал все проекты Гидры под x86, получил список инструментов через SmartCom. При запуске импорта котировок программа вызывает исключение, описание исключения и stacktrace из логов :
log_2012_01_02.txt 5 KB (207)
Спасибо:

Mikhail Sukhov

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


Graliur
Сегодня с помощью Reflector'а добрался до места первого появления ошибки SQLite 21. Ошибка появляется при 2-м вызове метода DatabaseProvider.CreateConnection сразу после выполнения первой строчки кода :
Цитата:
DbConnection connection = this.Factory.CreateConnection();

Распечатка стека:


Стек трейс только подтверждает, что никакого другого потока нет. Могу дать исходники Ecng для продолжения инвестигейшена.
Спасибо:

Mikhail Sukhov

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


Graliur
Получить котировки через SmartCOM так и не удалось. Откомпилировал все проекты Гидры под x86, получил список инструментов через SmartCom. При запуске импорта котировок программа вызывает исключение, описание исключения и stacktrace из логов :


Все просто. SmartTrader сделан так, что при старте он грохает процесс со СмартКом. Это сделано из-за особенностей последнего к зависанию. Пути два, или выключить в Гидре эту особенность, или дать побольше прав Гидре.

Сообщение Oops, data manager call failed.. меня просто убило. По такому сообщению сразу можно определить возрастной уровень создателей.

upd. Посмотрел код SmartTrader.OnConnected

Код
protected override void OnConnect()
{
	try
	{
		KillSmartComProcess();
	}
	catch (Exception ex)
	{
		RaiseProcessDataError(ex);
	}

	Wrapper.Connect();
}


Так что эта ошибка не должна влиять работоспособность. Почему падает дальше - СмартКом новый? Сервер боевой? Может там что выключили до 3-го?
Спасибо:

Graliur

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


Мне кажется c 21-ой ошибкой именно очередность операций соединения и запросов к базе данных играет роль. Так как SQLite выдает эту ошибку приблизительно на каждый второй вызов DatabaseProvider.CreateConnection. Исходники конечно помогли бы в дальнейших изысканиях - в Reflector'е приходится через кракозябры вместо осмысленных имен пробираться.
Спасибо:
<< < 5 6 7 8  >

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

loading
clippy