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


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


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


  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 Go to
Так и сделал, но LengthIndicator с желтым кубиком, поэтому и спросил.

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


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

PS: congratz
Thanks: artemox

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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

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


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

esper

Avatar
Date: 6/22/2011
Reply


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

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

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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

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


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

esper

Avatar
Date: 6/22/2011
Reply


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

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


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

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

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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

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


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

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


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

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

esper

Avatar
Date: 6/22/2011
Reply


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

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


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

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


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

Code
BB bb = new BB();
var bottom = bb.Bottom;

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

Mikhail Sukhov

Avatar
Date: 6/22/2011
Reply


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


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

artemox

Avatar
Date: 6/22/2011
Reply


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

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

artemox

Avatar
Date: 6/22/2011
Reply


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


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


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

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

loading
clippy