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


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

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


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


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

Теги:


Спасибо:



Скидка 15% на все продукты до 5 апреля (осталось 2 дней).

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

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


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

Mikhail Sukhov

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


Serg Перейти
Насколько мне известно 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 :
Цитата:
6. Выводить ошибки через MonitorWindow (переделал предварительно все логи на ILogSource).

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

Alexander

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


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


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

Mikhail Sukhov

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


prometey1982 Перейти

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



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

Mikhail Sukhov

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


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

Serg

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


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

Alexander

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


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



Sqlite .Net
Спасибо:

Serg

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


Alexander Mukhanchikov Перейти

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

Mikhail Sukhov

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


Serg Перейти
Alexander Mukhanchikov Перейти

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


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

prometey1982

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


Mikhail Sukhov Перейти
prometey1982 Перейти

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



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

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

Mikhail Sukhov

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


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


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

prometey1982

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


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

private void OnLog(IMarketDataSource source, string message)

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

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

Mikhail Sukhov

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


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

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 Перейти
Как эти shelves использовать? Тоже думал над этим моментом поэтому попытался сделать чтобы логи работали. Единственный момент, видимо опять же нужно сохранение логов в файлы.



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

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

Mikhail Sukhov

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


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


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

prometey1982

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


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

Mikhail Sukhov

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


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


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

prometey1982

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


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

Mikhail Sukhov

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


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


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

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

loading
clippy