Индикаторы: FreeNumFractals - страница 2

 
Ghabo:

Настройки по умолчанию. Значки фракталов на двух барах подряд. Исправьте, пожалуйста.


Исправлено в опубликованной версии. Но теперь в данном месте фрактала в режиме Accurate fractal не будет - там два бара с одинаковыми ценами экстремумов. Раньше ставились два равнозначных фрактала, теперь они не учитываются.

 
Sergey Voytsekhovsky:

Артем, посмотрите пожалуйста выше пост №7. Ответьте плиз - почему в коде в одном случае Вы используете shift, а в других пишете  i+1 и i-1, хотя по смыслу формул это и получается shift. Я уже голову сломал. Очень допускаю что я не вижу чего-то возможно очевидного, но вот чего ???

shift - это центральный бар фрактала (ну или бар, на котором не окажется фрактала после выполнения циклов влево и вправо от центрального бара с индексом shift)

А вот индекс циклов i указывает на бары слева и справа от центрального бара с индексом shift.

Ведь чтобы узнать есть ли фрактал на баре shift, нам нужно определить какие значения high[i] (или low[i]) имеют бары справа и слева от центрального.

shift передаётся в функцию из главного цикла индикатора.

Допустим, shift - это бар с номером 10. Тогда просматриваем бары 9 и 8 в цикле вправо и бары 11 и 12 в цикле влево.

Для примера рассмотрим поиск верхнего фрактала.

Для типа фрактала Inaccurate fractal нам нужно пройтись в двух циклах вправо и влево от этого бара и убедиться, что все high с индексом i находятся ниже центрального с индексом shift:

for(int i=shift-1; i>=shift-right_dimension; i--) if(high[i]>high[shift]) return(EMPTY_VALUE); 
for(int i=shift+1; i<=shift+left_dimension; i++)  if(high[i]>high[shift]) return(EMPTY_VALUE);

Если у нас размерность фрактала 2х2, то смотрим high с индексом shift-1 (9) и shift-2 (8) (просто в цикле вправо по значению i). Если хоть один из этих high выше центрального, то фрактала нет, и выходим из цикла с возвратом пустого значения. То же самое для цикла влево, но там shift+i

Для типа фрактала Accurate fractal нам нужно пройтись в двух циклах вправо и влево от этого бара и убедиться, что каждый последующий high с индексом i находится ниже предыдущего high с индексом i+1 для цикла вправо и i-1 для цикла влево:

for(int i=shift-1; i>=shift-right_dimension; i--) if(high[i]>=high[i+1]) return(EMPTY_VALUE);
for(int i=shift+1; i<=shift+left_dimension; i++)  if(high[i]>=high[i-1]) return(EMPTY_VALUE);
 
Artyom Trishkin:

shift - это центральный бар фрактала (ну или бар, на котором не окажется фрактала после выполнения циклов влево и вправо от центрального бара с индексом shift)

А вот индекс циклов i указывает на бары слева и справа от центрального бара с индексом shift.

Ведь чтобы узнать есть ли фрактал на баре shift, нам нужно определить какие значения high[i] (или low[i]) имеют бары справа и слева от центрального.

shift передаётся в функцию из главного цикла индикатора.

Допустим, shift - это бар с номером 10. Тогда просматриваем бары 9 и 8 в цикле вправо и бары 11 и 12 в цикле влево.

Для примера рассмотрим поиск верхнего фрактала.

Для типа фрактала Inaccurate fractal нам нужно пройтись в двух циклах вправо и влево от этого бара и убедиться, что все high с индексом i находятся ниже центрального с индексом shift:

Если у нас размерность фрактала 2х2, то смотрим high с индексом shift-1 (9) и shift-2 (8) (просто в цикле вправо по значению i). Если хоть один из этих high выше центрального, то фрактала нет, и выходим из цикла с возвратом пустого значения. То же самое для цикла влево, но там shift+i

