Фрактал Мандельброта – изучение и применение в торговле. Использование фракталов на форекс

Технический анализ всевозможных числовых последовательностей, к которым относятся и котировки активов за определенный период, осуществляется разнообразными математическими методами. Ни один из них не является универсальным, а каждый их них эффективен лишь при определенных условиях. Далее рассмотрим свойства фрактала Мандельброта и его применение в анализе на форекс.

В общем случае фракталами в математике называются такие множества чисел или геометрических фигур, которые обладают свойством самоподобия. Любой объект с этим свойством в определенной степени совпадает с частью самого себя. При этом каждая часть может, в свою очередь, состоять из других частей, подобных ей. Количество таких самоподобных уровней может быть как бесконечным, так и конечным. На рынке форекс количество самоподобных уровней ограничено снизу тиковым графиком.

Бенуа Мандельброт и его фракталы

Обладая уникальным пространственным мышлением Б. Мандельброт даже не получив среднее образование сумел поступить в политехническую школу и затем сумел получить высшее образование (ему дали докторскую степень). Во время работы в IBM он изучал разнообразные прикладные задачи математики, в том числе, в области экономики. Именно тогда он увидел, что любые ценовые колебания можно описать определенным математическим методом, который не соответствовал стандартным геометрическим кривым.

Обнаружил такой феномен он во время изучения ценовой динамики на хлопок за несколько десятилетий. Хотя движения цен и были очень похожи на случайные, но определенный порядок в них Мандельброт сумел разглядеть. В частности, он обнаружил одинаковую симметричность длительных и кратковременных колебаний.

Для объяснения такого нового свойства ценовой динамики Мандельброт применил рекурсивный метод. В упрощенном виде, этот метод описывается формулой, в которой каждый последующий член рассчитывается как сумма квадрата предыдущего члена и постоянной величины. В качестве термина для таких множеств ввел понятие «фрактал».

Применив созданную фрактальную геометрию для объяснения ценовых движений, Мандельброт сумел с высокой степенью точности спрогнозировать возникновение многих рыночных состояний, которые не было возможно предсказать другими средствами анализа. Поэтому в дальнейшем фрактальная аналитика начала очень стремительно развиваться.

Как описывается рынок фракталами Мандельброта

Для задания любого фрактала требуется два элемента – инициатор и генератор. В отношении графиков котировок инициатором может служить отрезок (рис. 1), соединяющий два разных соседних экстремума (минимум и максимум). Этот отрезок может быть направлен слева направо вверх (в этом случае на рынке рост – зеленый отрезок на рис. 1) или вниз (в этом случае на рынке падение – красный отрезок на рис. 1).

В качестве генератора может использоваться простейшая комбинация из трех последовательных отрезков (т. е. конец предыдущего отрезка является началом следующего отрезка), называющаяся «импульс-откат-импульс» (рис. 2):

  • если ценовой импульс направлен вверх, то в этом генераторе последующие максимум и минимум лежат выше предыдущих максимума и минимума, в результате чего образуется восходящий тренд (выделен желтым прямоугольником на рис. 2);
  • если ценовой импульс направлен вниз, то в этом генераторе последующие максимум и минимум лежат ниже предыдущих максимума и минимума, в результате чего образуется нисходящий тренд (выделен синим прямоугольником на рис. 2).

Существует множество иных генераторов фракталов, которые в общем случае, могут состоять из любого количества инициаторов.

Инициаторы любого генератора может быть разложен на другие генераторы и т. д. Таким образом, генераторы являются фракталами – самоповторяющимися структурами. Они будут повторяться вплоть до самого нижнего ценового уровня – тикового. При этом у фракталов низкого уровня соотношения геометрических размеров инициаторов будут с высокой степенью эквивалентны фракталам высшего уровня.

Фракталы Мандельброта в МТ4

В торговом терминале MetaTrader инструмент фрактального анализа называется Fractals и расположен он в меню «Вставка-Индикаторы-Билла Вильямса». Объясняется это тем, что именно Б. Вильямс разработал наиболее полную теорию фрактального анализа.

Работа этого инструмента технического анализа заключается в поиске таких последовательностей из пяти идущих подряд свечей, у которых:

  • максимум средней свечи выше максимумов остальных свечей (бычий фрактал – выделен голубым прямоугольником на рис. 3);
  • минимум средней свечи ниже минимумов остальных свечей (медвежий фрактал – выделен желтым прямоугольником на рис. 3).

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

  • если уровни бычьих фракталов последовательно повышаются, то на рынке восходящий тренд;
  • если уровни медвежьих фракталов последовательно понижаются, то на рынке нисходящий тренд.

Энциклопедичный YouTube

    1 / 5

    ✪ Число Пи и множество Мандельброта

    ✪ Множество Мандельброта | Vsauce на русском

    ✪ Урок 34. C++ Рисуем фрактал Мандельброта

    ✪ Бенуа Мандельброт: Фракталы и искусство изломанности

    ✪ Times Tables, Mandelbrot and the Heart of Mathematics

    Субтитры

Расширенное определение

Таким образом, вышеуказанная последовательность может быть раскрыта для каждой точки c {\displaystyle c} на комплексной плоскости следующим образом:

