Индикаторы: Harmonic Pattern Finder V2 - страница 4

 
davesarge1:

Привет, Андре,


Еще одна идея по улучшению индикатора (как и 1.618 AB=CD и клик на Pattern для выделения) - показывать цену рядом с уровнями точки D. Например: "D Projected Bullish Cypher 110.821" на прикрепленном графике. Сейчас мне приходится переключать курсор на крестик на MT5, чтобы увидеть прогнозируемую цену. Я проверяю паттерны на всех таймфреймах, и было бы здорово просто видеть цену рядом с прогнозируемой точкой D.

Спасибо,

Дэвид

Еще раз здравствуйте,


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

...      
ObjectSetString(0,pointD,OBJPROP_TEXT," D "+prefix+_patternNames[k]);
...

на

...
ObjectSetString(0,pointD,OBJPROP_TEXT," D "+prefix+_patternNames[k] + " " + NormalizeDouble(D, _Digits));
...

добавив желтую часть. Затем нажмите "Компилировать", и вы получите желаемый результат по проектируемым 5-точечным шаблонам. То же самое проделайте в строке 1523 для 4-точечных деталей.


Принцип работы заключается в следующем цветовом кодировании:

+ " " + NormalizeDouble(D, _Digits)

соответствует "D Projected Bullish Cypher 110.821". Таким образом, если бы вы вместо этого написали "D Projected Bullish Cypher - 110.821" (добавив разделитель -), то код выглядел бы следующим образом:

...
ObjectSetString(0,pointD,OBJPROP_TEXT," D "+prefix+_patternNames[k] + " - " + NormalizeDouble(D, _Digits));
...
 
Andre Enger:

Еще раз здравствуйте,


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

на

добавив желтую часть. Затем нажмите "Компилировать", и вы получите желаемый результат по проектируемым 5-точечным шаблонам. То же самое проделайте в строке 1523 для 4-точечных деталей.


Принцип работы заключается в следующем цветовом кодировании:

соответствует "D Projected Bullish Cypher 110.821". Таким образом, если бы вы вместо этого написали "D Projected Bullish Cypher - 110.821" (добавив разделитель -), то код выглядел бы следующим образом:

Большое спасибо! Я получаю предупреждение "неявное преобразование из 'number' в 'string'", но все работает нормально.
 
davesarge1:
Большое спасибо! Я получаю предупреждение "неявное преобразование из 'number' в 'string'", но все работает нормально.

Да, оно должно работать нормально.

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

... + " " + DoubleToString(NormalizeDouble(D, _Digits),_Digits));

или, проще говоря, явным приведением

... + " " + (string)NormalizeDouble(D, _Digits);
 

Если вы хотите дополнительно видеть конечную цену PRZ на прогнозах в тексте, например, "D Projected Bullish Cypher 110.821 to 110.678", это можно сделать в трех модификациях:

  1. Две строки, которые мы меняли до сих пор, должны быть такими
    ObjectSetString(0,pointD,OBJPROP_TEXT," D "+prefix+_patternNames[k]+ " " + (string)NormalizeDouble(D, _Digits)+" to "+(string)NormalizeDouble(farD, _Digits));
  2. Объявление метода (строки 1537 и 1471) должно получить новый параметр
    datetime DDateTime,double D,double farD)
  3. Вызовы методов (строки 953 и 955) должны передавать параметр
    ...                     
       DisplayProjection(patternIndex,bullish,ADateTime,A,BDateTime,B,CDateTime,C,DDateTime,D,farD);
    else
       DisplayProjection(patternIndex,bullish,XDateTime,X,ADateTime,A,BDateTime,B,CDateTime,C,DDateTime,D,farD);
    ...

 
Andre Enger:

Если вы хотите дополнительно видеть конечную цену PRZ на прогнозах в тексте, например, "D Projected Bullish Cypher 110.821 to 110.678", это можно сделать в трех модификациях:

  1. Две строки, которые мы изменяли до сих пор, должны быть заменены на
  2. Объявление метода (строки 1537 и 1471) должно получить новый параметр
  3. Вызовы методов (строки 953 и 955) должны передавать параметр.

Хорошо, интересно. Значит, это позволит мне увидеть остановку PRZ до достижения точки D? Кстати, как рассчитывается остановка PRZ? Это определенный % пунктов от точки D, или последний уровень в PRZ?
 
davesarge1:
Хорошо, интересно. Значит, это позволит мне видеть PRZ стоп до достижения точки D? Кстати, как рассчитывается PRZ стоп? Это определенный % пунктов от точки D, или последний уровень в PRZ?

Да, это позволило бы видеть цену остановки PRZ в текстовой метке проекции.

Он рассчитывается по методу "пересечения", описанному ранее, с применением заданной слабины. Если снова взять бычий пример Гартли, предположив, что провисание интервала равно 0, и XA (0,786 + скалярное провисание) пересекает - т.е. совпадает - с соотношением 1,272 BC, то PRZ закончится на этом, а не протянется вниз до 1,618 BC, ПОТОМУ ЧТО правило XA и соотношение там не будут соблюдены. Это означает, что если стоп достигнут, паттерн недействителен, потому что не все соотношения (даже с добавленной слабиной) удовлетворены , КОГДА цена в конечном итоге развернется.

Итак, немного упрощая, последняя "обычная" цена, разрешенная каждым из соотношений
 
Andre Enger:

Да, это позволит видеть цену остановки PRZ в текстовой метке проекции.

Она рассчитывается по методу "пересечения", описанному ранее, с применением заданного провисания. Если снова взять пример бычьего Гартли и предположить, что провисание интервала равно 0, а XA (0,786 + скалярное провисание) пересекается - то есть совпадает - с соотношением 1,272 BC, то PRZ закончится на этом месте и не распространится до 1,618 BC, потому что правило XA и соотношение там не будут соблюдены. Это означает, что если стоп достигнут, паттерн недействителен, потому что не все соотношения (даже с добавленной слабиной) удовлетворены , КОГДА цена в конечном итоге развернется.

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

Привет, Андре,

Я все еще немного не уверен в некоторых прогнозируемых паттернах и уровнях PRZ, которые он выбирает. Например, я прилагаю график с прогнозируемой медвежьей летучей мышью, с XAD 79 и CD 218. Однако в этом случае XAD 88.6 и CD 2.618 были очень близки друг к другу, только немного выше (на 111.3), но индикатор не выбрал это в качестве прогнозируемой точки D. Есть ли какая-нибудь причина для этого?

Спасибо,

Дэвид

Файлы:
 
davesarge1:

Привет, Андре,

Я все еще немного не уверен в некоторых прогнозируемых паттернах и уровнях PRZ, которые он выбирает. Например, я прилагаю график с прогнозируемой медвежьей летучей мышью, с XAD 79 и CD 218. Однако, в этом случае XAD 88.6 и CD 2.618 были очень близки друг к другу, только немного выше (на 111.3), но индикатор не выбрал это как прогнозируемую точку D. Есть ли какая-то причина для этого?

Спасибо,

Дэвид

В паттерне "Летучая мышь" XAD в идеале находится на уровне 88,6, а CD - в диапазоне от 161 до 261.

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

Таким образом, индикатор будет искать зону от 78,6 (88,6 - 10) до 98,6 (88,6 + 10), где он посчитает соотношение XAD удовлетворительным. Проекция начнется с первого возможного числа, в данном случае 79. Он выберет более высокое число только в том случае, если его вынудит к этому какое-то другое соотношение, например CD.

Например, если бы CD был только 150 при данной цене, начало проекции было бы увеличено до CD 160 (161 - 1), что могло бы дать XAD, близкий к идеальному, или даже выше. Если для того, чтобы КД был 160, цена должна была бы подняться выше XAD 98,6, индикатор определил бы, что паттерн не может быть удовлетворен, и удалил бы проекцию.

С другой стороны, если проекция будет достигнута, то индикатор покажет линию окончания PRZ либо на XAD 98.6, либо на CD 262 (261 + 1), в зависимости от того, что наступит раньше. Таким образом, в некотором смысле, из зоны соотношения XAD будет выбрано последнее возможное число, если только его не заставит другое соотношение.

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

 
Andre Enger:

В паттерне "Летучая мышь" XAD в идеале находится на уровне 88,6, а CD - в диапазоне от 161 до 261.

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

Таким образом, индикатор будет искать зону от 78,6 (88,6 - 10) до 98,6 (88,6 + 10), где он посчитает соотношение XAD удовлетворительным. Проекция начнется с первого возможного числа, в данном случае 79. Он выберет более высокое число только в том случае, если его вынудит к этому какое-то другое соотношение, например CD.

Например, если бы CD был только 150 при данной цене, начало проекции было бы увеличено до CD 160 (161 - 1), что могло бы дать XAD, близкий к идеальному, или даже выше. Если для того, чтобы КД был 160, цена должна была бы подняться выше XAD 98,6, индикатор определил бы, что паттерн не может быть удовлетворен, и удалил бы проекцию.

Хорошо, понятно. Значит, точка проекции D - это первая цена, где соотношение обеих ног находится в диапазоне допустимых чисел в соответствии с настройками слабины. В таком случае я действительно должен рассматривать точку D как начало PRZ, а не как оптимальную или идеальную цену.
Спасибо!
 
davesarge1:
Хорошо, я понял. Значит, проекционная точка D - это первая цена, где соотношение обеих ног находится в диапазоне допустимых значений в соответствии с настройками просадки. В таком случае я действительно должен рассматривать точку D как начало PRZ, а не как оптимальную или идеальную цену.
Спасибо!

Это верно, если рассматривать коэффициенты как "идеальные числа, но с некоторым запаздыванием". Например, соотношение XAB у Гартли, мне не нужно, чтобы точка B была точно на 61,8 XA, но она должна быть "достаточно близка". В противном случае я бы постоянно оказывался в стороне.

В пуристском смысле проектируемая точка D на самом деле является границей чистой ПРЗ, которая может быть как разрешительной, так и ограничительной для ПРЗ в зависимости от того, какие послабления допускает пурист, и от конкретного выравнивания коэффициентов. Точные соотношения либо плотно упакованы ниже указанной точки (разрешительная граница), либо одно соотношение ног уже достигнуто, но проектируемая точка показывает, где это соотношение "достаточно близко" к другому (ограничительная граница).

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

Худшим вариантом для пуриста будет, если чистая PRZ ограничивается точкой D, а последующая остановка PRZ находится там, где уже пройденное соотношение перестает быть "достаточно близким" к другому соотношению, которое находится еще ниже. Тогда PRZ, показываемая индикатором, будет находиться между двумя точными соотношениями, но не будет иметь самого соотношения. Холист скажет, что паттерн есть, он, в конце концов, "достаточно близок" к каждому соотношению, а пурист скажет, что нет, поскольку нет PRZ.