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

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


С Амиброкером ATR немного расходится.

Для первой свечи Ами считает ATR = H-L поскольку клоуз предыдущего дня не определён. S# же считает TrueRange не определённым. А так как используется WMA - это влияет на всё последуещее.

Если параметры системы привязывать к дневному ATR - сильно заметно.

Спасибо:

Евгений

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


Просьба, помогите с выгрузкой данных для тестов.

Нужны по:

Acceleration
Alligator
AwesomeOscillator
Fractals
GatorOscillator
MarketFacilitationIndex
Ichimoku
MedianPrice
Спасибо:

Den

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


Уважаемые авторы!

Заметил что ни в одном индикаторе Indicators\Indicators\Trend\*MovingAverage, StandartDeviation, Macd не вызывается событие Changed. Во всех расчетах явно проверяется IsFormed() и нужно только добавить вызов RaiseChangedEvent();

Поправьте, пожалуйста, у кого есть право на запись.
Спасибо:

Mikhail Sukhov

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


Den Перейти
у кого есть право на запись.


Давайте свой логин на КодеПлекс, дам такое право. Проект общий и опен-сорс, поэтому авторов может быть много.
Автор топика
Спасибо:

artemox

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


Евгений Перейти
Просьба, помогите с выгрузкой данных для тестов.

Нужны по:

Acceleration
Alligator
AwesomeOscillator
Fractals
GatorOscillator
MarketFacilitationIndex
Ichimoku
MedianPrice


MarketFacilitationIndex = ( High - Low )/Volume ?

Могу выгрузить. По остальным надо разбираться, но сейчас времени нет :(
Если найдете формулы для ами то будет проще
Спасибо:

esper

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


Den Перейти
Уважаемые авторы!

Заметил что ни в одном индикаторе Indicators\Indicators\Trend\*MovingAverage, StandartDeviation, Macd не вызывается событие Changed. Во всех расчетах явно проверяется IsFormed() и нужно только добавить вызов RaiseChangedEvent();

Поправьте, пожалуйста, у кого есть право на запись.


Для индикаторов, которые наследуются от SingleValueIndicator<T> и LengthIndicator<T>, вызов события выполняется при установке нового значения индикатора.
Спасибо:

Den

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


esper Перейти

Для индикаторов, которые наследуются от SingleValueIndicator<T> и LengthIndicator<T>, вызов события выполняется при установке нового значения индикатора.


Да, все правильно. Поправил только порядок присвоения в Macd: сначала signalValue, потом Value.
Спасибо:

Евгений

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


artemox Перейти
Евгений Перейти
Просьба, помогите с выгрузкой данных для тестов.

Нужны по:

Acceleration
Alligator
AwesomeOscillator
Fractals
GatorOscillator
MarketFacilitationIndex
Ichimoku
MedianPrice


MarketFacilitationIndex = ( High - Low )/Volume ?

Могу выгрузить. По остальным надо разбираться, но сейчас времени нет :(
Если найдете формулы для ами то будет проще



Acceleration - http://ta.mql4.com/ru/in...cceleration_deceleration
Alligator - http://ta.mql4.com/ru/indicators/bills/alligator
AwesomeOscillator - http://ta.mql4.com/ru/indicators/bills/awesome
Fractals - http://ta.mql4.com/ru/indicators/bills/fractal
GatorOscillator - http://ta.mql4.com/ru/indicators/bills/gator
MarketFacilitationIndex - http://ta.mql4.com/indic...arket_facilitation_index
Ichimoku - http://www.fxtrader.ru/t...-indikator-ishimoku.html

Спасибо:

Tester

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


Проверьте пожайлуста, возможно для SimpleMovingAverage такой код лучше.

Код
public override void Add(decimal newValue)
{
            Buffer.Add(newValue);

            if (!IsFormed)
                return;
		    
            Value = Buffer.Sum() / Length;
		    Buffer.RemoveAt(0);
}
Спасибо:

Den

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


Tester Перейти
Проверьте пожайлуста, возможно для SimpleMovingAverage такой код лучше.


Код
public override void Add(decimal newValue)
{
            Buffer.Add(newValue);

            if (!IsFormed)
                return;
		    
            Value = Buffer.Sum() / Length;
		    Buffer.RemoveAt(0);
}

Это неверный код, т.к. при удалении первого элемента буффера, нужно также вычитать из Value его вклад.
Спасибо:

Mikhail Sukhov

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


Den Перейти
Это неверный код, т.к. при удалении первого элемента буффера, нужно также вычитать из Value его вклад.


Плюс еще Sum каждый раз будет весь массив пробегать.
Автор топика
Спасибо:

artemox

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



Евгений, это для метатрейдера.
Я обещал выгрузить готовые формулы для ами (это файлы с расширением afl)
Спасибо:

Евгений

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


artemox Перейти

Евгений, это для метатрейдера.
Я обещал выгрузить готовые формулы для ами (это файлы с расширением afl)


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

Mikhail Sukhov

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


Евгений Перейти
artemox Перейти

Евгений, это для метатрейдера.
Я обещал выгрузить готовые формулы для ами (это файлы с расширением afl)


Неверно вас понял, я думал формулы как рассчитываются индикаторы нужны. Так мне поискать исходный код расчета индикаторов для ами? Я просто не знаком с ним.


А зачем нам формулы? Нам разве не готовые данные нужны, чтобы по ним в юнит тестах сверяться?
Автор топика
Спасибо:

Евгений

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


Mikhail Sukhov Перейти
Евгений Перейти
artemox Перейти

Евгений, это для метатрейдера.
Я обещал выгрузить готовые формулы для ами (это файлы с расширением afl)


Неверно вас понял, я думал формулы как рассчитываются индикаторы нужны. Так мне поискать исходный код расчета индикаторов для ами? Я просто не знаком с ним.


А зачем нам формулы? Нам разве не готовые данные нужны, чтобы по ним в юнит тестах сверяться?


Именно так, нужны данные. Откуда их выгрузить и как?
Спасибо:

Mikhail Sukhov

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


Евгений Перейти

Именно так, нужны данные. Откуда их выгрузить и как?


Оттуда, откуда до этого выгружали. Откуда из выгружали?
Автор топика
Спасибо:

Евгений

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


Mikhail Sukhov Перейти
Евгений Перейти

Именно так, нужны данные. Откуда их выгрузить и как?


Оттуда, откуда до этого выгружали. Откуда из выгружали?


Не знаю, поэтому и спрашиваю
Спасибо:

Mikhail Sukhov

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


Евгений Перейти
Mikhail Sukhov Перейти
Евгений Перейти

Именно так, нужны данные. Откуда их выгрузить и как?


Оттуда, откуда до этого выгружали. Откуда из выгружали?


Не знаю, поэтому и спрашиваю


Тоже не знаю. Вот те на, потеряли незаменимого помощника, кто нам данные поставлял.
Автор топика
Спасибо:

esper

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


Mikhail Sukhov Перейти
Тоже не знаю. Вот те на, потеряли незаменимого помощника, кто нам данные поставлял.


Мне кажется, никого мы не потеряли :) Просто данные выгружали из AmiBroker, но этих индикаторов там нет, поэтому чтобы выгрузить данные нужны формулы этих индикаторов для Ami. Можно еще в Metastock-е посмотреть, возможно там есть эти индикаторы.
Спасибо:

Mikhail Sukhov

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


esper Перейти
Mikhail Sukhov Перейти
Тоже не знаю. Вот те на, потеряли незаменимого помощника, кто нам данные поставлял.


Мне кажется, никого мы не потеряли :) Просто данные выгружали из AmiBroker, но этих индикаторов там нет, поэтому чтобы выгрузить данные нужны формулы этих индикаторов для Ami. Можно еще в Metastock-е посмотреть, возможно там есть эти индикаторы.