c = x + i ⋅ y {\displaystyle c=x+i\cdot y} Z 0 = 0 {\displaystyle Z_{0}=0} Z 1 = Z 0 2 + c = x + i y {\displaystyle {\begin{matrix}Z_{1}&=&Z_{0}^{2}+c\\\ &=&x+iy\end{matrix}}} Z 2 = Z 1 2 + c = (x + i y) 2 + x + i y = x 2 + 2 i x y − y 2 + x + i y = x 2 − y 2 + x + (2 x y + y) i {\displaystyle {\begin{matrix}Z_{2}&=&Z_{1}^{2}+c\\\ &=&(x+iy)^{2}+x+iy\\\ &=&x^{2}+2ixy-y^{2}+x+iy\\\ &=&x^{2}-y^{2}+x+(2xy+y)i\end{matrix}}} Z 3 = Z 2 2 + c = . . . {\displaystyle Z_{3}=Z_{2}^{2}+c=...}

Если переформулировать эти выражения в виде итеративной последовательности значений координат комплексной плоскости x {\displaystyle x} и y {\displaystyle y} , то есть заменив z n {\displaystyle z_{n}} на x n + i ⋅ y n {\displaystyle x_{n}+i\cdot y_{n}} , а c {\displaystyle c} на p + i ⋅ q {\displaystyle p+i\cdot q} , мы получим:

x n + 1 = x n 2 − y n 2 + p {\displaystyle x_{n+1}={x_{n}}^{2}-{y_{n}}^{2}+p} y n + 1 = 2 x n y n + q {\displaystyle y_{n+1}=2{x_{n}}{y_{n}}+q}

Визуально, внутри множества Мандельброта можно выделить бесконечное количество элементарных фигур, причём самая большая в центре представляет собой кардиоиду . Также есть набор овалов, касающихся кардиоиды, размер которых постепенно уменьшается, стремясь к нулю. Каждый из этих овалов имеет свой набор меньших овалов, диаметр которых также стремится к нулю и т. д. Этот процесс продолжается бесконечно, образуя фрактал. Также важно, что эти процессы ветвления фигур не исчерпывают полностью множество Мандельброта: если рассмотреть с увеличением дополнительные «ветки», то в них можно увидеть свои кардиоиды и круги, не связанные с главной фигурой. Самая большая фигура (видимая при рассматривании основного множества) из них находится в области от −1,78 до −1,75 на отрицательной оси действительных значений.

История множества Мандельброта

Впервые множество Мандельброта было описано в 1905 году Пьером Фату (Pierre Fatou), французским математиком, работавшим в области аналитической динамики комплексных чисел . Фату изучал рекурсивные процессы вида

Начав с точки на комплексной плоскости, можно получить новые точки, последовательно применяя к ним эту формулу. Такая последовательность точек называется орбитой z 0 {\displaystyle z_{0}} при преобразовании z → z 2 + c {\displaystyle z\to z^{2}+c}

Фату нашел, что орбита z 0 = 0 {\displaystyle z_{0}=0} при этом преобразовании показывает достаточно сложное и интересное поведение. Существует бесконечное множество таких преобразований - своё для каждого значения c {\displaystyle c} . В те времена компьютеров ещё не было, и Фату, конечно, не мог построить орбиты всех точек плоскости, ему приходилось всё делать вручную. Основываясь на своих расчётах, он доказал, что орбита точки, лежащей на расстоянии больше 2 от начала координат, всегда уходит в бесконечность.

Фату никогда не видел изображений, которые мы сейчас знаем как изображения множества Мандельброта, потому что необходимое количество вычислений невозможно провести вручную. Профессор Бенуа Мандельброт был первым, кто использовал для этого компьютер .

Фракталы были описаны Мандельбротом в 1975 году в его книге «Les Objets Fractals: Forme, Hasard et Dimension» («Фрактальные объекты: форма, случайность и размерность»). В этой книге Мандельброт впервые использовал термин «фрактал» для обозначения математического феномена, демонстрирующего столь непредсказуемое и удивительное поведение. Эти феномены рождались при использовании рекурсивного алгоритма для получения какой-либо кривой или множества. Множество Мандельброта - один из таких феноменов, названный по имени своего исследователя.

Построение множества

Несложно доказать, что как только модуль z n окажется больше 2 (или, в терминах действительной и мнимой частей, x n 2 +y n 2 >4), последовательность станет стремиться к бесконечности. В случае |c |≤2 это можно доказать с помощью метода математической индукции . При |c |>2 точка c заведомо не принадлежит множеству Мандельброта, что также можно вывести методом индукции, используя равенство z 0 =0. (Хотя в этом случае может существовать другое z 0 , для которого соответствующая последовательность ограничена по модулю, но для некоторого n выполняется неравенство |z n |>2.)

Сравнение |z n | с этим числом (в англоязычной литературе его называют «bail-out») позволяет выделять точки, не попадающие внутрь множества. Для точек, лежащих внутри множества, последовательность не будет иметь тенденции к бесконечности и никогда не достигнет этого числа, поэтому после определённого числа итераций расчёт необходимо принудительно завершить. Максимальное число итераций, после которых число считается попавшим внутрь множества, задается в программе.

Изображение, полученное таким способом, является лишь приближением к реальному множеству Мандельброта. Более качественные результаты можно получать, увеличивая максимальное количество итераций, однако при этом пропорционально вырастает и время расчётов.

Добавление цвета

Строго математически, изображения множеств Мандельброта и Жюлиа должны быть чёрно-белыми. Точка либо попадает внутрь множества, либо нет. Несмотря на это, с помощью компьютера мы можем построить и цветные изображения. Самым распространённым способом является раскрашивание точек снаружи множества в цвет, соответствующий количеству итераций, за которое точка уходит в «бесконечность» или, с точки зрения программы, на определённое расстояние от нуля.

Порядок определения, попадает ли точка z 0 внутрь множества (традиционно закрашиваемого чёрным цветом) или нет (закрашивается цветом, зависящим от скорости движения к бесконечности) следующий: на каждой итерации для z n =x n +y n·i вычисляется значение модуля | z n | = x n 2 + y n 2 {\displaystyle |z_{n}|={\sqrt {x_{n}^{2}+y_{n}^{2}}}} , которое затем сравнивается с «границей бесконечности» (обычно берётся значение, равное 2). Здесь важно обратить внимание, что уже на данном этапе можно ввести определённую оптимизацию вычислений, если проверять не x n 2 + y n 2 > 2 {\displaystyle {\sqrt {x_{n}^{2}+y_{n}^{2}}}>2} , а x n 2 + y n 2 > 4 {\displaystyle x_{n}^{2}+y_{n}^{2}>4} , что значительно снизит время расчётов.

Таким образом, если |z n | 2 ≤ 4 при любом числе итераций (на практике - при всех вычисленных итерациях), то цвет точки чёрный, в противном случае он зависит от последнего значения n , при котором |z n | 2 ≤ 4. Значение n , фактически, обозначает скорость движения z n в бесконечность, и может быть просто индексом в таблице цветов, или использоваться как параметр в более сложном алгоритме.

Данный алгоритм определяет, что если точка удаляется больше чем на 2 от начала координат, то она лежит снаружи множества Мандельброта. Для того, чтобы определить, что точка лежит внутри множества есть много способов. Самое простое решение - ограничить количество итераций неким максимумом. Если точка не вышла за указанную границу, можно считать, что она находится внутри множества.

Точкам около границы множества нужно больше итераций для ухода в бесконечность. Поэтому такие области прорисовываются заметно дольше. Чем дальше от границ множества, тем выше скорость ухода в бесконечность. Для таких точек требуется меньше итераций.

Оптимизация

Одним из способов уменьшения объёма вычислений при вычислении общей картины множества может служить проверка, попадает ли точка в область главной кардиоиды . Формула кардиоиды в полярных координатах выглядит следующим образом:

Таким образом, для точки необходимо вычислить

ρ = (x − 1 4) 2 + y 2 {\displaystyle \rho ={\sqrt {\left(x-{1 \over 4}\right)^{2}+y^{2}}}} , θ = atn 2 (y , x − 1 4) {\displaystyle \theta ={\hbox{atn}}_{2}\left(y,x-{1 \over 4}\right)} , ρ c = 1 2 − 1 2 cos ⁡ θ {\displaystyle \rho _{c}={1 \over 2}-{1 \over 2}\cos \theta } .

Если ρ ≤ ρ c {\displaystyle \rho \leq \rho _{c}} то точка (x , y) {\displaystyle (x,y)} попадает внутрь множества и закрашивается чёрным цветом, а итеративные вычисления можно пропустить.

На практике наибольшее уменьшение объёма вычислений даёт трассировка границы: если есть некоторая замкнутая кривая, не пересекающая ось абсцисс, каждая точка которой уходит за предел bail-out за одинаковое число итераций или, наоборот, принадлежит множеству Мандельброта, то любая точка внутри этой кривой будет обладать тем же свойством, и следовательно вся область внутри границы закрашивается одинаковым цветом.

Связь с множеством Жюлиа

Множество Мандельброта изначально было построено как каталог множеств Жюлиа : каждой точке на комплексной плоскости соответствует своё множество Жюлиа. Точки, принадлежащие множеству Мандельброта, соответствуют связным множествам Жюлиа, а точки не принадлежащие - несвязным .

Отсюда понятно, что интересные варианты множества Жюлиа соответствуют точкам, лежащим на границе множества Мандельброта. Точки глубоко внутри образуют простые геометрические фигуры, а внешние выглядят как пыль, окружающая цветные пятна. Некоторые программы, например, Fractint, позволяют пользователю прямо на экране указать точку, для которой необходимо построить соответствующее множество Жюлиа, упрощая поиск красивых изображений.

Множество Мандельброта и само содержит структуры, напоминающие множество Жюлиа: для любого c {\displaystyle c} область множества Мандельброта около c {\displaystyle c} напоминает центр множества Жюлиа с параметром c {\displaystyle c} . Если сильно увеличить множество Мандельброта в граничной точке c и то же самое проделать с множеством Жюлиа для этого же значения c и в этой же точке, то картины будут асимптотически стремиться друг к другу при всё больших увеличениях.

Вариации множества Мандельброта

Зачастую под названием «Множество Мандельброта» понимается только множество, описанное выше. Однако любая функция комплексной переменной имеет соответствующее множество Мандельброта, которое также характеризуется наличием или отсутствием связного множества Жюлиа. Например, можно положить f c (z )=z 3 +c . Тогда для каждого значения c проверяется связность множества Жюлиа функции f c , и при наличии связности считается, что c принадлежит множеству Мандельброта. В описанном случае связность можно проверить тем же способом, что и для f c (z )=z 2 +c .

Эти утверждения можно обобщить и на множества Жюлиа, определяемые больше, чем двумя числами. Например, множество Жюлиа, определяемое тремя действительными числами, имеет соответствующее трёхмерное множество Мандельброта.

Рассматриваются и многомерные вариации множества Мандельброта. Так, трёхмерный аналог получил название лампочка Мандельброта .

Применение множества Мандельброта в искусстве

Поиск красивых изображений множества Мандельброта - интересное хобби для очень многих людей. Они собирают коллекции таких изображений, причём каждое из них может быть описано небольшим количеством параметров, например, просто координатами центра.

    Координаты центра:
    -1.7433419053321,
    0.0000907687489,
    ширина 0.00000000374

    Координаты центра:
    -1.88488933694469,
    8.1387E-10,
    ширина 2.4E-13

Множество Мандельброта

Множество Мандельброта

Фракталы были описаны Мандельбротом в 1975 году в его книге «Les Objets Fractals: Forme, Hasard et Dimension» («Фрактальные объекты: форма, случайность и размерность»). В этой книге Мандельброт впервые использовал термин «фрактал» для обозначения математического феномена, демонстрирующего столь непредсказуемое и удивительное поведение. Эти феномены рождались при использовании рекурсивного алгоритма для получения какой-либо кривой или множества. Множество Мандельброта - один из таких феноменов, названный по имени своего исследователя.

Построение множества

Несложно доказать, что как только модуль z n окажется больше 2 (или, в терминах действительной и мнимой частей, x n 2 +y n 2 >4), последовательность станет стремиться к бесконечности. В случае |c |≤2 это можно доказать с помощью метода математической индукции . При |c |>2 точка c заведомо не принадлежит множеству Мандельброта, что также можно вывести методом индукции, используя равенство z 0 =0. (Хотя в этом случае может существовать другое z 0 , для которого соответствующая последовательность ограничена по модулю, но для некоторого n выполняется неравенство |z n |>2.)

Сравнение |z n | с этим числом (в англоязычной литературе его называют «bail-out») позволяет выделять точки, не попадающие внутрь множества. Для точек, лежащих внутри множества, последовательность не будет иметь тенденции к бесконечности и никогда не достигнет этого числа, поэтому после определённого числа итераций расчёт необходимо принудительно завершить. Максимальное число итераций, после которых число считается попавшим внутрь множества, задается в программе.

Изображение, полученное таким способом, является лишь приближением к реальному множеству Мандельброта. Более качественные результаты можно получать, увеличивая максимальное количество итераций, однако при этом пропорционально вырастает и время расчётов.

Пример программы построения множества (на языке программирования PHP):

/* Множество Мандельброта. */ /* Время создания */ set_time_limit (120 ) ; function re_microtime() { list ($usec , $sec ) = explode (" " , microtime () ) ; return ((float) $usec + (float) $sec ) ; } /* Засекаем */ $time_start = re_microtime() ; /* Размер картинки */ $img_w = 900 ; $img_h = 600 ; /* Начало и конец чертежа */ $x_min = - 2 ; $x_max = 1 ; $y_min = - 1 ; $y_max = 1 ; /* Подсчёт шага */ if ($x_min >= 0 && $x_max >= 0 ) { $step = ($x_min + $x_max ) / $img_w ; } elseif ($x_min < 0 && $x_max >= 0 ) { $step = ($x_max - $x_min ) / $img_w ; } else { $step = (- $x_min + $x_max ) / $img_w ; } $img = imagecreatetruecolor ($img_w , $img_h ) ; $c = array () ; $yy = 0 ; for ($y = $y_min ; $y < $y_max ; $y = $y + $step ) { $xx = 0 ; for ($x = $x_min ; $x < $x_max ; $x = $x + $step ) { $c [ "x" ] = $x ; $c [ "y" ] = $y ; $X = $x ; $Y = $y ; $ix = 0 ; $iy = 0 ; $n = 0 ; while (($ix * $ix + $iy * $iy < 5 ) and ($n < 64 ) ) { $ix = $X * $X - $Y * $Y + $c [ "x" ] ; $iy = 2 * $X * $Y + $c [ "y" ] ; $X = $ix ; $Y = $iy ; $n ++; } $col = imagecolorallocate ($img , 255 - $n * 5 , 0 , 0 ) ; imagesetpixel ($img , $xx , $yy , $col ) ; $xx ++; } $yy ++; } $time_end = re_microtime() ; header ("Content-type: image/png" ) ; /* выводим в заголовках время создания */ header ("X-Exec-Time: " . ($time_end - $time_start ) ) ; imagepng ($img ) ; imagedestroy ($img ) ; ?>

Пример программы построения множества (на языке программирования ):

Using System ; using System.Collections.Generic ; using System.Linq ; using System.Text ; namespace Mnoj { class Program { static void Main(string args) { double realCoord, imagCoord; double realTemp, imagTemp, realTemp2, arg; int iterations; for (imagCoord = 1.2 ; imagCoord >= - 1.2 ; imagCoord -= 0.05 ) { for (realCoord = - 0.6 ; realCoord <= 1.77 ; realCoord += 0.03 ) { iterations = 0 ; realTemp = realCoord; imagTemp = imagCoord; arg = (realCoord * realCoord) + (imagCoord * imagCoord) ; while ((arg < 4 ) && (iterations < 40 ) ) { realTemp2 = (realTemp * realTemp) - (imagTemp * imagTemp) - realCoord; imagTemp = (2 * realTemp * imagTemp) - imagCoord; realTemp = realTemp2; arg = (realTemp * realTemp) + (imagTemp * imagTemp) ; iterations += 1 ; } switch (iterations % 4 ) { case 0 : Console. Write ("." ) ; break ; case 1 : Console. Write ("o" ) ; break ; case 2 : Console. Write ("0" ) ; break ; case 3 : Console. Write ("@" ) ; break ; } } Console. Write ("\n " ) ; } Console. ReadKey () ; } } }

Добавление цвета

Фрагмент границы множества Мандельброта в цветном варианте

Строго математически, изображения множеств Мандельброта и Жюлиа должны быть чёрно-белыми. Точка либо попадает внутрь множества, либо нет. Несмотря на это, с помощью компьютера мы можем построить и цветные изображения. Самым распространённым способом является раскрашивание точек снаружи множества в цвет, равный количеству итераций, за которое точка уходит в «бесконечность» или, с точки зрения программы, на определённое расстояние от нуля.

