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


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

Месяц назад я публиковал призыв о совместной разработке индикаторов на базе 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

Теги:


Спасибо:


<< < 12 13 14 15 16  > >>
Sergey Masyura

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


artemox Перейти
sergey.masyura,
как победить ошибку "Невозможно загрузить файл или сборку "Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" или один из зависимых от них компонентов. Не удается найти указанный файл." возникающую например при вызове sma.Value.AssertEqual((decimal)data.Average()); ?

Не у одного меня такая ерунда :(


Как вариант файлы из аттача распоковать в c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\

По идее все это ставится в VS 2010 Ultimate.
ut.zip 577 KB (259)
Спасибо: artemox

esper

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


artemox Перейти
Появилась идея сделать класс TestTestExecuter.
Но тогда необходимо создать базовый класс с методами Add(Candle), Add(decimal), Value, IsFormed.
Понятно, что не все индикаторы укладываются в один Value, но большинство индюков будут приобщены к одному интерфейсу.

Здравая идея, думаю в визуализаторе это тоже пригодится

Maxim Перейти

1) Лучше конечно определится со способо тестирования.
На данный момент где-то данные просто генерятся внутри теста,
где-то используются массивы, где-то используются внешние данные из файла.

Считаю, что лучше не генерировать данные внутри теста, а использовать внешние данные.
И, повторюсь, лучше унифицировать этот способ.

MomentumTest мне нравится. Только надо ввсети погрешность — плюс-минус дельта величину,
когда мы будем считать, что значение верно.

поддерживаю

Maxim Перейти

2) Возможно, тесты стоит сделать одному человеку.
В этом случае будет все более унифицировано.
Методом копипаст не очень трудно сделать тесты для каждого индикатора из MomentumTest.

при написания теста часто выявляются ошибки, а искать их проще тому, кто писал индикатор

Maxim Перейти

Оффтоп:
а) В список правил стоит добавить пункт-напоминание, что бы все делали проверку на деление на ноль где это возможно.
б) Что насчет потокобезопасности? Стоит ли ее реализовывать в индикаторах или нет?

а)согласен
б)мне кажется, не стоит усложнять индикаторы, есть ли такие ситуации, где это было бы оправдано?

artemox Перейти
На самом деле, сейчас индюки пишутся на раз два. Например DPO с тестом нарисовал за 20 минут, + отладка 40 минут :)

Вот только нужен ли этот DPO кому-нибудь? :)

Лишним не будет[smile] Так понимаю, что наиболее используемые индикаторы уже сделали? Может добьем тесты и Михаил соберет первую бету?

Maxim Перейти
artemox Перейти

Да правильно, но HHV и LLV это имена из амиброкера, т.к. Highest и Lowest там имеют другое предназначение
Может в таблицу алтернативные имена добавить?


В этом случае можно составить экселик, где будут три столбика "Как у нас называется", "Как в амиброкере", "Как в лабе".

Поддерживаю, заодно обновим что сделано, а что нет:)

sergey.masyura Перейти
На такие тесты можно просто ставить аттрибут [Ignore], тогда они будут пропускаться при выполнении.

Хорошо, учтем. Смотрю на частые Coding style fixes, есть документ, где представлен Coding style?

Mikhail Sukhov Перейти

Это точно. Вот думаю, а не залить ли сырцы Ecng.Trading.Xaml да и сделать на основе CandleChart рисовалку всех этих индюков. Примеры Chart из .NET меня удивили по хорошему, особенно раздел финансы (приложил к сообщению). Я так прикинул, что большинство индюков имею одинаковый вид отрисовки. А значит и работа будет значительно меньше, чем я предполагал в самом начале.

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

maze9a

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


Всем доброго времени суток. Я застрял с реализацией индикатора HV (http://www2.wealth-lab.com/WL5Wiki/HV.ashx?HL=hv), может кто-нибудь подскажет более понятную формулу для расчета этого индикотора?
Спасибо:

esper

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


maze9a Перейти
Всем доброго времени суток. Я застрял с реализацией индикатора HV (http://www2.wealth-lab.com/WL5Wiki/HV.ashx?HL=hv), может кто-нибудь подскажет более понятную формулу для расчета этого индикотора?

Возможно это поможет
Спасибо:

Евгений

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


artemox Перейти
На самом деле, сейчас индюки пишутся на раз два. Например DPO с тестом нарисовал за 20 минут, + отладка 40 минут :)

Вот только нужен ли этот DPO кому-нибудь? :)


Эх... Не успел вылить... Напишу тогда, что делаю: Fractals, Ichimoku, Parabolic SAR, что ведет за собой реализацию Acceleration Oscillator, Awesome Oscillator и Median Price.
Спасибо:

Sergey Masyura

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


esper Перейти
artemox Перейти
Появилась идея сделать класс TestTestExecuter.

[quote=sergey.masyura;8861]На такие тесты можно просто ставить аттрибут [Ignore], тогда они будут пропускаться при выполнении.

Хорошо, учтем. Смотрю на частые Coding style fixes, есть документ, где представлен Coding style?


В шапке топика написано - "Стиль кодирование указывается через R#. Настройки в репозитарии."

Настройки можно включить через плагин http://rsm.codeplex.com/
Спасибо:

Maxim

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


Евгений Перейти
artemox Перейти
На самом деле, сейчас индюки пишутся на раз два. Например DPO с тестом нарисовал за 20 минут, + отладка 40 минут :)

Вот только нужен ли этот DPO кому-нибудь? :)


Эх... Не успел вылить... Напишу тогда, что делаю: Fractals, Ichimoku, Parabolic SAR, что ведет за собой реализацию Acceleration Oscillator, Awesome Oscillator и Median Price.


Печально.

Предложение.
Можно придерживаться следующего правила, что бы не делать индикатор, который уже делают.
Как только выбрали индикатор для реализации, обновляете проект до последней версии.
Проверяете есть ли уже данный индикатор в проекте.
Если нет, создаете пустой класс с этим индикатором.
Комитите этот файл в репозиторий, что бы все видели, что этот индикатор уже в производстве.
Ну и как он сделан, комитить уже готовый файл с индикатором.


Спасибо:

esper

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


sergey.masyura Перейти
esper Перейти
artemox Перейти
Появилась идея сделать класс TestTestExecuter.

[quote=sergey.masyura;8861]На такие тесты можно просто ставить аттрибут [Ignore], тогда они будут пропускаться при выполнении.

Хорошо, учтем. Смотрю на частые Coding style fixes, есть документ, где представлен Coding style?


В шапке топика написано - "Стиль кодирование указывается через R#. Настройки в репозитарии."

Настройки можно включить через плагин http://rsm.codeplex.com/

Не у всех есть решарпер или возможность его поставить
Спасибо:

Maxim

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


А как в S# задается параметр метода или конструктора, если этот параметр «проценты»?

Сорок пять процентов — 45 или 0.45?
Спасибо:

InsiderHSE

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


Maxim Перейти
А как в S# задается параметр метода или конструктора, если этот параметр «проценты»?

Сорок пять процентов — 45 или 0.45?


new Unit() {Value = 45, Type = UnitTypes.Percents}

Думаю лучше принимать в качестве параметра Юнит, и если нужно чтобы были именно проценты, то проверять тип в конструкторе и выбрасывать эксепшен если это не так.
Спасибо:
<< < 12 13 14 15 16  > >>

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

loading
clippy