Вопрос, а зачем юнит тесты разнесли по разным классам, один как индюк. Мне кажется, что правильнее было бы разделять не по индюкам, а по сценариям тестирование: сценарий по проверочным данным, сценарий нагрузки, сценарий неправильных данных. Лицезреть 100 классов с одним методом не в айс.
Автор топика
Спасибо:

artemox

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


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

По поводу юнит тестов - так исторически сложилось. Ведь изначально каждый писал "ручной" юнит тест под свой индикатор.
А потом все универсализировалось. Конечно сейчас все файловые тесты проще в одном классе разместить
Спасибо:

Mikhail Sukhov

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


artemox Перейти
Данные может выгрузить любой, формула выгрузки на форуме есть.
Основная проблема найти правльную формулу, т.к. таких встроенных индикаторов нет.


Хех, мы уже опередили попсовые программы.Cool

artemox Перейти

По поводу юнит тестов - так исторически сложилось. Ведь изначально каждый писал "ручной" юнит тест под свой индикатор.
А потом все универсализировалось. Конечно сейчас все файловые тесты проще в одном классе разместить


Поможете их в один файл перенести + поправить на использование TestRunner?
Автор топика
Спасибо:

artemox

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


Mikhail Sukhov Перейти

Поможете их в один файл перенести + поправить на использование TestRunner?

Те тесты, которые с файлами работают, перенесу в один юнит без проблем. А с индивидуальными тестами придется повозиться...
Спасибо:

JackSparrow

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


Давайте я тоже что нибудь напишу. Предлагаю Optimal Tracking и LaGuerra
Спасибо:

Mikhail Sukhov

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


JackSparrow Перейти
Давайте я тоже что нибудь напишу. Предлагаю Optimal Tracking и LaGuerra


Логин на кодеплексе какой?
Автор топика
Спасибо:
<< < 7 8 9 10 11  > >>

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

loading
clippy