Для типа фрактала Accurate fractal нам нужно пройтись в двух циклах вправо и влево от этого бара и убедиться, что каждый последующий high с индексом i находится ниже предыдущего high с индексом i+1 для цикла вправо и i-1 для цикла влево:

Добрый день. Спасибо за ответ, но .....

каков принцип расчета фракталов мне понятно, тут вопросов нет.

Непонятно другое, видимо я нечетко сформулировал, попробую еще раз.

Для обоих типов расчета фрактала - Аккурат и ИнАккурат, циклы задаются одинаково. В обоих случаях объявляется переменная i=shift-1 вправо и i=shift+1 влево. Различия появляются в телах этих циклов, в ИнАккурат используете high[shift]в обе стороны. А в Аккурат используете:  high[i+1] вправо, там где i=shift-1, то-есть получается тот же результат high[shift]

                                        high[i-1]  влево, там где i=shift+1, то-есть получается тот же результат high[shift]

Другими словами - оба типа расчета фрактала расчитываются на самом деле ОДИНАКОВО. Или я не прав ? Скажите где я ошибаюсь ???

 
Sergey Voytsekhovsky:

Добрый день. Спасибо за ответ, но .....

каков принцип расчета фракталов мне понятно, тут вопросов нет.

Непонятно другое, видимо я нечетко сформулировал, попробую еще раз.

Для обоих типов расчета фрактала - Аккурат и ИнАккурат, циклы задаются одинаково. В обоих случаях объявляется переменная i=shift-1 вправо и i=shift+1 влево. Различия появляются в телах этих циклов, в ИнАккурат используете high[shift]в обе стороны. А в Аккурат используете:  high[i+1] вправо, там где i=shift-1, то-есть получается тот же результат high[shift]

                                        high[i-1]  влево, там где i=shift+1, то-есть получается тот же результат high[shift]

Другими словами - оба типа расчета фрактала расчитываются на самом деле ОДИНАКОВО. Или я не прав ? Скажите где я ошибаюсь ???

Распишите на бумаге значения индексов на каждой итерации цикла, и увидите какой индекс с каким сравнивается. Возьмите shift равным 10 и размерность 2х2
 
Artyom Trishkin:

Что-то совсем разные графики у нас. Где искать?


И правда, разные, странно. Извиняюсь, допущена ошибка, в настройках установлено всё по умолчанию кроме параметра InpTypeFractals.

 Фракталы ставятся на соседних барах когда TYPE_FRACTAL_INACCURATE. Последний сдвоенный на EURJPY, M5, 05.10.2018 в 07:10 и 07:15.

 
Ghabo:

И правда, разные, странно. Извиняюсь, допущена ошибка, в настройках установлено всё по умолчанию кроме параметра InpTypeFractals.

 Фракталы ставятся на соседних барах когда TYPE_FRACTAL_INACCURATE. Последний сдвоенный на EURJPY, M5, 05.10.2018 в 07:10 и 07:15.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Индикаторы: FreeNumFractals

Artyom Trishkin, 2018.09.24 11:16

Исправлено в опубликованной версии. Но теперь в данном месте фрактала в режиме Accurate fractal не будет - там два бара с одинаковыми ценами экстремумов. Раньше ставились два равнозначных фрактала, теперь они не учитываются.


 
Artyom Trishkin:

В 15:25 и 15:35 не должно быть верхнего фрактала) TYPE_FRACTAL_INACCURATE


TYPE_FRACTAL_INACCURATE

 
приветсвую.подскажите.по данному индикатору.у меня почему он на мт не отображает фракталы..если запускаю график по новой видно что были сигналы.но если график запущен он не отображает новые стрелки
 
Pavel5554:
приветсвую.подскажите.по данному индикатору.у меня почему он на мт не отображает фракталы..если запускаю график по новой видно что были сигналы.но если график запущен он не отображает новые стрелки

В тестере запустите и поглядите как он себя ведёт.

 
Artyom Trishkin:

В тестере запустите и поглядите как он себя ведёт.

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