Следующая статья описывает аналитическую модель TS_DayTrader,
использованную в советнике Frankenstein.
Модель легла в основу индикатора iFrankenstein.ex5.
Мы опишем саму теоретическую модель, а также её непосредственное воплощение и
самые важные ассоциированные параметры.
Эта презентация должна
наделить читателя глубоким пониманием системы и основной
теоретической модели.
Система способна обнаруживать ряд паттернов.
Модели паттернов могут быть комплексными, сложными и состоять из нескольких элементов.
Базовые элементы могут включать:
Все четверо работают совместно для обнаруживания специфической реакции на рынке:
прорыв ценовым движением горизонтального канала, возвращение цены в канал, разворот движения
на определенном уровне(Уровень Теста) и продолжение большего тренда.
Цель системы - торговля либо по цене "скачущей" внутри границ канала,
либо торговля прорыва границ канала.
Комплексная модель паттерна может включать в себя различные паттерны и их комбинации, например:
Большинство задействованных в TS_DayTrader моделей технического анализа используют C_iFR -
Модуль Фракталов - как главный источник данных.
Советник обычно запускает несколько C_iFR модулей(отдельно для каждого паттерна),
каждый может быть индивидуально настроен со своим таймфреймом.
C_iFR конструктивно схожий с 'Fractals.ex5' - хорошо известным индикатором MQL5:
Для просмотра данных C_iFR из движка iFrankenstein установите 'Show fractal lines(C_iFR)' в значение true:
Каждая фрактальная точка данных отмечает локальный ценовой экстремум - последний локальный ценовой минимум или максимум.
В отличие от 'Fractals.ex5', C_iFR может виртуализировать высшие таймфреймы используя
данные с таймфрейма основного окна графика.
Виртуализированный таймфрейм устанавливается при помощи параметра 'TF for the KeyLevels Fractals':
Фрактальные данные используются для отслеживания ценового канала.
Цена вероятно "вырвется" из горизонтального канала на повышенных обьёмах торгов. ("прорыв канала", определение)
На рынке подобные каналы создаются из-за аккумулирования ордеров
в районе последнего локального минимума или последнего локального максимума цены.
iFrankenstein использует Ключевые Уровни для отслеживания, отображения и торговли горизонтальных каналов.
Ключевой Уровень, на графике, - это горизонтальная линия нарисованная от последнего известного ценового максимума или минимума.
(определяется по последнему фракталу из модуля C_iFR).
2 Ключевых Уровня формируют горизонтальный канал:
Цена зачастую "прыгает" внутри подобного горизонтального канала до тех пор, пока она не "вырвется" из него.
Многие торговые стратегии основаны на этом понимании рыночной механики.
Это наиболее основной, но также и важный, аспект Тех.Анализа - понимание каналов
и отслеживание реакций рынка на их формирование.
iFrankenstein модель определяет 2 Ключевых Уровня: KLS1 и KLR1(или КУП1 и КУС1).
KLS1(КУП1) также известен как "уровень поддержки", KLR1(КУС1) как "уровень сопротивления".
Иногда называются как "медвежий" и "бычий".
Они зеркалируют друг друга.
Оба могут быть использованы для создания сигналов как на покупку BUY, так и на продажу - SELL.
Трейдер действует основываясь на предположении, что цена либо "коснется" уровня, отскочит от него и развернется,
или "пробьёт" его и продолжит движение в том же направлении, продолжая больший тренд.
Отслеживание реакций рынка на формирование каналов -
центральный принцип технического анализа в рамках теоретической модели TS_DayTrader.
KLS1, в первую очередь, ассоциирован с аккумуляцией BUY ордеров на покупку.
По умолчанию, на графике отрисовывается как красная горизонтальная линия:
KLS2 отрисовывается тоньшей линией.
Вы можете включить отображение фрактальных данных из C_iFR(параметр 'Show fractal lines(C_iFR)'), чтобы увидеть
фрактальную точку(последний минимум или максимум цены), на которой был построен Ключевой Уровень:
Часто, множество SELL ордеров на продажу аккумулируются рядом с KLR1 уровнем.
Этот основной уровень сопротивления отрисовывается на графике как синяя горизонтальная линия:
KLR2 отрисовывается параллельно KLR1 тоньшей линией.
Также как и для KLS1, вы можете отобразить данные фрактального модуля для KLR1.
Установите 'Show fractal lines(C_iFR)' в значение true, чтобы увидеть фрактальные данные:
"Тест Ключевого Уровня" - проваленная попытка цены "пробить" Ключевой Уровень.
В зависимости от входных параметров, Тест Ключевого Уровня(KLT)
опредён либо как любая свеча(бар), входящая в область KLS1-KLS2 или KLR1-KLR2,
либо как серия бычих и потом медвежих баров, входящая в выше упомянутые области KLS1-KLS2 или KLR1-KLR2, и затем выходящая из них.
На следующем графике 9-ть KLT:
Параметр 'Tests area width, ticks' определяет ширину области Ключевого Уровня,
чувствительной к Тесту Ключевого Уровня 'KLevel Test'(область KLS1-KLS2 или KLR1-KLR2).
Параметр 'Minimal KeyLevels Tests number(0 = OFF)' устанавливает минимальное разрешенное количество Тестов Ключевого Уровня для паттерна.
Если это условие не удовлетворяется - паттерн игнорируется системой.
'Tests structure' - Структура Теста, минимальное количество баров обратного направления. Количество баров обратного направления(по open-close),
требующееся для подтверждения Теста. "Противоположные" бары должны быть расположены серийно, рядом друг с другом или разделенные "доджиками" -
паттернами, похожими на '+', с open=сlose равными ценами.
В следующем примере, 1 Ключевой Уровень со Структорой=2. Это означает, что
на графике есть как минимум 2 следующих друг за другом бычих бара, которые вошли в область KLS1-2:
Когда Ключевой Уровень пробивается, для свечных моделей 1-8,
на графике появляются "Уровни Теста".
Для моделей BSB-MSB(9-10) появляются т.н. "Зоны Прибыли" ('Profit Zones').
Уровни Теста не появляются в случае, если условия для Тестов Ключевого Уровня не удовлетворены.
PUT1 - это 'Уровень Теста'.
Он символизирует Ключевой Уровень(определенный предудыщим ценовым экстремумом),
который был пробит ценовым движением:
PUT2 - также 'Уровень Теста', сходный с PUT1,
но он представляет собой противоположный предыдущий экстремум(противоположная граница текущего канала):
Для "бычего" рынка применима та же логика, лишь только визуально отрисовка меняется с синего на красный,
и зеркально строится позиция:
Кроме простых Уровней Теста, основанных на границах канала,
iFrankenstein включает в свою модель Фрактальные Уровни Теста.
Эти уровни строятся на основе предыдущих фрактальных точек из ассоциированного модуля C_iFR.
Используются фракталы, обнаруженные сразу перед пробитием Ключевого Уровня и формированием новых PUT1,2
(самые последние известные на момент пробития).
'FUT1' символизирует самый последний(самый свежий) фрактал с установленного таймфрейма
'FUT2' это более старый фрактал, предыдущий.
\
С отображенными данными из C_iFR вы можете увидеть фактические ценовые пики,
сформировавшие фракталы:
В iFrankenstein, для каждого из 10 паттернов существует отдельный блок параметров,
ассоциированных с Ключевыми Уровнями:
Система различает 10 моделей свечных паттернов, идентифицирующих ценовые скачки.
DD,DB,SD,SB,RD,RB,SSD,SSB - индексы 1-8 - модели 'треугольники', символизирующие специфические области волатильности, формирующие т.н. "верха" и "ямы".
BSB,MSB - 9-10 - паттерн типа 'СтартБар'. Эта модель состоит из специфической серии баров, обнаруженных в пределах "Зоны Выгоды".
5 паттернов сигнализируют сделки на продажу, другие 5-ть на покупку. Они являются зеркальными копиями друг друга.
Покупка BUY: DD,SD,RD,SSD,BSB
Продажа SELL: DB,SB,RB,SSB,MSB
Каждая модель паттерна и все ассоциированные с ней модули могут быть активированы или полностью деактивированы при помощи параметра 'ON\OFF':
Эти 10 паттернов используются либо без других дополнительных моделей,
либо совместно с предшествующим пробоем Ключевого Уровня и активацией Уровня Теста(как часть большей сложной модели).
Каждый из 10 паттернов, будучи завершенным, определяет Точку Входа - бар и цену
входа в рынок(открытия сделки).
Паттерны можно использовать одиночно.
Мы рекомендуем совмещать их с Ключевыми Уровнями и Уровнями Теста - это более продуктивная конфигурация.
Когда паттерны используются совместно с Ключевыми Уровнями и Уровнями Теста, торговля разрешается и
Точка Входа создаётся только в случае, если левое ребро "треугольника" расположено на определенном Уровне Теста(простом или фрактальном, PUT1,2 или FUT1,2).
(в случае "треугольных" паттернов 1-8)
В следующем примере некоторые DD паттерны не активны(отрисованы серым цветом),
но один активен - он был "пробит" насквозь Уровнем Теста PUT1:
DD также известен как "Двойное Дно", ДД.
Часто используется как простой сигнал на покупку, но может быть использован в составе более сложной модели.
На графике отображается как символический синий треугольник и лейбл "DD" под ним:
DB также известен как "Двойная Вершина", ДВ.
Считается сигналом на продажу.
На графике отображается как символический красный треугольник и лейбл "DB" под ним:
SD - "Слабое Дно" или СД.
Сигнал на покупку.
Отображается на графике синим треугольником с лейблом "SD" под ним:
SB - "Слабая Вершина" или СВ.
Сигнал на продажу.
Отрисовывается красным треугольником с лейблом "SB" под ним.
RD - "Разворотное Дно", или РД.
Сигнал на покупку.
Отрисовка синим с лейблом "RD":
RB - "Разворотная Вершина", или РВ.
Сигнал на продажу.
Отрисовка красным с лейблом "RB":
RD(и RB) обладает дополнительным параметром - 'CL(Correction Level)' - Уровень Коррекции:
В следующем примере, линия 1.2
схематически отображает Уровень Коррекции равный 90%:
Расстояние T.1 - T.2 (высота левого ребра "треугольника") составляет 100%.
Модуль Уровня Коррекции действует как фильтр.
Если цена T.3, low бара, расположена ниже цены Уровня Коррекции -
модель паттерна считается завершенной и одобряется, в ином случае -
модель паттерна считается незавершенной и не обрабатывается дальше.
SSD - "Сложное Слабое Дно".
Сигнал на покупку.
Отображается как синий треугольник с лейблом "SSD":
SSB - "Сложная Слабая Вершина".
Сигнал на продажу.
Отображается как красный треугольник с лейблом "SSB":
Все "треугольные" паттерны обладают 'Pattern maximal height' и 'Pattern minimal height' параметрами, они действуют как простые фильтры:
"Pattern Height", высота паттерна, это высота левого ребра треугольника:
Паттерны, если слишком большие или слишком маленькие, не отображаются на графике и не обрабатываются.
Кастомный Bollinger Bands - iBB - лежит в основе "рецепта" паттернов 1-8 ('треугольников'), это часть их модели.
Динамика индикатора используется для определения начала паттерна.
Для каждого из паттернов отведена отдельная секция параметров iBB:
Для калибровки и оптимизации iBB используйте входные параметры:
Отдельно стоит отметить фильтр, настраиваемый параметром "bar B", действующий как базовый фильтр против "проскальзывания" и фильтр позиции.
Бар B. ("bar B") - имя бара, которым было сформировано разворотное движение внутри паттерна.
Простым языком, высота левого ребра треугольника определяется как 100%.
Если Бар B.(бар, предшествующий Точку Входа) превышает ценовой уровень, установленный
параметром 'Check bar B', - торговля запрещается.
Пример паттерна с баром B, удовлетворяющим требование параметра:
В следующем примере, "бар B" слишком высок - цена превысила разрешенные 50%.
По этой причине торговля запрещена:
BSB - "Бычий Старт Бар", БСБ.
Сигнал на покупку.
Отображается на графике как синеватый прямоугольник, следующий за проколом Ключевого Уровня Сопротивления:
MSB - "Медвежий Старт Бар", МСБ.
Сигнал на продажу.
Отображается на графике как красноватый прямоугольник, следующий за проколом Ключевого Уровня Поддержки:
Оба паттерна - MSB и BSB - начинаются с прокола ключевого уровня.
Как только происходит пробитие Ключевого Уровеня, при соблюдении условий для Ключевых Уровней(Структура Тестов),
на графике появляется Зона Прибыли(красноватый или синеватый прямоугольник):
Зона Выгоды настраивается параметрами под категорией "Profit Zone" для BSB и MSB:
Время Жизни устанавливается в количестве баров.
Значение индикатора ATR(Average True Range) в момент пробития Ключевого Уровня
используется для определения границ Зоны Выгоды. Значение умножается на коэффициенты PZ-, PZ+:
PZ- level устанавливает минимальную цену.
PZ+ level устанавливает максимальную цену.
Если какая-либо свеча закрывается снаружи этого диапазона - паттерн отфильтровывается.
Модели паттернов BSB, MSB включают в себя сигналы от кастомного индикатора "StarBar" (iSTB).
StartBar основан на iTrendDetector, он обладает теми же входными параметрами:
Схема паттернов BSB и MSB:
1) Пробитие Ключевого Уровня
2) Формирование Зоны Выгоды
3) Ротация Старт Бара
Ротация Старт Бара - смена сигнала Старт Бара и сигнализирование в противоположном направлении.
Ротация должна произойти в пределах Зоны Выгоды(ранее определенной параметрами ZV-, ZV+).
Торговый сигнал создаётся в момент, когда завершается ротация Старт Бара, согласно
данным с iSTB(StartBar индикатор, обратите внимание на свечи, закрашенные жёлтым или зелёным цветом):
Завершение зеленой серии баров отмечено первым жёлтым баром. Поверх второго жёлтого бара
нарисован торговый сигнал; сформировался полный паттерн(пробит Ключевой Уровень и произошла ротация Старт Бара).
Таким образом, торговля была активирована(сработал триггер).
Если параметр 'Require KeyLevels retest with bars rotation' установлен как true,
ротация должна заново пробить(протестировать) Ключевой Уровень ценой high или low одного из баров:
Пример с успешным Ретестом Ключевого Уровня, обратите внимание на зелёные бары(по данным StartBar1.02),
пробивающие предыдущий Ключевой Уровень снова, в противоположном направлении:
В следующем случае, Ретеста Кл.Уровня не произошло, поэтому торговый сигнал так и не был сформирован.
Каждый паттерн, когда завершён, производит Точку Входа, Entry Point(точки входа управляются модулем iSIG).
Каждая точка входа ассоциирована со Стоп Лоссом и Тейк Профитом,
если успешно прошла сквозь фильтры.
Точка Входа, на грацике, выглядит как синий(BUY) или красный(SELL) кружочек со стрелкой внутри:
Если торговое окружение и входные параметры разрешают открытие сделки,
на графике появляются символы Тейк Профита и Стоп Лосса:
Расстояние до Стоп Лосса определяется в тиках.
Обратите внимание на входной параметр 'SL(ticks to the pattern's base)':
Основанием паттерна считается левый угол треугольника.
В следующем примере, для Двойного Дна, DD, расстояние до Стоп Лосса составляет 70 тиков. (определение 'tick'):
Расстояние до Тейк Профита определяется значением-соотношением.
Смотрите входной параметр 'TP("Target")'.
Значение представляет собой соотношение между расстоянием до Стоп Лосса и расстоянием до Тейк Профита
(от Точки Входа).
1.0 означает равные SL и TP,
2.0 устанавливает TP дважды дальше, чем SL.
В следующем примере, для DD(Двойное Дно), TP установлен как 2.0,
поэтому расстояние до TP(212 тиков) вдвое больше чем
расстояние до SL(106 тиков):
iFrankenstein содержит iRSI_iDiv - модуль Дивергенций.
Для обнаружения дивергенций используется отдельный таймфрейм, определенный параметром 'TF for the RSI divergences'.
Стрелки на графике символизируют пики(ценовые максимумы и минимумы), которые определили дивергенцию:
В трейдинге, "дивергенция" - это ситуация, при которой ценовое движение
отличается от движения индикатора, типично следующего за ценой,
такого как осциллятор индикатор тренда(RSI напр.).
Дивергенция может намекать о приближающемся развороте или ослаблении текущего тренда.
Серии вертикальных черточек над барами символизируют активный сигнал дивергенции:
Дла каждого из 10 паттернов предусмотрен отдельный блок параметров
для Дивергенций:
Модуль Дивергенций действует как фильтр.
Он либо разрешает, либо запрещает торговлю.
Определены 3 категории типов Дивергенций. Категории основаны на разности в структуре и способах применения:
Бычьи и Медвежьи дивергенции зеркалируют друг друга,
пример Простой Медвежьей Дивергенции:
Простые Медвежьи Дивергенции обычно используются как сигналы на продажу SELL.
Бычьи Дивергенции являются зеркальной копией Медвежьей Дивергенции, но сигнализирует покупку BUY и
отрисовывается синим цветом:
Обратная Медвежья Дивергенция, часто называемая просто "медвежья дивергенция",
образуется, когда цена показывает более низкие новые максимумы,
а осциллятор показывает более высокие новые максимумы. Это подсказывает о том,
что несмотря на тренд, моментум или покупательская сила увеличиваются, что может означать,
что давление на продажу ослабляется и возможен разворот на восходящий тренд.
Обратная Медвежья Дивергенция определена как разница в цене не между "днами", а между "вершинами":
То же самое действительно для обратной Бычьей Дивергенции, она определена как разница в цене между двумя "днами"("ямами").
Все типы дивергенций могут быть использованы как для того, чтобы сформировать сигнал,
так и для установки фильтра.
Если модуль установлен в значение 'Filter' - сделки, совершаемые в противоположном направлении, запрещаются, отфильтровываются(Точка Входа деактивируется
и TP-SL символы исчезают).
Например, каждый раз когда обнаруживается Медвежья Дивергенция и, одновременно, сигнал на продажу SELL от модуля дивергенций активен(жив) -
Точка Входа деактивируется(SL и TP исчезают):
Если модуль установлен в значение 'Signal' - разрешаются только сделки, которые соответствуют активному сигналу дивергенции.
В следующем примере только те Точки Входа активны, которые
расположены в пределах активного сигнала модуля дивергенций(активированные обладают видимыми на графике TP и SL):
Для более детального понимания обратим внимание на iRSI_Div.ex5 - индикатор с Дивергенциями:
Рассмотрим Простую Медвежью Дивергенцию, сформированную разницей между
направлениями вектора(между пиками) на RSI и вектора(между пиками) на ценовом графике.
Цена достигла нового high, нового ценового максимума(пика), но RSI график показал
более низкий пик.
В примере сверху, параметр 'Instant Signal Start' установлен в зн. false
и сигнал не был запущен потому, что для старта сигнала значение RSI должно
превысить уровень, установленный параметрами Overbought/Oversold.
В следующем примере сигнал был всё же инициирован:
Если параметр 'Instant Signal Start' установлен в зн. true,
сигнал стартует моментально, вне зависимости от других настроек.
Другие важные параметры для оптимизации:
TP - Технический Карман(Technical Pocket) - это фильтр волатильности.
Он определяет минимальную волатильность(на D1), необходимую для торговли.
Чем выше значение - тем выше волатильность требуется.
На след.графике с Frankenstein EA, статус Технического Кармана отображается в самом низу:
Дневная волатильность измеряется при помощи индикатора Average True Range (ATR).
Значением Технического Кармана называется
значение ATR за предыдущий день(таймфрейм D1), умноженное на
фактор "TP:Technical Pocket Height":
Для каждого из 10 паттернов под Технический Карман предусмотрен отдельный блок входных параметров.
Если Тейк Профит расположен снаружи границ Технического Кармана —
торговля отменяется(сработал фильтр).
Ценовой лимит для Тейк Профита арифметически определён как High(или low для SELL) текущего дня
минус Значение Технического Кармана.
Идея этого фильтра заключается в торговле только позиций, обладающих поддержкой высокой волатильности предыдущих дней.
Другими словами, торговля разрешена только если предыдущие дни(несколько дней, больше недели) показали хороший обьём торгов на рынке и
на сегодня обьем торгов еще не превысил некоторого производного значения.
ATR на дневном графике Daily даёт следующее значение Технического Кармана:
Значение ATR за предыдущий день = 796 тиков.
"TP:Technical Pocket Height" = 1.0. (1.0 это 100%. Для 150% используйте 1.5, и т.д...)
Это делает значение Технического Кармана равным 796 тиков * 1.0 = 796 тиков.
Вычтите это значение из ценового максимума текущего дня; получившееся значение устанавливает порог
для Тейк Профита:
Важный параметр - Глубина Ретроспекции:
Настраивает глубину расчёта на исторических данных для движка индикатора.
Он устанавливает количество баров, участвующих в предварительной отрисовке,
начиная от последнего известного бара. Это диапазон прекалькуляции.
Чем больше значение, тем глубже в прошлое можно увидеть данные индикатора.
Для экономии ресурсов RAM, CPU, значение должно быть не слишком высоким, 100'000+.
В следующем примере данные индикатора "заканчиваются", и слева от видимого диапазона больше нет данных
(достигнут конец ретроспекции):
Могут быть применены доп. фильтры RSI MACD:
Возможные типы фильтров: