Индикатор - рефакторинг

Индикатор - рефакторинг
Atom
6/16/2011
Mikhail Sukhov


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

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

Tags:


Thanks:


< 1 2 3 4  >
Sergey Masyura

Avatar
Date: 6/22/2011
Reply


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

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

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

PS: congratz

Thanks: artemox

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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

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

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

Thanks:

esper

Avatar
Date: 6/22/2011
Reply


По индикаторам у которых несколько значений было предложение сделать так:

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

Thanks:

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


esper;9053: По индикаторам у которых несколько значений было предложение сделать так:

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

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

Thanks:

esper

Avatar
Date: 6/22/2011
Reply


Mikhail Sukhov;9058:

esper;9053: По индикаторам у которых несколько значений было предложение сделать так:

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

Насчет массива понял, а вот при чем здесь enum? Чтобы значения можно было получать так:

BB bb = new BB();
var bottom = bb.Values[BB.Fields.Bottom];
Thanks:

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


esper;9059:

Mikhail Sukhov;9058:

esper;9053: По индикаторам у которых несколько значений было предложение сделать так:

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

Насчет массива понял, а вот при чем здесь enum? Чтобы значения можно было получать так:

BB bb = new BB(); var bottom = bb.Values[BB.Fields.Bottom];


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

```csharp
BB bb = new BB();
var bottom = bb.Bottom;
Thanks:

esper

Avatar
Date: 6/22/2011
Reply


Mikhail Sukhov;9060:

esper;9059:

Mikhail Sukhov;9058:

esper;9053: По индикаторам у которых несколько значений было предложение сделать так:

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

Насчет массива понял, а вот при чем здесь enum? Чтобы значения можно было получать так:

BB bb = new BB(); var bottom = bb.Values[BB.Fields.Bottom];

> 
> А чем это лучше такого?:
> 
> ```csharp
BB bb = new BB();
var bottom = bb.Bottom;

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

Thanks:

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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

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

Thanks:

artemox

Avatar
Date: 6/22/2011
Reply


sergey.masyura: Надо еще конфиг для R# указывать. Resharper->Options->Settings Manager. Там выбрать папку где лежит R#.R#Settings и в комбо выбрать его. Спасибо я думал что персональные сетинги на проект с индивидуальными настройками не влияют, и все равно в LengthIndicator пожелтела строка 37 с this.Buffer и this.Length

Thanks:

artemox

Avatar
Date: 6/22/2011
Reply


Mikhail Sukhov:

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

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

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

Thanks:
< 1 2 3 4  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy