Гидра на CodePlex

Гидра на CodePlex
Atom
9/12/2011
Mikhail Sukhov


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

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


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


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

Tags:


Thanks:


<< < 5 6 7 8  >
Graliur

Avatar
Date: 12/29/2011
Reply


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

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

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

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

Mikhail Sukhov

Avatar
Date: 12/29/2011
Reply


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


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

Graliur

Avatar
Date: 12/29/2011
Reply


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

Graliur

Avatar
Date: 12/30/2011
Reply


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

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

Alexander

Avatar
Date: 12/30/2011
Reply


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

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

Graliur

Avatar
Date: 1/2/2012
Reply


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

Распечатка стека:
stackTrace.txt 12 KB (291)
Thanks:

Graliur

Avatar
Date: 1/2/2012
Reply


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

Mikhail Sukhov

Avatar
Date: 1/2/2012
Reply


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

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


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

Mikhail Sukhov

Avatar
Date: 1/2/2012
Reply


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


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

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

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

Code
protected override void OnConnect()
{
	try
	{
		KillSmartComProcess();
	}
	catch (Exception ex)
	{
		RaiseProcessDataError(ex);
	}

	Wrapper.Connect();
}


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

Graliur

Avatar
Date: 1/2/2012
Reply


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

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy