Гидра на CodePlex
Atom Ответить
11.09.2011


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

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


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


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

Теги:


Спасибо:




77 Ответов
1 2 3  > >>
Serg

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


Насколько мне известно SQL Lite не умеет одновременно из нескольких процессов писать в базу данных(если гидре это необходимо). Хотя могу ошибаться. По мне так лучше postgresql. Но это сугубо мое личное мнение))
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 12.09.2011
Ответить


Serg Go to
Насколько мне известно SQL Lite не умеет одновременно из нескольких процессов писать в базу данных(если гидре это необходимо). Хотя могу ошибаться. По мне так лучше postgresql. Но это сугубо мое личное мнение))


SQL Lite не требует установки вообще. Это просто файл. И нет, конечно же не требуется, так как параллельно несколько Гидр работать не может, будут конфликты на логическом уровне. Которые, кстати, могут быть успешно устранены за счет SQL Lite.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.09.2011
Ответить


Добавил 6-ой такс.

Желающие в итоге есть?
Автор топика
Спасибо:

prometey1982

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


Есть желающие. Студии 2010 Express хватит? Логин на кодеплексе совпадает с форумным.
Спасибо:

Serg

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


А что значит добавил 6-й таск? где его можно наблюдать?
Спасибо:

prometey1982

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


Я так полагаю в первом посте BigGrin :
Quote:
6. Выводить ошибки через MonitorWindow (переделал предварительно все логи на ILogSource).

да, таск, от анлийского task - задача.
Спасибо:

Alexander

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


prometey1982 Go to
Есть желающие. Студии 2010 Express хватит? Логин на кодеплексе совпадает с форумным.


Добавил в список девелоперов на codeplex
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.09.2011
Ответить


prometey1982 Go to

Quote:
6. Выводить ошибки через MonitorWindow (переделал предварительно все логи на ILogSource).



Первоначально описался. Не переделал, а переделав. Тоесть, это еще нужно сделать в рамках таска.Wink
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.09.2011
Ответить


По SQLite есть желающие помочь? Можно сделать совместно. В первую очередь нужна Hydra.db3 (со всеми таблицами и констрейтами, что есть у текущей взрослой Гидры).
Автор топика
Спасибо:

Serg

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


Не имею за плечами два мешка опыта, но готов попробовать с sqlite. Ткните только мне плиз пальцем поближе к тому месту откуда начать, а то с гидрой совсем дела не имел из-за MSSQL))
Спасибо:

Alexander

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


Serg Go to
Не имею за плечами два мешка опыта, но готов попробовать с sqlite. Ткните только мне плиз пальцем поближе к тому месту откуда начать, а то с гидрой совсем дела не имел из-за MSSQL))



Sqlite .Net
Спасибо:

Serg

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


Alexander Mukhanchikov Go to

Эт да) а что мы с ним делаем то... переводим полную структуру базы Гидры?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 06.10.2011
Ответить


Serg Go to
Alexander Mukhanchikov Go to

Эт да) а что мы с ним делаем то... переводим полную структуру базы Гидры?


Да, первый этап - это создать базу db3, чтобы с ней можно было бы работать из кода. Второй этап - это работа как раз из кода. Тут я планирую помочь.
Автор топика
Спасибо:

prometey1982

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


Mikhail Sukhov Go to
prometey1982 Go to

Quote:
6. Выводить ошибки через MonitorWindow (переделал предварительно все логи на ILogSource).



Первоначально описался. Не переделал, а переделав. Тоесть, это еще нужно сделать в рамках таска.Wink

Вообще все сообщения должны поступать в лог? И еще вопрос, окна наследовать от этого интерфейса? Они будут поставщиками сообщений?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 06.10.2011
Ответить


prometey1982 Go to
Вообще все сообщения должны поступать в лог? И еще вопрос, окна наследовать от этого интерфейса? Они будут поставщиками сообщений?


Все что пишется сейчас в файл неплохо бы писать в MonitorWindow. Про наследования окон не понял. Окна разве транслируют какую-то отладочную информацию?
Автор топика
Спасибо:

prometey1982

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


То есть выводить в лог только exceptions, которые приходят сюда:
Code

private void OnLog(IMarketDataSource source, string message)

или вот такие вещи тоже должны туда попадать:
Code

MessageBox.Show(this, "Необходимо включить хотя бы один источник данных.", "Гидра", MessageBoxButton.OK, MessageBoxImage.Warning);
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 07.10.2011
Ответить


