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

Теги:


Спасибо:




340 Ответов
<< < 5 6 7 8 9  > >>
artemox

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


sergey.masyura Перейти

Само название SimpleIndicator уже не очень подходит для базового класса.


Предлагайте как лучше, я исходил из того что это базовый класс для всех простых(однозначных) индикаторов.
Спасибо:

artemox

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


Maxim Перейти
Индикаторы Peak и Trough.

Столкнулся с тем, что мое понимание этих индикаторов отличается от того, которое в Ами.



SYNTAX trough(ARRAY, change, n = 1)
RETURNS ARRAY
FUNCTION Gives the value of ARRAY n-th trough(s) ago. This uses the Zig Zag function (see Zig Zag) to determine the troughs. Caveat: this function is based on Zig-Zag indicator and may look into the future.
EXAMPLE trough(close,5,1)

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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.06.2011
Ответить


artemox Перейти
sergey.masyura Перейти

Само название SimpleIndicator уже не очень подходит для базового класса.


Предлагайте как лучше, я исходил из того что это базовый класс для всех простых(однозначных) индикаторов.


Мне так же кажется, что настал момент для очередного рефакторинга. Класс Ma, который я сделал для только скользящих, оказался пригоден и для других индикаторов (IsFormed Buffer - это все и другим относиться). Поэтому, есть предложение ввести два супер класса: SingleValueIndicator и MultiValueIndicator. И все текущие индикаторы (кроме наверное Болингера) отнаследовать от SingleValueIndicator.

Насчет названий. У нас сейчас фактически 2 стиля. Первый с именами, второй через аббревиатуры. Какой лучше?
Автор топика
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 13.06.2011
Ответить


Mikhail Sukhov Перейти
artemox Перейти
sergey.masyura Перейти

Само название SimpleIndicator уже не очень подходит для базового класса.


Предлагайте как лучше, я исходил из того что это базовый класс для всех простых(однозначных) индикаторов.


Мне так же кажется, что настал момент для очередного рефакторинга. Класс Ma, который я сделал для только скользящих, оказался пригоден и для других индикаторов (IsFormed Buffer - это все и другим относиться). Поэтому, есть предложение ввести два супер класса: SingleValueIndicator и MultiValueIndicator. И все текущие индикаторы (кроме наверное Болингера) отнаследовать от SingleValueIndicator.

Насчет названий. У нас сейчас фактически 2 стиля. Первый с именами, второй через аббревиатуры. Какой лучше?


SingleValueIndicator и MultiValueIndicator вполне разумно. Для них я так понимаю еще будет базовый класс BaseIndicator, где, например, IsFormed будет.

По названиям думаю лучше через имена.
Спасибо:

artemox

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


sergey.masyura Перейти

Mikhail Sukhov Перейти

Насчет названий. У нас сейчас фактически 2 стиля. Первый с именами, второй через аббревиатуры. Какой лучше?

По названиям думаю лучше через имена.


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.06.2011
Ответить


artemox Перейти

У меня 2010 проф.
Папки PublicAssemblies не было. Создал папку и добавил файлы.
При добавлении ссылки в проект файлы из PublicAssemblies в списке появились.
Добавил в IndicatorsTest ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll, ошибка все равно не исчезла.


Ошибка у меня. Я проект скомпилировал под 3.5, и сам проект с тестами написан на .NET 4. Я бы залил новую версию Ecng.UnitTesting под 4.0, но юзер goricap залочил все файлы.

Ау, goricap, отпустите файлы!RollEyes
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 14.06.2011
Ответить


Mikhail Sukhov Перейти
Мне так же кажется, что настал момент для очередного рефакторинга. Класс Ma, который я сделал для только скользящих, оказался пригоден и для других индикаторов (IsFormed Buffer - это все и другим относиться). Поэтому, есть предложение ввести два супер класса: SingleValueIndicator и MultiValueIndicator. И все текущие индикаторы (кроме наверное Болингера) отнаследовать от SingleValueIndicator.

Не только Боллинджера, еще у MACD, RVI по два значения

Mikhail Sukhov Перейти
Насчет названий. У нас сейчас фактически 2 стиля. Первый с именами, второй через аббревиатуры. Какой лучше?

