Индикаторы - совместный проект

Индикаторы - совместный проект
Atom
5/31/2011
Mikhail Sukhov


Приветствую всех участников!

Месяц назад я публиковал призыв о совместной разработке индикаторов на базе C#. Прошел месяц, мною было сделано 3 стандартных индикатора SMA, EMA и WMA. И ни строчки кода ни от одного пользователя S#. Каждый день задают вопросы (причем, большинство явно не относящиеся к S# как таковому), получают ответы, но свою помощь предложить не хотят. Стесняются, наверное.

Я понимаю, что дело в мотивации. Зачем помогать делать что-то, если можно подождать пару месяцев (пол года) или сделать самому, а потом пересесть на стандартное. Поэтому я решил найти мотивацию. И я ее нашел. Это лето объявляется летом "Ты мне - я тебе".

Схема простая. Вы делаете индикатор - я отвечаю на три любых вопроса. Вопросы по глюкам S# остаются как есть и раньше - ответ всегда получите. Но вопросы по C#, WFP, примерам, документации, Квику и всему прочему - только за индикатор.[smile] Я думаю честно.

Сделав 5 индикаторов, вы получается бонус - кружку с символикой S#.

Репозитарий с исходниками расположен по адресу http://stocksharpconnectors.codeplex.com Чтобы получить доступ на запись регистрируйтесь на сайте, пишите в эту тему свой логин и какие индюки хотите сделать. Стиль кодирование указывается через R#. Настройки в репозитарии.

Что сделано сейчас:

  1. Acceleration
  2. Alligator
  3. AwesomeOscillator
  4. Fractals
  5. GatorOscillator
  6. MarketFacilitationIndex
  7. BollingerBands
  8. ExponentialMovingAverage
  9. Macd
  10. ParabolicSar
  11. RAVI
  12. SimpleMovingAverage
  13. SmoothedMovingAverage
  14. StandartDeviation
  15. VolumeWeightedMovingAverage
  16. WeightedMovingAverage
  17. WilderMovingAverage
  18. Adx
  19. Atr
  20. ChandeMomentumOscillator
  21. CommodityChannelIndex
  22. DiMinus
  23. DiPlus
  24. Dx
  25. Ichimoku
  26. Momentum
  27. RateOfChange
  28. RelativeStrengthIndex
  29. RVI
  30. TrueRange
  31. DetrendedPriceOscillator
  32. Highest
  33. LinearReg
  34. LinearRegression
  35. LinearRegSlope
  36. Lowest
  37. MeanDeviation
  38. MedianPrice
  39. Peak
  40. PeakBar
  41. QStick
  42. RSquared
  43. StandardError
  44. StochK
  45. Sum
  46. Trix
  47. Trough
  48. TroughBar
  49. UltimateOsc
  50. VerticalHorizontalFilter
  51. Vidya
  52. Volatility
  53. WilliamsR

Tags:


Thanks:


<< < 7 8 9 10 11  > >>
Maxim

Avatar
Date: 6/10/2011
Reply


Mikhail Sukhov
InsiderHSE
Здравствуйте! Открываю солюшн Indicators, ссылки на сборки Ecng не находятся... Это только у меня так? Если я удалю их и снова добавлю на сборки из папки references, это не повлияет на работу других пользователей?


Get Latest version делайте не из Solution Explorer, а из Source Control Explorer. У вас не все файлы скачались.


У меня был аналогичный случай.
Я сделал CheckOut только одного Indicators.sln.
И у меня не хватало двух библиотек Ecng в референсах.
Они были, но были помечены предупреждением.

Если посмотреть код файла Indicators.csproj, то там есть такие строки
Code

<ItemGroup>
<Reference Include="Ecng.Common">
<HintPath>..\References\Ecng.Common.dll</HintPath>
</Reference>
<Reference Include="Ecng.Trading.Algo">
<HintPath>..\..\References\Ecng.Trading.Algo.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>


Что говорит, что два файла лежат где-то выше.

Я просто добавил вручную эти два файла в референс.
Но после этого откатил изменение в файле Indicators.csproj назад, что бы не влиять на основной код.
Thanks:

Maxim

Avatar
Date: 6/10/2011
Reply


esper
Сейчас посмотрел исходный код индикатора Vidya, судя по всему, в нем используется индикатор CMO, который у нас уже есть в проекте, может стоит использовать его, а не считать значения самим? Т.е. комбинировать индикаторы, чтобы не было дублирования кода.


Сделал реализацию внутри сугубо для ускорения работы.
Так же CMO умножается на 100 в реализации, тогда как в Vidya этого не нужно.
Если кто желает переделать, то я не против.


UPD
Неверно написал последнее предложение.
Так как я делаю этот индикатор, то я за него в ответе.
Если Михаил скажет, что надо переделать с использованием CMO класса, то я переделаю.
Если не скажет, то пределывать ничего не буду.
Thanks:

esper

Avatar
Date: 6/10/2011
Reply


Maxim
Сделал реализацию внутри сугубо для ускорения работы.
Так же CMO умножается на 100 в реализации, тогда как в Vidya этого не нужно.
Если кто желает переделать, то я не против.

Предлагаю всем вместе решить как будем поступать в таких случаях, каждый раз изобретать велосипед или использовать готовое[smile]

Maxim, goricap это ваш логин? Сейчас вытянул последнюю версию проекта, там добавлен индикатор Volatility, у метода Add стоит override, хотя в базовом классе такого метода вообще нет, и проект не компилируется, вы перед Check In проект компилируете?

P.s. CCI вроде никто еще не брал?
Thanks:

Maxim

Avatar
Date: 6/10/2011
Reply


esper
Maxim
Сделал реализацию внутри сугубо для ускорения работы.
Так же CMO умножается на 100 в реализации, тогда как в Vidya этого не нужно.
Если кто желает переделать, то я не против.

Предлагаю всем вместе решить как будем поступать в таких случаях, каждый раз изобретать велосипед или использовать готовое[smile]


Мое личное мнение:
Изобретать велосипед по возможности не стоит.
У проекта должен быть куратор, который должен решать политику партии.
Всем вместе решать не стоит. Демократия говно :).
Надо всем вместе обсуждать, а решение должен принимать один человек.

esper

Maxim, goricap это ваш логин? Сейчас вытянул последнюю версию проекта, там добавлен индикатор Volatility, у метода Add стоит override, хотя в базовом классе такого метода вообще нет, и проект не компилируется, вы перед Check In проект компилируете?

Мой логин. Обычно компилирую. В последний раз забыл проверить на компиляцию.
Thanks:

esper

Avatar
Date: 6/10/2011
Reply


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

Пока выскажу некоторые предложения по проекту:
1. Как уже писал выше, предлагаю использовать уже готовые индикаторы повторно, а не писать каждый раз все под себя, во-первых, не будет лишнего дублирования кода, во-вторых, код индикаторов становится более компактным и понятным, в-третьих, это позволит лишний раз протестировать уже написанные индикаторы.

2. Давайте по возможности писать не только индикаторы, но и тесты к ним, индикаторов сейчас куча, а какие реально работают - не ясно, т.к. тестов всего несколько. Сомневаюсь, что нам нужна куча неработающих индикаторов и предлагаю считать, что индикатор написан только тогда, когда он покрыт тестами.

3. По поведению индикаторов:
- если индикатор еще не сформировался, то его значение равно 0
- пока индикатор не сформировался, событие Changed не вызывается
- после того как индикатор сформировался, событие Changed вызывается при каждом добавлении нового значения
- функция Add принимает или decimal или Candle

4. При коммите указывать какие изменения были внесены, коммиты делать только для работающих версий (по минимуму проект должен собираться)

5. Xml комментарии писать на одном языке

Пока все, если что-то вспомню, добавлю[smile]
Thanks:

InsiderHSE

Avatar
Date: 6/10/2011
Reply


Mikhail Sukhov
InsiderHSE
Здравствуйте! Открываю солюшн Indicators, ссылки на сборки Ecng не находятся... Это только у меня так? Если я удалю их и снова добавлю на сборки из папки references, это не повлияет на работу других пользователей?


Get Latest version делайте не из Solution Explorer, а из Source Control Explorer. У вас не все файлы скачались.

Я даже когда с сайта скачиваю последнюю сборку, ссылки в референсе проекта присутствуют, но с восклицательныйм знаком, сами сборки не находятся. Я на 100% не уверен, сейчас нет возможности посмотреть, но вроде из Source Control Explorer и закачиваю последнюю версию.
Maxim

У меня был аналогичный случай.
Я сделал CheckOut только одного Indicators.sln.
И у меня не хватало двух библиотек Ecng в референсах.
Они были, но были помечены предупреждением.

Если посмотреть код файла Indicators.csproj, то там есть такие строки

Код:

<ItemGroup>
<Reference Include="Ecng.Common">
<HintPath>..\References\Ecng.Common.dll</HintPath>
</Reference>
<Reference Include="Ecng.Trading.Algo">
<HintPath>..\..\References\Ecng.Trading.Algo.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>



Что говорит, что два файла лежат где-то выше.