prometey1982 Go to
То есть выводить в лог только exceptions, которые приходят сюда:
Code

private void OnLog(IMarketDataSource source, string message)



Да, только это... Возможно, еще то, что в MainWindow (в конструкторе, где try catch сделан) и App.xaml.cs
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.10.2011
Ответить


Закомментировал изменения в логах. Предлагаю использовать механизм shelves, потому что по частям коммитить код в рабочий репозитарий очень плохо. Или все сразу, или ничего. Что смотреть прогресс вот как раз шелвы и можно использовать. Плюс по ним можно обсуждать правильные и неправильные моменты.
Автор топика
Спасибо:

prometey1982

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


Как эти shelves использовать? Тоже думал над этим моментом поэтому попытался сделать чтобы логи работали. Единственный момент, видимо опять же нужно сохранение логов в файлы.
Спасибо:

Alexander

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


prometey1982 Go to
Как эти shelves использовать? Тоже думал над этим моментом поэтому попытался сделать чтобы логи работали. Единственный момент, видимо опять же нужно сохранение логов в файлы.



shelve - полка. изменения кладутся просто в репозиторий на полку, при этом не портится основной бранч. оттуда их можно достать - unshelve.
гугл по запроса.
Shelve pending changes - есть в выпадающем меню.
Unshelve - тоже (File->Source control->unshelve)

Вводите комментарий, выбираете файлы, кладёте.
Когда надо - достаёте, продолжаете изменения.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.10.2011
Ответить


prometey1982 Go to
Как эти shelves использовать? Тоже думал над этим моментом поэтому попытался сделать чтобы логи работали. Единственный момент, видимо опять же нужно сохранение логов в файлы.


Шелв описал уже Александр, а про логи в файл - это естественно. Идея LogManager в том, что он умеет ретранслировать сообщения от своих источников LogManager.Sources (в данном случае, это все Гидра источники, главная форма, Worker) в свои слушатели. Вот случателями я предлагаю сделать FileLogListener и GuiLogListener. Последний вы как раз и успели создать в коде. Только зачем-то его создание перенесли в момент, когда нажимается кнопка Логи. А нужно в конструкторе. Потому что MonitorWindow будет получать логи начиная с того момента, как он был передан в GuiLogListener.
Автор топика
Спасибо:

prometey1982

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


Понял, значит LogManager только транслятор сообщений. Смущает немного INotifyCollection или как оно на память точно не помню. Это было сделано для построения иерархии сообщений? Точнее вывода в иерархию? А есть ли коллекции реализующие данный интерфейс? Хотя наверно это все в документации есть. Хотя с другой стороны можно реализовать и без коллекции как таковой, динамически возвращать элементы по там же будет Worker и источники только, в смысле свою коллекцию сделать, тем более что из MainWindow надо эти вещи убрать в класс менеджер наверно, они ИМХО слабо с самой формой связаны. Из-за этого и пришлось вложенный класс логов сделать, дабы свойство Parent не перекрывалось.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.10.2011
Ответить


prometey1982 Go to
Понял, значит LogManager только транслятор сообщений. Смущает немного INotifyCollection или как оно на память точно не помню. Это было сделано для построения иерархии сообщений? Точнее вывода в иерархию? А есть ли коллекции реализующие данный интерфейс? Хотя наверно это все в документации есть. Хотя с другой стороны можно реализовать и без коллекции как таковой, динамически возвращать элементы по там же будет Worker и источники только, в смысле свою коллекцию сделать, тем более что из MainWindow надо эти вещи убрать в класс менеджер наверно, они ИМХО слабо с самой формой связаны. Из-за этого и пришлось вложенный класс логов сделать, дабы свойство Parent не перекрывалось.


Не совсем понял причину вложенного класса. Иерархия вложенности источников достигается за счет реализации интерфейса ILogSource, а не структуры кода.
Автор топика
Спасибо:

prometey1982

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


Чтобы MainWindow наследующийся от FrameworkElement не перекрывал Parent объявленный как раз во FrameworkElement.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.10.2011
Ответить


prometey1982 Go to
Чтобы MainWindow наследующийся от FrameworkElement не перекрывал Parent объявленный как раз во FrameworkElement.


http://altyn.livejournal.com/340068.html
Автор топика
Спасибо:
1 2 3  > >>

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

loading
clippy