Основные принципы построения пересекающихся каналовСуть методики для построения паттерна "треугольник
Чувашова" заключается в том, что в любой момент времени мы всегда имеем
по два последних нижних и верхних фрактала. Через два верхних и через
два нижних фрактала проводим трендовые линии. Если эти 2 линии при продолжении вправо пересекаются, образуя треугольник, то мы имеем паттерн - "Треугольник Чувашова". Точка пересечения этих двух рабочих линий называется Апекс. Пронумеруем все 4 фрактала по очередности их возникновения (слева направо). Через второй слева фрактал проводим вертикальную
линию. Также проводим вертикальную линию через Апекс. Количество свечей
между этими двумя вертикальными линиями, включая свечи на этих линиях,
делим на 3, округляем и откладываем получившееся значение от Апекса
влево и проводим третью вертикальную линию. Расстояние от вертикали, проведенной через второй по порядку фрактал и средней вертикалью, и будет зоной истинного прорыва. Рис. 1. Пример построения треугольника Перейдем к построению треугольника. Возможно множество положений последних 4-х фракталов, при которых треугольник или нельзя построить, или он будет очень коротким или очень длинным. Рис. 2. Примеры неудовлетворительного расположения фракталов Поэтому необходимо ввести ряд условий, необходимых и достаточных для формирования треугольника: Некоторые условия схождения линий треугольника:
Эти дополнительные условия были учтены в программном блоке условий формирования паттерна. Рис. 3. Зона истинного прорыва Вроде бы все понятно, но посмотрим рис. 3. Как узнать номер бара, около которого произойдет пересечение двух РЛК? Ведь в момент пробоя линии на графике еще нет
следующих баров и не известно, является ли этот пробой истинным, а
позицию пора бы уже открывать! Блок вычисления зоны истинного прорыва
решает этот вопрос через временные характеристики, т.е. определяет
пересечение рабочих линий во временном диапазоне. Мы знаем, что каждый бар появляется на графике через определенное время, например на таймфрейме H1 через каждый час. Зная скорость изменения цены в единицу времени каждой из двух линий, можно вычислить время пересечения этих линий. Зная промежуток времени от "основания" Треугольника до момента пересечения, вычислим и количество баров (единиц времени) до пересечения. В этом же блоке определяется зона истинного прорыва. Советник оформлен поблочно. В начале программы, как всегда, находятся часто
повторяющиеся функциональные блоки: открытия и закрытия позиций, функции
отрисовки значков и линий. Основная исполняемая программа тоже содержит
отдельные блоки, такие как:
Фрагмент функциональных блоков приведен ниже. // --------------------------------------------------------------------+ Поиск верхних и нижних реперных точек для построения
рабочих линий (РЛК) треугольника выполнен в цикле перебора баров по
правилам построения фракталов. Нумерацию реперных точек будем производить с учетом того, что "индексация элементов таймсерий производится задом наперед, от последнего к первому. Текущий бар, самый последний в массиве, имеет индекс 0". // ====================================================================+ В блок схождения РЛК для формирования треугольника включены следующие условия:
// ---------------------------------------------------------------------------+
if((TF1B-TF1S)>25*Point &&
Tf1b<=Tf2s && Tf1s<=Tf2b &&
TF1B>0 && TF1S>0 && TF2B>0 && TF2S>0 &&
timf1b!=0 && timf2b!=0 && timf1s!=0 && timf2s!=0 &&
TF1B<TF2B && TF1S>TF2S &&
(TF2B-TF2S)/Point<150)
{// условия образования тр-ка
//===========================================================================+ После выполнения предварительных условий проведем расчет скоростей изменения цен для верхней и нижней РЛК: // ---------------------------------------------------------------------------+ // - (блок Расчета скорость изменения цен)(верхней и нижней pip на один бар) if(TF1B!=TF2B) {RatePriceH=MathAbs((TF2B-TF1B)/(Tf2b-Tf1b));} // для верхней if(TF1S!=TF2S) {RatePriceS=MathAbs((TF1S-TF2S)/(Tf2s-Tf1s));} // для нижне // Print(" RatePriceS= ",RatePriceS); Print(" RatePriceH= ",RatePriceH); На этот момент мы имеем: 4 последних фрактала расположены в соответствии с условиями образования треугольника, но пока не ясно, как далеко будет Апекс и где будет располагаться зона истинного прорыва. Расчет Апекса зависит от расположения второго фрактала из четырех последних по ходу их образования (на графике слева направо). Начальную точку отсчета для более длинной РЛК надо определять как точку пересечения вертикали, проведенной через второй фрактал короткой РЛК с длинной РЛК. В этой связи, дальнейший алгоритм программы разветвляется на два направления расчета зон истинного прорыва: "длинная" верхняя и "длинная" нижняя РЛК. Ниже приведены основные фрагменты кода по одному направлению. Второе направление рассчитывается по тому же алгоритму. // жжжжжжжжжжжжжжжжжжжжжжж 1. верхняя РЛК длиннее нижней жжжжжжжжжжжжжжжжжжжж+ Теперь можно приступить к расчету временных характеристик зоны истинного прорыва: // ---------------------------------------------------------------------------+ Теперь может работать блок отрисовки треугольника после формирования паттерна: // - (блок отрисовки треугольника после формирования паттерна) ---------------+ if(PatternTch==true) {//есть паттерн Del_Frb(); Del_Frs(); // удаляем предыдущие верхние и нижние фракталы CreateArrow_Frb(); CreateArrow_Frs(); // наносим верхние и нижние фракталы Create_Tr_H(); Create_Tr_S(); // наносим верхние и нижние трендовые линии CreateLzona(); CreateLbasis(); CreateLApex(); // наносим вертикальные линии CreateTriangleH(); // отрисовка треугольника по верхней линии ObjectDelete("TRS"); // удаляем отрисовку треугольника по нижней линииНиже приведен скриншот работы блока отрисовки паттерна "Треугольник Чувашова": Далее вступает в действие блок открытия позиций. Если выполнены условия открытия позиций, будет проведен расчет построения того канала, РЛК которого была пробита. Произойдет прорисовка канала. Будут рассчитаны StopLoss и TakeProfit с учетом требований системы управления капиталом и открыта позиция (в данном случае BUY - скриншот ниже). Однако позиции могут быть открыты в обе стороны, если выполнены условия для открытия в обоих направлениях (смотри скриншот ниже) Далее программа отслеживает время жизни паттерна. Если текущее время больше времени окончания зоны
истинного прорыва, то программа вводит запрет на открытие позиций. Если
текущее время больше времени Апекса, программа удаляет все прорисовки
паттерна, очищая график от уже ненужных значков и линий. Ниже приведен код блока жизни паттерна. // - (блок определения времени жизни паттерна) -------------------------------+ Результат работы этого блока в правой стороне предыдущего скриншота. Представленный здесь советник показал положительный результат как МТС при автоматическом тестировании:
Краткий вывод таков: Описанная здесь методика может быть использована
трейдерами как составная часть торговой системы, однако требуется
доработка по добавлению фильтров открытия позиций. Скачать архив с советником Механическая торговая система "Треугольник Чувашова" | |
| |
Просмотров: 3321 | |
Всего комментариев: 0 | |