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

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

Теги:


Спасибо:


<< < 10 11 12 13 14  > >>
artemox

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


Сори, это моя ошибка. Формат заточен под РИ.
ds = StrFormat(
"%.0f"+
",%.0f"+
",%.0f"+
",%.0f"+
Вот здесь вместо нуля укажите количество знаков после запятой в вашем инструменте.

Думаю так будет универсально:

function SaveValues(filename, values)
{
fh = fopen( filename, "w");
if( fh )
{
StartBar = Max(0, BarCount-200);
for (i = StartBar; i < BarCount; i++)
{
ds = StrFormat(
"%.4f"+
",%.4f"+
",%.4f"+
",%.4f"+
",%.0f"+
",%.6f"+
"\n",
O[i], H[i], L[i], C[i], V[i], values[i]);
fputs( ds, fh );
}
fclose( fh );
}
}
Спасибо:

Maxim

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


esper

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


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

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

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

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

3) Я не могу делать юнит тесты, так как у меня нет возможности создавать файлы.
Не пользуюсь я сторонними программами.

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

Maxim

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


artemox
Maxim

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


Maxim, давайте все-таки переиспользовать другие индикаторы. ООП как никак.
К примеру сравните WilliamsR и StochasticK, теоретически расчеты очень похожы, а разница в реализации колосальная.


Ок. Не обратил внимание на существование LLV и HHV.
Спасибо:

esper

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


artemox
Думаю так будет универсально:

function SaveValues(filename, values)
{
fh = fopen( filename, "w");
if( fh )
{
StartBar = Max(0, BarCount-200);
for (i = StartBar; i < BarCount; i++)
{
ds = StrFormat(
"%.4f"+
",%.4f"+
",%.4f"+
",%.4f"+
",%.0f"+
",%.6f"+
"\n",
O[i], H[i], L[i], C[i], V[i], values[i]);
fputs( ds, fh );
}
fclose( fh );
}
}

Спасибо, теперь все нормально.
Спасибо:

Mikhail Sukhov

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


artemox
sergey.masyura

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

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


40 индюков! Это уже больше чем у ТСЛаб. Такими темпами из до лидеров ТА рынка добежим до осени.
Спасибо:

esper

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


Mikhail Sukhov
40 индюков! Это уже больше чем у ТСЛаб. Такими темпами из до лидеров ТА рынка добежим до осени.

Пора начинать думать над разработкой визуализатора[smile]
Спасибо:

Maxim

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


Предложение.
Что бы не было путаницы, называть индикаторы согласно тому, как их называют здесь:
http://www2.wealth-lab.c...t=Standard%20Indicators

Насколько я понял:
StochK = StochasticK
Highest = HHV
Lowest = LLV

Првильно? Может переименовать?

Нужно ли делать отдельныне BBandLower и BBandUpper, если уже сделан BollingerBands общий?

Спасибо:

artemox

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


Mikhail Sukhov
40 индюков! Это уже больше чем у ТСЛаб. Такими темпами из до лидеров ТА рынка добежим до осени.

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

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

artemox

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


Maxim
Предложение.
Что бы не было путаницы, называть индикаторы согласно тому, как их называют здесь:
http://www2.wealth-lab.c...t=Standard%20Indicators

Насколько я понял:
StochK = StochasticK
Highest = HHV
Lowest = LLV

Првильно? Может переименовать?

Нужно ли делать отдельныне BBandLower и BBandUpper, если уже сделан BollingerBands общий?



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


Спасибо:

Maxim

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


artemox

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


В этом случае можно составить экселик, где будут три столбика "Как у нас называется", "Как в амиброкере", "Как в лабе".
Спасибо:
<< < 10 11 12 13 14  > >>

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

loading
clippy