индикатор фракталы
Atom Ответить
25.11.2013


Здравствуйте. Подскажите, пожалуйста, как пользоваться индикатором фракталы?
У него (Fractals) есть FractalPart Up и Down. Что возвращает метод GetCurrentValue<>()? Например, я создал такой индикатор, как проверить, что на данной свечке получен фрактал? Up или Down? Можно ли узнать значение high/low свечки, на которой получен фрактал?
Пытался сам разобраться с исходниками индикатора, но что-то не получается.

Теги:


Спасибо:




6 Ответов
IvanB

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


pft_man Go to
Здравствуйте. Подскажите, пожалуйста, как пользоваться индикатором фракталы?
У него (Fractals) есть FractalPart Up и Down. Что возвращает метод GetCurrentValue<>()?

T GetCurrentValue<T>()
этот метод возвращает значение текущего состояния индикатора в виде типа T, т.е. текущее значение индикатора преобразовывается в тип T, который указан в угловых скобках.
pft_man Go to

Например, я создал такой индикатор, как проверить, что на данной свечке получен фрактал? Up или Down? Можно ли узнать значение high/low свечки, на которой получен фрактал?
Пытался сам разобраться с исходниками индикатора, но что-то не получается.

Примерно так Вы получаете значение фрактала на свечу:
fractal.Process(candle)
здесь метод Process вернет комплексное значение, состоящее из Up и Down, в виде коллекции.
Затем для каждого Up и Down Вы анализируете что вернет метод GetCurrentValue(), и на основе этого делаете вывод о том, что у Вас Up или Down.
И если хотите посмотреть свойства свечи, по которой сработал индикатор, то анализируете свечу candle.
Спасибо:

pft_man

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


Ok, пытаюсь нарисовать эти фракталы на графике.

Сначала попробовал нарисовать их стандартно:


Но тут метод ProcessValues вызывает Exception о том, что индикатор пустой (точнее не установлено значение индикатора). И правильно, ведь у нас в индикаторе fractals есть Up и Down и один из них (или оба) всегда будет пустым, потому что обычно на одной свечке не бывает сразу двух фракталов - и вверх и вниз. Поэтому и нарисовать мы это значение не можем, поскольку его просто не существует. Это отличает этот индикатор от, например, BollingerBands, у которого на всех свечках есть значение и верхней полосы и нижней.

Поэтому я разделил отрисовку на две части - для фракталов вверх и для фракталов вниз, включив проверку на пустоту индикатора. Для краткости привожу только фрагмент кода для фракталов вверх.


Но теперь почему-то все фракталы (точки на графике) рисуются в левой части графика (см. рисунок)! Горизонтальные линии я добавил сам, они указывают на центральный бар фрактала. Это ошибка в библиотеке или можно в моём коде что-то поправить?

************************
Update. Кстати, заметил, что эти фракталы рисуются на каждом баре поочереди, начиная с нулевого. Как так, ведь в ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>) передаётся та свеча, на которой обнаружен фрактал?
fractals.jpg 147 KB (2)
Автор топика
Спасибо:

pft_man

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


Иван, что с этим делать-то, возможно поправить? Очень хочется фракталы на графике нарисовать.
Автор топика
Спасибо:

IvanB

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


pft_man Go to
Иван, что с этим делать-то, возможно поправить? Очень хочется фракталы на графике нарисовать.


Разбираемся с вопросом...
Спасибо:

pft_man

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


Две недели прошло, удалось что-нибудь выяснить?
Автор топика
Спасибо:

IvanB

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


pft_man Go to
Две недели прошло, удалось что-нибудь выяснить?


Пока что не удалось. Работаем над этим.
Спасибо:


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

loading
clippy