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

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


<< < 8 9 10 11 12  > >>
esper

Avatar
Date: 6/10/2011
Reply


sergey.masyura, какой смысл несет замена
Code
decimal[] data = new decimal[]

на
Code
var data = new[]

Конструкция тут не трехэтажная, сильно проще она не стала[confused]
Thanks:

Sergey Masyura

Avatar
Date: 6/10/2011
Reply


esper
sergey.masyura, какой смысл несет замена
Code
decimal[] data = new decimal[]

на
Code
var data = new[]

Конструкция тут не трехэтажная, сильно проще она не стала[confused]


Конструкция стала проще. Это не С++, поэтому разумно использовать возможности языка С# полностью.
Thanks:

esper

Avatar
Date: 6/10/2011
Reply


sergey.masyura
Конструкция стала проще. Это не С++, поэтому разумно использовать возможности языка С# полностью.

var действительно очень классная штука, особенно там где приходится использовать анонимные типы, конструкции вида IEnumerable<IGrouping<string, int>>, я даже согласен с тем, чтобы первый decimal заменить на var[smile] , но второй decimal говорит о типе, а тут получается конструкция, о типе данных в которой можно только догадываться, поэтому я не вижу здесь никакого упрощения.
Thanks:

ddsfx

Avatar
Date: 6/10/2011
Reply


можно занять индикаторы на будущее?

только займусь ими после праздников, и буду просить помощь в освоении структуры кода - отпишите пож. в личку к кому обратиться.

стохастик, пайвот пойнтс, сглаженный впр - после НЧ фильтра.

Насколько сложно реализовать профиль рынка?



код на mq4 есть.
mp.zip 34 KB (281)
Thanks:

artemox

Avatar
Date: 6/10/2011
Reply


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

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

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

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

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


Коллеги, все согласны с esper? Предагаю это в первый пост перенести (Михаил, это только Вы сможете сделать?)
Также как и файл "Таблица индикаторов.xls" от Maxim-а (55 пост).

Насчет тестирования предлагаю всем использовать TextTestReader (пример в MomentumTest). Тест делается быстро и надежно.
Thanks:

artemox

Avatar
Date: 6/10/2011
Reply


ddsfx, обращайся сюда, думаю будет наиболее эффективно.
Профиль необычный индикатор, сейчас интерфейс на него не заточен. Имхо он сам по себе.
Thanks:

artemox

Avatar
Date: 6/10/2011
Reply


sergey.masyura

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

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

InsiderHSE

Avatar
Date: 6/10/2011
Reply


Сделал индикаторы из WealthLab - LinearReg, LinearRegSlope, RSquared, StdError плюс Unit тесты к ним.
Также добавил для производительности индикатор LinearRegression, который содержит все 4 предыдущих в соответствующих свойствах (только для LinearReg св-во называется Forecast), чтобы по несколько раз не гонять регрессию если нужны несколько индикаторов.
Thanks:

maze9a

Avatar
Date: 6/10/2011
Reply


artemox

Коллеги, все согласны с esper? Предагаю это в первый пост перенести (Михаил, это только Вы сможете сделать?)
Также как и файл "Таблица индикаторов.xls" от Maxim-а (55 пост).

Насчет тестирования предлагаю всем использовать TextTestReader (пример в MomentumTest). Тест делается быстро и надежно.


Я с предложениями от esper согласен. Еще есть предложения: не называть файлы для юнит тестов громозкими именами, а называть их просто по имени индикатора, а в самом файле первой строчкой сделать коментарий где описать формат данных и всю необходимую инфу по тесту и индикатору. Уверен, что пропуск коментария не сложно сделать в TextTestReader.
Thanks:

maze9a

Avatar
Date: 6/10/2011
Reply


artemox я посмотрел твой комент в MomentumTest, у меня тоже вылезает такая ошибка, поэтому я не стал использовать Assert из Ecng.UnitTesting. Если разберешся в чем тут проблема напиши пожалуйста.
Thanks:
<< < 8 9 10 11 12  > >>

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

loading
clippy