Порядок определения, попадает ли точка z 0 внутрь множества (традиционно закрашиваемого чёрным цветом) или нет (закрашивается цветом, зависящим от скорости движения к бесконечности) следующий: на каждой итерации для z n =x n +y n ·i вычисляется значение модуля , которое затем сравнивается с «границей бесконечности» (обычно берётся значение, равное 2). Здесь важно обратить внимание, что уже на данном этапе можно ввести определённую оптимизацию вычислений, если проверять не , а , что значительно снизит время расчётов.

Таким образом, если |z n | 2 ≤ 4 при любом числе итераций (на практике - при всех вычисленных итерациях), то цвет точки чёрный, в противном случае он зависит от последнего значения n , при котором |z n | 2 ≤ 4. Значение n , фактически, обозначает скорость движения z n в бесконечность, и может быть просто индексом в таблице цветов, или использоваться как параметр в более сложном алгоритме.

Данный алгоритм определяет, что если точка удаляется больше чем на 2 от начала координат, то она лежит снаружи множества Мандельброта. Для того, чтобы определить, что точка лежит внутри множества есть много способов. Самое простое решение - ограничить количество итераций неким максимумом. Если точка не вышла за указанную границу, можно считать, что она находится внутри множества.

Точкам около границы множества нужно больше итераций для ухода в бесконечность. Поэтому такие области прорисовываются заметно дольше. Чем дальше от границ множества, тем выше скорость ухода в бесконечность. Для таких точек требуется меньше итераций.

Пример добавления цвета (на PHP):

// Default: http:///

/.php?iter1=64&width=600&height=400&coef=32 function BN($n , $l , $r ) { return $n > $l && $n <= $r ; } function SQR($a ) { return $a * $a ; } define ("COEF" , $_GET [ "coef" ] ) ; $iter1 = $_GET [ "iter1" ] ; $width = $_GET [ "width" ] ; $height = $_GET [ "height" ] ; header ("Content-type: image/png" ) ; $img = imagecreatetruecolor ($width , $height ) ; $iter2 = 0.01 / ($width / 300 ) ; $yy = - 1 ; for ($y = - 1 ; $y < 1 ; $y = $y + $iter2 ) { $yy ++; $xx =- 1 ; for ($x = - 2 ; $x < 1 ; $x = $x + $iter2 ) { $xx ++; $Cx = $x ; $Cy = $y ; $X = $x ; $Y = $y ; $ix = 0 ; $iy = 0 ; $n = 0 ; while ((SQR($ix ) + SQR($iy ) < 4 ) and ($n < $iter1 ) ) { $ix = SQR($X ) - SQR($Y ) + $Cx ; $iy = 2 * $X * $Y + $Cy ; $X = $ix ; $Y = $iy ; $n ++; } if (BN($n , 0 , 7 ) ) $col = imagecolorallocate ($img , COEF* $n , 0 , 0 ) ; elseif (BN($n , 7 , 14 ) ) $col = imagecolorallocate ($img , COEF* $n , COEF* $n , 0 ) ; elseif (BN($n , 14 , 21 ) ) $col = imagecolorallocate ($img , COEF* $n , 0 , COEF* $n ) ; elseif (BN($n , 21 , 28 ) ) $col = imagecolorallocate ($img , 0 , COEF* $n , 0 ) ; elseif (BN($n , 28 , 35 ) ) $col = imagecolorallocate ($img , COEF* $n , COEF* $n , 0 ) ; elseif (BN($n , 35 , 42 ) ) $col = imagecolorallocate ($img , 0 , COEF* $n , COEF* $n ) ; elseif (BN($n , 42 , 49 ) ) $col = imagecolorallocate ($img , 0 , 0 , COEF* $n ) ; elseif (BN($n , 49 , 56 ) ) $col = imagecolorallocate ($img , COEF* $n , 0 , COEF* $n ) ; elseif (BN($n , 56 , 64 ) ) $col = imagecolorallocate ($img , 0 , COEF* $n , COEF* $n ) ; imagesetpixel ($img , $xx , $yy , $col ) ; } } imagepng ($img ) ; imagedestroy ($img ) ; ?>

Оптимизация

Одним из способов уменьшения объёма вычислений при вычислении общей картины множества может служить проверка, попадает ли точка в область главной кардиоиды . Формула кардиоиды в полярных координатах выглядит следующим образом:

Таким образом, для точки необходимо вычислить

, , .

Если то точка попадает внутрь множества и закрашивается чёрным цветом, а итеративные вычисления можно пропустить.

На практике наибольшее уменьшение объёма вычислений даёт трассировка границы: если есть некоторая замкнутая кривая, не пересекающая ось абсцисс, каждая точка которой уходит за предел bail-out за одинаковое число итераций или наоборот принадлежит множеству Мандельброта, то любая точка внутри этой кривой будет обладать тем же свойством, и следовательно вся область внутри границы закрашивается одинаковым цветом.

Мой пламенный привет всем читателям сайта Webmastermaksim. Сегодня у нас на поверку дня достаточно интересная тема – это Бенуа Мандельброт его фракталы. За все время своей эволюции, человечество совершило ряд достаточно интересных открытий. Например, если судить в рамках человеческой эволюции, то мы относительно недавно научились стабильно добывать электричество, без которого свою жизнь мы уже не смыслим.

Есть и еще одно открытие, которое, с одной стороны не особо заметно, но играет важную роль в нашей жизни – это фракталы. Каждый человек, так или иначе, стремиться познать тот мир, в рамках которого он живет. Пытается он это сделать посредством логического анализа, находя определенные закономерности.

