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

Индикаторы - совместный проект
Atom
31.05.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

Теги:


Спасибо:


<< < 6 7 8 9 10  > >>
Maxim

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


esper

Да вроде верно все, когда достигли макс. размер буфера первый раз, сработает условие
Код
if (Buffer.Count == Length)

в следующий раз добавится новый элемент и размер списка будет Length+1 и попадем в блок else


Сори. Вы правы.
Все верно.

Но все равно мой вариант краше :)
Так как нет лишнего добавления и удаления из буфера
Спасибо:

Maxim

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


esper

Тут ранее поступало предложение
maze9a
В моей реализации значение индикатора равно нулю до тех пор пока он полностью не сформирован (в велсе индикатор расчитывается таким же образом), поэтому нет смысла рисовать кривую пока она не сформированна. Если вызывать событие Changed до того как индикатор сформировался то скорей всего некоторым подписчикам придется проверять IsFormed, а это мне кажется лишнее.



Я это читал.
Поддерживаю Ваш вариант.

Но.

1)Нужен кто то, кто примит окончательное решение. Подозреваю, это должен быть Михаил.
2)Ваше предложение не отвечает на вопрос "б". Вызывать ли Change, если значение добавили, но Value не изменилось?

Спасибо:

esper

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


Maxim
2)Ваше предложение не отвечает на вопрос "б". Вызывать ли Change, если значение добавили, но Value не изменилось?

Зачем? Значение индикатора не изменилось.
Спасибо:

Maxim

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


esper
Maxim
2)Ваше предложение не отвечает на вопрос "б". Вызывать ли Change, если значение добавили, но Value не изменилось?

Зачем? Значение индикатора не изменилось.


Нужно или не нужно — это вопрос договоренностей.
Я вот и призываю договорится.

Потому что нигде в индикаторах я не видел перед вызовом метода Change проверки на то,
что новое значение Value отличается от старого.
Спасибо:

esper

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


Maxim
Нужно или не нужно — это вопрос договоренностей.
Я вот и призываю договорится.

Потому что нигде в индикаторах я не видел перед вызовом метода Change проверки на то,
что новое значение Value отличается от старого.

Я вопрос неверно понял... действтельно интересный момент, считаю, что при добавлении нового значения, если индикатор сформировался, то необходимо вызывать это событие, т.к. по событию может рисоваться график и т.д.
Спасибо:

maze9a

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


Maxim
esper

Да вроде верно все, когда достигли макс. размер буфера первый раз, сработает условие
Код
if (Buffer.Count == Length)

в следующий раз добавится новый элемент и размер списка будет Length+1 и попадем в блок else


Сори. Вы правы.
Все верно.

Но все равно мой вариант краше :)
Так как нет лишнего добавления и удаления из буфера


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

maze9a

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


esper
Maxim
Нужно или не нужно — это вопрос договоренностей.
Я вот и призываю договорится.

Потому что нигде в индикаторах я не видел перед вызовом метода Change проверки на то,
что новое значение Value отличается от старого.

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


Поддерживаю такой подход.
Спасибо:

InsiderHSE

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


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

Mikhail Sukhov

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


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


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

esper

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


Сейчас посмотрел исходный код индикатора Vidya, судя по всему, в нем используется индикатор CMO, который у нас уже есть в проекте, может стоит использовать его, а не считать значения самим? Т.е. комбинировать индикаторы, чтобы не было дублирования кода.
Спасибо:
<< < 6 7 8 9 10  > >>

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

loading
clippy