Я просто добавил вручную эти два файла в референс.
Но после этого откатил изменение в файле Indicators.csproj назад, что бы не влиять на основной код.


То есть вы поправили код Indicators.csproj вручную или через add new reference? Вам каждый раз приходится это делать?
Thanks:

esper

Avatar
Date: 6/10/2011
Reply


InsiderHSE
Я даже когда с сайта скачиваю последнюю сборку, ссылки в референсе проекта присутствуют, но с восклицательныйм знаком, сами сборки не находятся. Я на 100% не уверен, сейчас нет возможности посмотреть, но вроде из Source Control Explorer и закачиваю последнюю версию.

Идем в Team Explorer - Source Control, там есть Indicators, а еще есть References, вот их тоже скачиваем и все должно работать, можно скачать не полностью References, а только нужные зависимости.

Вообще суть в том, чтобы нужные зависимости лежали по адресу Indicators\..\References, т.е. рядом с директорией проекта Indicators, должна быть директория References с нужными зависимостями
Thanks:

Maxim

Avatar
Date: 6/10/2011
Reply


InsiderHSE

То есть вы поправили код Indicators.csproj вручную или через add new reference? Вам каждый раз приходится это делать?

Вручную не правил.
Добавил библиотеки в референс.
И после этого откатил изменения в файле Indicators.csproj назад.
Сделал это один раз. Каждый раз не нужно делать.

По какой причине после того, как сделал откат Студия видит библиотеки не знаю.
По идее не должна. Но работает. Возможно я просто чего то не знаю.

Возможно стоит сделать по совету esper и скачать References.

Thanks:

Sergey Masyura

Avatar
Date: 6/10/2011
Reply


Maxim
esper
Maxim
Сделал реализацию внутри сугубо для ускорения работы.
Так же CMO умножается на 100 в реализации, тогда как в Vidya этого не нужно.
Если кто желает переделать, то я не против.

Предлагаю всем вместе решить как будем поступать в таких случаях, каждый раз изобретать велосипед или использовать готовое[smile]


Мое личное мнение:
Изобретать велосипед по возможности не стоит.
У проекта должен быть куратор, который должен решать политику партии.
Всем вместе решать не стоит. Демократия говно :).
Надо всем вместе обсуждать, а решение должен принимать один человек.

esper

Maxim, goricap это ваш логин? Сейчас вытянул последнюю версию проекта, там добавлен индикатор Volatility, у метода Add стоит override, хотя в базовом классе такого метода вообще нет, и проект не компилируется, вы перед Check In проект компилируете?

Мой логин. Обычно компилирую. В последний раз забыл проверить на компиляцию.


Если кто-то что-то поломал немного или сильно, то это в принципе херня. Особенности командной работы. Поэтому давайте относится с пониманием друг к другу, опыт у всех разный.

Всем спасибо за огромный вклад в проект!
Thanks:

Mikhail Sukhov

Avatar
Date: 6/10/2011
Reply


Maxim

По какой причине после того, как сделал откат Студия видит библиотеки не знаю.
По идее не должна. Но работает. Возможно я просто чего то не знаю.

Возможно стоит сделать по совету esper и скачать References.


Схема такая. Это репозитарий коннекторов. Они все и используют S# сборки. Так же как и проект с индикаторами. Соответственно структура проекта (файловая) должна быть как она есть в TFS. Даже если у кого-то S# был до этого скачал и распакован в какую-то директорию другую, ссылки у проекта с индикаторами не должны вести туда. Используется только локальная копия сборок.

Я думаю надо отпустить файлы. А то сейчас вы все файлы пометили как редактируемые. Еще заметил, что checkin идет с пометкой не просто edit, но и branch. Схема работы следующая:

1. Запустили студию. Открытие Source Control Explorer. Сделали на проект Connectors Get Latest Version.
2. Редактируем файл в студии. Все изменения автоматически подхватываются TFS (в отличие от SVN).
3. Хотим залить изменения. Делаем еще раз Get Latest Version. Если кто-то уже залил свои изменения, и у нас произошел конфликт, то эти конфликты правим из окна Pending Changes.
4. Идем опять в Source Control Explorer, делаем Check In. Появляется окно, где пишет обязательно комментарий и проверяем свои изменения. Иногда бывает так, что студия (или мы сами) поменяли лишнее количество файлов. Лишнее откатываем (в случае сомнений делаем diff чтобы проверить отличия). По идее, в check in должны попасть только cs и csproj файлы. Все лишнее - это уже повод для сомнений.
Thanks:
<< < 7 8 9 10 11  > >>

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

loading
clippy