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

Теги:


Спасибо:


<< < 9 10 11 12 13  > >>
artemox

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


maze9a Перейти
artemox я посмотрел твой комент в MomentumTest, у меня тоже вылезает такая ошибка, поэтому я не стал использовать Assert из Ecng.UnitTesting. Если разберешся в чем тут проблема напиши пожалуйста.

Я думаю тут нам быстрее помогут создатели Ecng.UnitTesting
Спасибо:

artemox

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


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

Тогда тестирование можно будет оформлять в виде строчки:
TextTestExecuter.ByClosePrice(new Momentum(20), _dataUri);
Спасибо:

artemox

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


maze9a Перейти

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


Вобщем здравая мысль. Переделаю :)
Спасибо:

artemox

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


Maxim Перейти

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


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

artemox

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


artemox Перейти
maze9a Перейти

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


Вобщем здравая мысль. Переделаю :)


TextTestReader теперь игнорирует строки-комментарии, начинающиеся с символа "#".
Соответственно все свои тест-файлы назвал по имени индикатора и внутри снабдил строчкой с описанием.
Спасибо:

esper

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


artemox, данные для тестов выгружаются из AmiBroker? Можете вкратце объяснить как это сделать?
Спасибо:

artemox

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


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

}

SaveValues("D:\\StochK.txt",StochK(25, 1));
Спасибо: esper

esper

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


А каким образом указывается бумага для которой экспортируем данные?
Спасибо:

artemox

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


Текущая бумага (выбранная в выпадающем списке) и будет экспортироваться.
Если инд считается по одному значению, а не по всей свече, то указывается так: ROC( Close, 30)
Спасибо:

esper

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


Что-то не выходит выгрузить данные. В амиброкере импортирую данные из метастока, открывается график, добавляю новую формулу, после применения создается файл, но там данные левые, т.е. цена в свечках с дробной частью, а в файле все числа целые
Спасибо:
<< < 9 10 11 12 13  > >>

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

loading
clippy