Индикатор - рефакторинг
Atom
16.06.2011
Mikhail Sukhov


Первый существенный рефакторинг. Произвести нужно, различий уже много в каждом из индюков. Что бросилось в глаза:


  1. Класса нужно объявлять public. Иначе их не будет видно с наружи (в роботе).
  2. Предлагаю все воспользоваться R# и применить выложенные настройки (применять через аддон к R# - rsm.codeplex.com). Файл должен быть "зеленым", в идеале вообще без меток.
  3. Давайте разнесем индюки по разным папкам. Я создал 2 - для тренд и волатильность. Подозреваю, что их недостаточно. При переносе файла так же нужно менять и namespace чтобы было правильнее с точки зрения C#.
  4. Есть 2 класса - SingleValueIndicator и LengthIndicator. Предлагаю свои индюки отнаследовать именно от них (какой именно подойдет можно понять по коду).
  5. Имена. Будем делать длинными? Посмотрите как получилось со скользящими. Нормально? Если да, то давайте и свои так же переделаем.


Теги:


Спасибо:


< 1 2 3 4  >
Sergey Masyura

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


artemox
Так и сделал, но LengthIndicator с желтым кубиком, поэтому и спросил.

ЗЫ:
У меня юбилей на форуме - 100 сообщений [cool]


Надо еще конфиг для R# указывать. Resharper->Options->Settings Manager.
Там выбрать папку где лежит R#.R#Settings и в комбо выбрать его.

PS: congratz
Спасибо: artemox

Mikhail Sukhov

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


artemox
Так и сделал, но LengthIndicator с желтым кубиком, поэтому и спросил.

ЗЫ:
У меня юбилей на форуме - 100 сообщений [cool]


А я свое 3000-ое пропустил... Ну и нафлудил.
Спасибо:

esper

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


По индикаторам у которых несколько значений было предложение сделать так:
artemox
MultiValueIndicator возможно как массив значений.
А обращение к элементам массива через перечисление, объявленное в каждом классе.

Остановимся на нем?
Спасибо:

Mikhail Sukhov

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


esper
По индикаторам у которых несколько значений было предложение сделать так:
artemox
MultiValueIndicator возможно как массив значений.
А обращение к элементам массива через перечисление, объявленное в каждом классе.

Остановимся на нем?


Насчет массива понял, а вот при чем здесь enum?
Спасибо:

esper

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


Mikhail Sukhov
esper
По индикаторам у которых несколько значений было предложение сделать так:
artemox
MultiValueIndicator возможно как массив значений.
А обращение к элементам массива через перечисление, объявленное в каждом классе.

Остановимся на нем?


Насчет массива понял, а вот при чем здесь enum?

Чтобы значения можно было получать так:
Код
BB bb = new BB();
var bottom = bb.Values[BB.Fields.Bottom];
Спасибо:

Mikhail Sukhov

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


esper
Mikhail Sukhov
esper
По индикаторам у которых несколько значений было предложение сделать так:
artemox
MultiValueIndicator возможно как массив значений.
А обращение к элементам массива через перечисление, объявленное в каждом классе.

Остановимся на нем?


Насчет массива понял, а вот при чем здесь enum?

Чтобы значения можно было получать так:
Код
BB bb = new BB();
var bottom = bb.Values[BB.Fields.Bottom];


А чем это лучше такого?:

Код
BB bb = new BB();
var bottom = bb.Bottom;
Спасибо:

esper

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


Mikhail Sukhov
esper
Mikhail Sukhov
esper
По индикаторам у которых несколько значений было предложение сделать так:
artemox
MultiValueIndicator возможно как массив значений.
А обращение к элементам массива через перечисление, объявленное в каждом классе.

Остановимся на нем?


Насчет массива понял, а вот при чем здесь enum?

Чтобы значения можно было получать так:
Код
BB bb = new BB();
var bottom = bb.Values[BB.Fields.Bottom];


А чем это лучше такого?:

Код
BB bb = new BB();
var bottom = bb.Bottom;

Да в общем то ничем, разве что у всех индикаторов будет одинаковый интерфейс
Спасибо:

Mikhail Sukhov

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


esper
Да в общем то ничем, разве что у всех индикаторов будет одинаковый интерфейс


Он и так будет. Values никто прятать не будет. Другой вопрос, что все равно нужно ввозидить для каждого идюка свой enum. Так а зачем его вводить, если мы используем ООП? Вот он класс, вот оно свойство.
Спасибо:

artemox

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


sergey.masyura
Надо еще конфиг для R# указывать. Resharper->Options->Settings Manager.
Там выбрать папку где лежит R#.R#Settings и в комбо выбрать его.

Спасибо я думал что персональные сетинги на проект с индивидуальными настройками не влияют,
и все равно в LengthIndicator пожелтела строка 37 с this.Buffer и this.Length
Спасибо:

artemox

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


Mikhail Sukhov
esper
Да в общем то ничем, разве что у всех индикаторов будет одинаковый интерфейс


Он и так будет. Values никто прятать не будет. Другой вопрос, что все равно нужно ввозидить для каждого идюка свой enum. Так а зачем его вводить, если мы используем ООП? Вот он класс, вот оно свойство.


Свойства нужны в любом случае (для индивидуального использования индикатора в стратегии)
И Values нужны (для визуализатора)
Считаю что для Values необходим какой-то механизм идентификации сути каждого элемента.
В том же визуализаторе кроме самих линий хорошо бы знать их наименования. Как бы сделать это красиво и универсально?
Спасибо:
< 1 2 3 4  >

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

loading
clippy