Казалось бы, хаос – в нем нет закономерности, но, как оказалось, это далеко не так. Даже в хаосе можно найти свои закономерности, которые нашел Бенуа Мандельброт, посредством, так называемых, фракталов. Многие из вас слышали такого автора, как Николас Талеб. Его книга “Черный лебедь” как раз посвящена Бенуа Мандельброт, греку среди римлян.

Римляне по своей сути были приспешники порядка, а греки, в свою очередь, верили в бесформенные формации, которые живут по своему порядку, имея определенные закономерности. Именно эти закономерности и удалось найти выдающемуся ученому Бенуа Мандельброту. Благодаря его трудам мы стали немного иначе смотреть на все, что нас окружает в повседневной жизни. Я хочу вас познакомить с данным гением, осветить его жизненный путь и рассказать вам, почему его открытие настолько важно для всех нас.

Биография

Личная жизнь

Бенуа Мандельброт родился в 1924 году в семье литовских евреев. Мать Бела Лурье была врачом, а отец Карл Мандельброт был галантерейщиком. В 1936 году все семейство переехало на постоянное жительство во Францию. В Париже Бенуа попал под влияние своего дяди, который был основателем местного клуба математиков.

После начала войны все семейство Мандельброт бежало на свободный от немецких оккупантов юг Франции, где Бенуа как раз пошел в школу, но при этом резко потерял любой интерес к обучению. Но, при этом, уже в раннем возрасте у Бенуа были обнаружены незаурядные математические способности, которые впоследствии позволили ему стать учеником Политехнической школы в Париже.

Как оказалось, у Мандельброта было прекрасное пространственное воображение. Даже любые алгебраические задачи он решал с геометрическим уклоном. Оригинальность в принятии решений и позволила ему спустя некоторое время без проблем поступить в университет.

После окончания университета, Бенуа переехал в Америку, где закончил технологический университет в Калифорнии. После возвращения в Париж, в 1952 году он получает докторскую степень. В 1955 году Бенуа женится и переезжает в Женеву.

Вклад в науку

Но уже в 1958 году Мандельброт окончательно поселился в США, где начал работать в исследовательском центре IBM, так как на тот период времени данный цент занимался наиболее интересными отраслями для Бенуа. На тот период времени, Бенуа занялся широким спектром различных направлений, среди которых можно было выделить: теорию игр, лингвистику, географию, физиологию и еще много других направлений.

С течением времени, стоит отметить, что Мандельброт углубился и в изучение экономики. Он вдруг задумался о том, что хаотичные на первый взгляд движения цены могут подчиняться определенному скрытому порядку, который не виден сходу. Для того, чтобы больше углубиться в тему, Бенуа решил изучить динамику цен на хлопок более, чем за 100 лет. Колебания цен внутри дня казались вполне себе хаотичными, тем не менее, Мандельброт нашел определенную закономерность, в рамках их изменения. Он проследил симметрию в рамках долгосрочных и краткосрочных колебаниях. По факту, данное открытие оказалось самой настоящей неожиданностью даже для многих экономистов. А для решения этой задачи Бенуа как раз применил тот самый фрактальный метод.

В 1975 году Мандельброт выпустил труд под названием “Длина побережья Великобритании”, по сути дела, это было первое полноценной исследование фрактальной теории. Понятие фрактала ввел сам Бенуа, и он означает, если дословно “сломанный”. Для исследования, Мандельброт взял все компьютеры, которые на тот моменты были доступны ему в IBM и создал некие графические изображения, основанные на базе множества Мандельброта. Как отмечал сам Бенуа, он не чувствовал себя новатором и гением, но, до него никто до этого не додумался ранее.

Смотреть видео-превью к данной статье


Умер Бенуа Мандельброт 14 октября 2010 года в возрасте 85 лет. Как затем сказала его супруга, последние года своей жизни Мандельброт испытывал серьезные проблемы с поджелудочной железой, что, вероятно, и послужило причиной смерти.

Смелость данного выдающегося человека заключалась в том, что он нашел в себе смелость оглядеться по сторонам и понять, что фрактальные структуры повсюду. По сути дела, фракталы тесно связаны с так называемым эффектом бабочки, когда даже мельчайшие события могут иметь огромный резонанс, даже сдвиг маленькой песчинки может спровоцировать обрушение горы. Но если так вдуматься, то от двух маленьких песчинок эффект будет такой же, то есть, появляется нелинейность событий.

Фрактальная модель мира

Вообще, как признался сам Бенуа, идея фрактальной теории у него появилась посредством банального вопроса, а как измерить береговую линию Великобритании. Да, потенциально можно было бы просто взять карту и посчитать. Но при этом Мандельброт понимал, что карта не будет учитывать все неровности рельефа, маленькие бухты и прочее, соответственно, конечные расчеты будут не совсем точными. К точности я стремлюсь и когда рассказываю про входы в сделку, используя .

Что такое образцовый фрактал? Например, это когда веточка ели фактурно повторяет все дерево, это кровеносные сосуды в нашем организме, да даже ветка дорог в мегаполисе – это тоже фрактал. По сути дела, Бенуа сделал открытие того, что было у всех на виду, а, по сути, такие открытия являются наиболее значимыми. Так уж устроен наш мозг, что он склонен все усложнять, да, мы стремимся усложнить все вокруг, а потому искренне удивляемся том, что на первый взгляд сложные вещи оказались и не так-то сложны!

Сами по себе фракталы вернули математике наглядность. Психоделические картинки, которые так были популярные в 60-е года, вдруг резко нашли отражение в 80е года в математике, парадокс, но они начали отражать суть новой математики. Как мы все помним, Эйнштейн опроверг Ньютона, так вот Мандельброт же замахнулся выше, он решил опровергнуть мыслителей Древней Греции. Да, в мире Бенуа, земля уже не имеет круглой формы. Его труд даже начинается со слов: “Облако не шар, гора не конус, а линия не окружность.”

Благодаря Бенуа, неровности, изломы рельефа, трещины и даже резкие обвалы на рынке перестали считаться неким дефектом. Они стали полноценной частью двигающей силы, которая царит в нашей атмосфере.

Суть появления фрактальной теории

Вообще, наибольшее влияние на Мандельброта оказала работа в IBM, суть которой заключалась в ревизии ошибок, которые возникали во время передачи компьютерной информации посредством телефонных кабелей. Бенуа провел ревизию данных ошибок и сделал вывод, что их появление не является хаотичным, они подчиняются определенному кластеру.

При этом было отмечено, что в каждом кластере есть свой кластер, то есть, это своего рода матрешка. Примечательно, что открытие Мандельброта имело и практическую пользу для компании IBM, так как позволило значительно сэкономить на устранении помех в передачах связи. Немного уйти в сторону психологии и поразмышлять про можно по этой ссылке.

Бенуа Мандельброт его фракталы на бирже

Примечательно, что такую же тенденцию Мандельброт смог обнаружить и в рамках колебания цены на бирже. Как я уже говорил, Бенуа проследил динамику изменения цена на хлопок за длительное время. На низком промежутке движения цены реально казались хаотичными, но на более крупных интервалах он нашел некую симметрию. Грубо говоря, он взял ценовую динамику одного конкретного дня и наложил ее на более длительный промежуток времени и нашел взаимосвязь.

Это стало значительным открытие в рамках экономики, и многие экономисты даже сегодня используют теорию Бенуа Мандельброта в своей работе.

В общем, это выдающийся человек, который реально заново открыл глаза человечества на невероятно простые вещи, при этом, его теория стала прекрасно применима в рамках многих сфер нашей деятельности.

Свою теорию фракталов применял для анализа графика хлопка за более чем 100-летний период. Уже позже, на основе его выкладок Билл Вильямс и создал свой индикатор фракталов, а так как Вильямс в мире трейдинга известен гораздо лучше, чем Мандельброт, то и фракталы ассоциируются в первую очередь с ним.

Еврей по национальности Бенуа с родителями переехал во Францию из Польши. Будущее мальчика определило близкое знакомство с Шолемом Мандельбротом, известным в Париже математиком.

Уже после войны в одной из парижских школ выяснилось, что Бенуа обладает любопытной особенностью – великолепно развитым пространственным воображением. Даже чисто алгебраические задачи он всегда решал методами геометрии, буквально рисуя картину происходящего в воображении.

Затем последовала эмиграция в США и работа в IBM, именно тут и началась научная деятельность ученого. В рамках исследований он отдалился от тем, интересовавших компанию и в какой-то момент переключился на экономические исследования. В частности, смог выяснить упорядоченность в на первый взгляд случайных ценовых колебаниях графика хлопка.

Собственно, этим его экономика и привлекла – Мандельброт сумел доказать, что хаотические на первый взгляд колебания цены на самом деле следуют определенном временному математическому порядку. Причем стандартные кривые для их описания не подходили.

Фракталы Бенуа Мандельброта

Если давать математическое определение, то под фракталом понимается бесконечно повторяющаяся кривая. В современных программах строится цветной, но базовый фрактал был черно-белым, цвет указывал на то, принадлежит точка множеству Мандельброта или нет. Сейчас же цвет указывает на то насколько сильно точка стремится к бесконечности.

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

На рисунке выше – пример еще одной фрактальной кривой. Если присмотреться, то видно, что отдельные элементы кривой подобны главной фигуре.

Сам Мандельброт говорил, что человека повсюду окружают фракталы, просто на этом внимание не концентрируется. И действительно – практически в любом природном объекте можно найти элементы фрактального множества, ниже несколько примеров:

снежинка;

дельта реки;

лист папоротника.

По большому счету, вся вселенная фрактальна, элементами самоподобия обладает множество объектов как в макро-, так и в микромире.

Классический фрактал Мандельброта (первый рисунок) выглядит как большая кардиоида, на ее границах расположены мелкие овалы. Если рассмотреть каждый мелкий овал, то на его границе увидим еще семейство таких де овалов и так углубляться можно до бесконечности. Каждый раз будем видеть одни и те же овалы.

Координаты множества Мандельброта на комплексной плоскости определяются по формулам

x_(n+1)=x_n^2-y_n^2+p,

y_(n+1)=2x_n y_n+q.

Если график изучить подробнее, то видно, что самая крупная из фигур находится примерно в области -1,75 – -1,78 (горизонтальная линия – ось действительных значений).

Как работает индикатор фрактал

В том виде, в каком свои наработки применял Манедльброт обычные трейдеры применять их не могли. Билл Вильямс адаптировал теорию фракталов для финансовых рынков, так и появился на свет индикатор фракталов.

Единственное назначение этого индикатора – определить локальные максимумы и минимумы на графике. Ищутся эти экстремумы на 5 свечах, то есть маркер, указывающий на максимум/минимум будет появляться всегда с опозданием как минимум на 2 свечи.

На графике индикатор выглядит как набор маркеров над графиком (для локальных максимумов) и под ним (так обозначаются локальные минимумы). Та версия, что находится в Мт4 по умолчанию настроек не имеет (за исключением параметров отображения на разных таймфреймах и толщины маркера).