Не смотря на то, что аббревиатуры понятней, видимо по именам, чтобы не было путаницы
Спасибо:

esper

Фотография
Программист
Дата: 14.06.2011
Ответить


sergey.masyura Перейти
SingleValueIndicator и MultiValueIndicator вполне разумно. Для них я так понимаю еще будет базовый класс BaseIndicator, где, например, IsFormed будет.

Так может MultiValueIndicator унаследовать от SingleValueIndicator?

Mikhail Sukhov Перейти
artemox Перейти

У меня 2010 проф.
Папки PublicAssemblies не было. Создал папку и добавил файлы.
При добавлении ссылки в проект файлы из PublicAssemblies в списке появились.
Добавил в IndicatorsTest ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll, ошибка все равно не исчезла.


Ошибка у меня. Я проект скомпилировал под 3.5, и сам проект с тестами написан на .NET 4. Я бы залил новую версию Ecng.UnitTesting под 4.0, но юзер goricap залочил все файлы.

Ау, goricap, отпустите файлы!RollEyes

Может проект с тестами тоже сделаем под 3.5?
Спасибо:

Maxim

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


Mikhail Sukhov Перейти
artemox Перейти

У меня 2010 проф.
Папки PublicAssemblies не было. Создал папку и добавил файлы.
При добавлении ссылки в проект файлы из PublicAssemblies в списке появились.
Добавил в IndicatorsTest ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll, ошибка все равно не исчезла.


Ошибка у меня. Я проект скомпилировал под 3.5, и сам проект с тестами написан на .NET 4. Я бы залил новую версию Ecng.UnitTesting под 4.0, но юзер goricap залочил все файлы.

Ау, goricap, отпустите файлы!RollEyes


Как их отпустить?
Вроде ничего не делал необычного.
Спасибо:

Maxim

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


Mikhail Sukhov Перейти

Мне так же кажется, что настал момент для очередного рефакторинга. Класс Ma, который я сделал для только скользящих, оказался пригоден и для других индикаторов (IsFormed Buffer - это все и другим относиться). Поэтому, есть предложение ввести два супер класса: SingleValueIndicator и MultiValueIndicator. И все текущие индикаторы (кроме наверное Болингера) отнаследовать от SingleValueIndicator.

Насчет названий. У нас сейчас фактически 2 стиля. Первый с именами, второй через аббревиатуры. Какой лучше?


Еще есть индикаторы, которые принимают не один параметр в Add, а два.
Но их, наверно, не много. И следовательно можно их делать отдельно.

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

esper

Фотография
Программист
Дата: 14.06.2011
Ответить


Maxim Перейти
Как их отпустить?
Вроде ничего не делал необычного.

Если все нужные изменения залиты в репозиторий, то Undo pending changes на всё, иначе заливаем нужные изменения и потом Undo pending changes, в крайнем случае Check in на всё
Спасибо:

maze9a

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


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

Возможно это поможет

Спасибо.
Спасибо:

Maxim

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


esper Перейти
Maxim Перейти
Как их отпустить?
Вроде ничего не делал необычного.

Если все нужные изменения залиты в репозиторий, то Undo pending changes на всё, иначе заливаем нужные изменения и потом Undo pending changes, в крайнем случае Check in на всё


Это все сделано давно.
Единственное подозрение на файл macd.cs
С какого то момента времени с ним произошел какой то косяк.
Его нет в локальном проекте, но сабвершен его не хочет закачивать с репозитория.

Хотя возможно и не в нем проблема.

А можно как нить разлочить со стороны репозитория?
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 14.06.2011
Ответить


Maxim Перейти
esper Перейти
Maxim Перейти
Как их отпустить?
Вроде ничего не делал необычного.

Если все нужные изменения залиты в репозиторий, то Undo pending changes на всё, иначе заливаем нужные изменения и потом Undo pending changes, в крайнем случае Check in на всё


Это все сделано давно.
Единственное подозрение на файл macd.cs
С какого то момента времени с ним произошел какой то косяк.
Его нет в локальном проекте, но сабвершен его не хочет закачивать с репозитория.

Хотя возможно и не в нем проблема.

А можно как нить разлочить со стороны репозитория?


Зачем использовать svn, если репозиторий под team foundation server?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.06.2011
Ответить


Maxim Перейти

Его нет в локальном проекте, но сабвершен его не хочет закачивать с репозитория.

Хотя возможно и не в нем проблема.

А можно как нить разлочить со стороны репозитория?


Можно по скайпу, можно телефоном. Думаю, объяснить будет проще, там разговора минут на 10.
Автор топика
Спасибо:

artemox

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


Благодаря Maxim-у выяснилось, что не всегда можно протестировать на данных без полной истории. Например ЕМА.
Поэтому скрипт выгрузки теперь берет первые 200 баров, а не последние.

folder = "E:\\";

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

SaveValues(folder+"Ema.txt", EMA(C,20));
Спасибо:

esper

Фотография
Программист
Дата: 15.06.2011
Ответить


Добавил тест для BollingerBands с использованием Sma, т.к. с использованием Ema не совпадает значение средней ни с Ami, ни с Metastock, данные по Ema выгружал начиная с первой свечки, т.е. зависимости от предыдущих данных быть не должно.Кто делал тест для Ema с использованием файла, можете так же выгрузить данные для BollingerBands? Или оставим тест на базе Sma?

По поводу атрибута Ignore для нерабочих тестов, а нужно ли оно? Когда есть нерабочий тест и он проваливается - видно что необходимо поправить, а если стоит Ignore - создается иллюзия что все работает.
Спасибо:

Maxim

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


sergey.masyura Перейти
Maxim Перейти
esper Перейти
Maxim Перейти
Как их отпустить?
Вроде ничего не делал необычного.

Если все нужные изменения залиты в репозиторий, то Undo pending changes на всё, иначе заливаем нужные изменения и потом Undo pending changes, в крайнем случае Check in на всё


Это все сделано давно.
Единственное подозрение на файл macd.cs
С какого то момента времени с ним произошел какой то косяк.
Его нет в локальном проекте, но сабвершен его не хочет закачивать с репозитория.

Хотя возможно и не в нем проблема.

А можно как нить разлочить со стороны репозитория?


Зачем использовать svn, если репозиторий под team foundation server?


На мой вопрос чем лучше пользоваться ответили, что нет разницы.

SVN я пользовался раньше, а TFS нет.
Просто выбрал, что привычней.
Спасибо:

artemox

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


esper Перейти
Кто делал тест для Ema с использованием файла, можете так же выгрузить данные для BollingerBands? Или оставим тест на базе Sma?

Попробую вечером.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2011
Ответить


Maxim Перейти

SVN я пользовался раньше, а TFS нет.
Просто выбрал, что привычней.


Максим, вопрос с локом еще актуальный. Можете отпустить файлы, хотя бы References?
Автор топика
Спасибо:

Maxim

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


Mikhail Sukhov Перейти
Maxim Перейти

SVN я пользовался раньше, а TFS нет.
Просто выбрал, что привычней.


Максим, вопрос с локом еще актуальный. Можете отпустить файлы, хотя бы References?


Да я бы с радостью.
Только вот не знаю, что делать.
Утром звонил Вам в скайп. Щас тоже в скайпе. Жду помощи.
Спасибо:

maze9a

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


Михаил может проще Вам зайти под логином Maxim и разлочить из студии эти файлы?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2011
Ответить


maze9a Перейти
Михаил может проще Вам зайти под логином Maxim и разлочить из студии эти файлы?


Забыл написать - все разлочили.
Автор топика
Спасибо:

artemox

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


artemox Перейти
esper Перейти
Кто делал тест для Ema с использованием файла, можете так же выгрузить данные для BollingerBands? Или оставим тест на базе Sma?

Попробую вечером.

Вроде получилось.
Стоит ли два теста ББ оставлять ЕМА и SMA?
Спасибо:

artemox

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


Михаил,
когда Вы зальете SingleValueIndicator и MultiValueIndicator?
Спасибо:
<< < 5 6 7 8 9  > >>

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

loading
clippy