В сети в свободном доступе есть пользовательские версии стандартного фрактала, в них можно задавать, например, на каком диапазоне свечей будет вестись поиск максимумов/минимумов или с какого таймфрейма будут транслироваться данные на текущий таймфрейм.

Иногда маркеры очень точно указывают на положение сильных уровней поддержки и сопротивления. Учтите – на графике постоянно образовывается масса фракталов, большая часть из них особой роли не играет, и лишь малая доля указывает на действительно важные уровни.

Как использовать индикатор фракталов в торговле

Сводится все к определениям важных горизонтальных уровней, а также к построению трендовых линий . Других вариантов применения фрактального индикатора нет.

Строить уровни через все фракталы бессмысленно. Вы получите нагромождение горизонтальных линий, большая часть которых будет находиться на малом расстоянии друг от друга.

Лучше всего уменьшить масштаб и проводить линии только через значимые экстремумы на графике. А те, которые находятся на расстоянии в пару пунктов от соседних вершин или впадин просто игнорировать.

В принципе, делать это можно и без использования фрактального индикатора. Значимые экстремумы и так бросаются в глаза на графике, но фракталы помогают в вычленении опорных точек для построения.

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

Опять же, в этом случае роль фракталов исключительно вспомогательная. Строить трендовые линии вполне можно и без их помощи.

Еще один распространенный прием использования фрактального индикатора – в качестве ориентира при выставлении Stop Loss. Логика следующая – применяя такой метод мы ставим стоп за ближайший уровень поддержки или сопротивления.

Модификации фрактального индикатора

Ниже разберем несколько примеров модифицированного фрактального индикатора. Всего их насчитать можно несколько десятков, часть друг друга дублируют, мы остановимся на самых интересных.

Мультитаймфреймовый фрактал

От обычного отличается только тем, что в настройках можно задать таймфрейм, с которого он и будет отображать данные. То есть можно, например, находясь на Н1 видеть, что происходит на часовом временном интервале.

В отличие от обычной версии фрактального индикатора в мультитаймфреймовой версии отображается всего несколько линий, построенных через значимые максимумы или минимумы. Это намного удобнее по сравнению с обилием маркеров в стандартной версии.

Fractal Channel

В этом индикаторе вы не увидится на экране монитора ни маркеров, ни стрелок. Вместо этого отображается канал, построенный по фракталам.


Индикатор удобен тем, что на графике сразу строится канал по обозначенным максимумам и минимумам фрактала. Торговать можно, например, на пробой ценой одной из границ получившегося канала. Это позволяет ловить резкие движения графика, особенно после того, как цена долгое время двигалась в узком диапазоне.

Настроек у индикатора нет за исключением визуальной составляющей (цвет и толщина линий).

Fractal SP

Особенность этого индикатора в том, что помимо отображения самих фракталов на графике он еще и строит линии поддержки сопротивления, а также отображает на графике горизонтальные уровни. В левой части – расшифровка выделенных уровней.

Трендовые линии строятся по двум последним максимумам и минимумам. Функция не особо полезная, а вот к горизонтальным уровням присмотреться стоит. В настройках задать можно только параметры линий, а также положение горизонтальных уровней.

FFX Fractals

Это подвид мультитаймфреймового фрактального индикатора, но решение автором выбрано оригинальное. В отличие от первого из рассмотренных алгоритмов здесь информация с других временных интервалов отображается под графиком в «подвале».

Отображается информация со всех временных интервалов. Начиная от минутного и заканчивая месячным. Нужные таймфреймы можно задать в настройках индикатора

Fractals Polarized

Нестандартный подход к отображению фракталов. Внешне индикатор напоминает обычный осциллятор – отображается в «подвале». Есть несколько модификаций – в виде одной линии (цвет изменяется в зависимости от настроения рынка) либо в виде пары линий (внешне очень похоже на Стохастик).

Удобно работать с индикатором, который на рисунке отображен внизу. Ориентироваться можно на смену цвета.

В настройках в отличие от обычного фрактального индикатора можно задать период и настроить реакцию индикаторов на движения рынка. Во время узкого флета работают эти алгоритмы плохо, но если на рынке тренд или цена хотя бы движется в широком горизонтальном канале, они показывают неплохой результат.

Time Fractals

Еще одна вариация мультитаймфреймового фрактального индикатора, от остальных отличается удобным способом подачи информации. Данные отображаются в подвале в виде 4 линий, каждая из которых соответствует своему временному интервалу.

Цвет указывает на настроения на рынке. Зеленый соответствует бычьему настроению, кирпичный – медвежьему. Меняется цвет после формирования фрактала с противоположной стороны графика. На точки входа такой индикатор не укажет, зато может подсказать ситуация на старшем временном интервале, только так его и стоит использовать.

Fractal Channel adjustable price

Еще один подвид канального индикатора на стандартном фрактале. Отметим, что в настройках можно задать не только период фрактала, но и цены, по которым он должен работать. То есть он может искать максимумы/минимумы не только по High и Low, но и, например, по цена открытия, закрытия или по типичной цене.

Полезное дополнение – окрас графика в цвет, соответствующий ситуации на рынке. Желтый соответствует ситуации неопределенности, красный – падающему рынку, а синий – растущему.

Границы канала также можно использовать в работе. На скриншоте выше виден неплохой пример, когда график сменил цвет с желтого на красный и одновременном с этим состоялся ретест пробитой нижней границы канала.

Fractal AMA

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

При построении кривых индикатор учитывает показания стандартного фрактала. Также учитывается расстояние цены закрытия свечи от линий. Из недостатков отметить можно то, что запаздывание при пересечении линий даже выше, чем при использовании скользящих средних.