インディケータ: ハーモニックパターンファインダー V3 - ページ 2

 

サイファーパターンの値を調整する手助けを探している。 パターンが14個の整数の列で定義されているコードを見つけた。 14個の数字は以下の通りだと推測している:

(1)名前0=XA

(2)名前1=AB

(3)名前2=BC

(4)名前3=CD

(5)名前4=XAB

(6)名前5=XAD

(7)名6=ABC

(8)名称7=BCD

(8)三角形XB

(9)三角形BD

(10)点X

(11)点A

(12)点B

(13)点C

(14)点D


以下は、これらに基づくサイファーパターンのコードである:

0.382, 0.618, 0, 0, 0, 0, 0, 0, 0.786, 0.786, 1.13, 1.414, 0, 0


現在、サイファーパターンは不適切に描画されています。 サイファーとして認定されるには、ポイントBはX-Aの0.382フィボナッチリトレースメントに 到達して0.618を下回らないこと、ポイントCはX-Aの1.272フィブエクステンションに到達して1.41を上回らないこと、ポイントDはX-Cの0.786フィブリトレースメントに到達する必要があります。


現在のところ、このツールが描くサイファーパターンの80%から90%は、実際には基準に適合していないようです。 ほとんどは適切なポイントDに達することはなく、多くはポイントCのゾーンをはるかに超えています!

 
上記では14の数字が並んでいるが、私は8を2回使ったので、実際には14の数字が並んでいると思っていたコードの中に15がある。
 
jojo151579:
上記では14個の数字が並んでいるが、8個を2回使っているので、実際には15個の数字が並んでいる。

パターンは "HPFMatcher.mqh "で定義された18個のダブルスの構造で記述されている:

struct PATTERN_DESCRIPTOR
  {
   double            ab2xa_min;
   double            ab2xa_max;
   double            bc2ab_min;
   double            bc2ab_max;
   double            cd2bc_min;
   double            cd2bc_max;
   double            ad2xa_min;
   double            ad2xa_max;
   double            cd2xc_min;
   double            cd2xc_max;
   double            xc2xa_min;
   double            xc2xa_max;
   double            cd2ab_min;
   double            cd2ab_max;
   double            bc2xa_min;
   double            bc2xa_max;
   double            cd2ad_min;
   double            cd2ad_max;
  };

最初の変数名はXAに対するABの比率の最小値(「BはXAの...に達していなければならない」)、次の変数名はXAに対するABの比率の最大値(「BはXAの...に触れてはならない」)、といった具合だ。このため、マッチャーが計算に使うのは高値と安値だけなので、「BはXAの...を下回らない」という基準をチェック するように変更するのは簡単ではありません。

どうしてもそうしたいのであれば、最大レシオをもう少し下、例えば0.618 + 0.1、あるいは次のハーモニック・レベルに設定し、終値が本当に0.618を上回ったかどうかをアドホック・フィルターでチェックする方法が考えられます。また、デフォルトのインジケータ設定では、この制約に0.05のスラックが適用され、Bポイント・バーの高値/安値が0.668にタッチしない限り、パターンが検出されることに注意してください。終値の基準を確認するのはあなた次第です。


Cypherのパターン記述子({0.382,0.618,0,0,0,0,0,0,0,786,0.786,1.13,1.414,0,0})は、以下のようになります。

  • ab2xa_min = 0.382
  • ab2xa_max = 0.618
  • cd2xc_min = 0.786
  • cd2xc_max = 0.786
  • xc2xa_min = 1.13
  • xc2xa_max = 1.414

平たく言えば、これは次のような意味である:

  • Bは0.382 XAリトレースメントに到達しなければならないが、0.618にはタッチしない。
  • Dは0.786 XCリトレースメントに到達しなければならない。
  • Cは1.13 XAエクステンションに到達しなければならないが、1.414にはタッチしない。
つまり、マッチャーがCポイントを1.272エクステンションに到達させるためには、エントリー#11を1.13から1.27に変更するだけです。繰り返しになるが、最大値を「タッチできない」から「下に閉じる」に変更するのはそれほど単純ではなく、同じ0.05のスラックが適用される。

 
Andre Enger:

パターンは、"HPFMatcher.mqh "に定義された18個のダブルスの構造体によって記述される:

最初の変数はXAに対するABの比率の最小値(「BはXAの...に達していなければならない」)、次の変数はXAに対する比率の最大値(「BはXAの...に触れてはならない」)、といった具合である。このため、マッチャーが計算に使うのは高値と安値だけなので、「BはXAの...を下回ってはならない」という基準をチェックするように変更するのは簡単ではありません。

どうしてもそうしたいのであれば、最大レシオをもう少し下、例えば0.618 + 0.1、あるいは次のハーモニック・レベルに設定し、終値が本当に0.618を上回ったかどうかをアドホック・フィルターでチェックする方法が考えられます。また、デフォルトのインジケータ設定では、この制約に0.05のスラックが適用され、Bポイント・バーの高値/安値が0.668にタッチしない限り、パターンが検出されることに注意してください。終値の基準を確認するのは、あなた次第です。


Cypherのパターン記述子({0.382,0.618,0,0,0,0,0,0,0,786,0.786,1.13,1.414,0,0})は、以下のようになります。

  • ab2xa_min = 0.382
  • ab2xa_max = 0.618
  • cd2xc_min = 0.786
  • cd2xc_max = 0.786
  • xc2xa_min = 1.13
  • xc2xa_max = 1.414

平たく言えば、これは次のような意味である:

  • Bは0.382 XAリトレースメントに到達しなければならないが、0.618にはタッチしない。
  • Dは0.786 XCリトレースメントに到達しなければならない。
  • Cは1.13 XAエクステンションに到達しなければならないが、1.414にはタッチしない。
つまり、マッチャーがCポイントを1.272エクステンションに到達させるためには、エントリー#11を1.13から1.27に変更するだけです。繰り返しますが、最大値を「タッチできない」から「下に閉じる」に変更するのはそれほど単純ではなく、同じ0.05のスラックが適用されます。

ご回答ありがとうございました!終値が0.618を下回ると、かなり厳しいと思ったので、その1つをスキップすることができます(0.618を上回ると、終値が0.786を上回らないので、パターンをフィルタリングすることができます)。 1.27(C)に到達するようにパラメータを変更し、0.786に到達するようにパラメータを変更します。.786は最小値であり、そこで反転する必要はないので、それを変更することで、その問題も解決されることを期待しています)私はこれらを試して、それがどのように動作するかを更新します。 ありがとう!
 
Andre Enger:

パターンは、"HPFMatcher.mqh "に定義された18個のダブルスの構造体によって記述される:

最初の変数はXAに対するABの比率の最小値(「BはXAの...に達していなければならない」)、次の変数はXAに対する比率の最大値(「BはXAの...に触れてはならない」)、といった具合である。このため、マッチャーが計算に使うのは高値と安値だけなので、「BはXAの...を下回ってはならない」という基準をチェックするように変更するのは簡単ではありません。

どうしてもそうしたいのであれば、最大レシオをもう少し下、例えば0.618 + 0.1、あるいは次のハーモニック・レベルに設定し、終値が本当に0.618を上回ったかどうかをアドホック・フィルターでチェックする方法が考えられます。また、デフォルトのインジケータ設定では、この制約に0.05のスラックが適用され、Bポイント・バーの高値/安値が0.668にタッチしない限り、パターンが検出されることに注意してください。終値の基準を確認するのは、あなた次第です。


Cypherのパターン記述子({0.382,0.618,0,0,0,0,0,0,0,786,0.786,1.13,1.414,0,0})は、以下のようになります。

  • ab2xa_min = 0.382
  • ab2xa_max = 0.618
  • cd2xc_min = 0.786
  • cd2xc_max = 0.786
  • xc2xa_min = 1.13
  • xc2xa_max = 1.414

平たく言えば、これは次のような意味である:

  • Bは0.382 XAリトレースメントに到達しなければならないが、0.618にはタッチしない。
  • Dは0.786 XCリトレースメントに到達しなければならない。
  • Cは1.13 XAエクステンションに到達しなければならないが、1.414にはタッチしない。
つまり、マッチャーがCポイントを1.272エクステンションに到達させるためには、エントリー#11を1.13から1.27に変更するだけです。繰り返しますが、最大値を「タッチできない」から「下に閉じる」に変更するのはそれほど単純ではなく、同じように0.05のスラックが適用されます。

うまくいった! 1.13を1.27に変更し、2番目の0.786を1.000に変更した(0に変更すると悲惨な結果になった :) これでとても正確に動作するようになった!コードの助けに感謝する。 これでこのすべてのものを理解できる! 君は命の恩人だ! よい休日を!
 

このインジケーターが大好きだ!(このインジケーターが大好きです!(特に、フィボレベルをカスタマイズできるようになったので!)。

このツールを使って、マーケットウォッチウィンドウに表示されている全銘柄を自動的にスキャンするスキャナーをセットアップしたい場合、EAを作成する必要があると思うのですが? 私はコーダーではないのですが、このEAを作成するためにコードを知っていること、書けることは必要でしょうか?このEAを作成するために、コードを書ける必要があるのでしょうか? これは、インジケーターに通常通りロードできるように保存された設定になります。 これは可能で、簡単に作成できるのでしょうか?

あるいは、全銘柄を一度にチャートフォームに読み込んで、このツールを単純に適用するもっと簡単な方法があるのでしょうか? 全銘柄を一度に読み込んで検索するのは、とても時間がかかります!(私はMTの初心者なので、まだすべてのキンクを解決できていません :) )

ご意見をお聞かせください。



また、サイファーパターンで、XからDへの線がXAのフィボ・リトレースメントを示しているのを見たことがあります。 XAリトレースメントはポイントBにのみ適用され、ポイントDとは無関係です。

 
jojo151579:

このインジケーターが大好きだ!(特にフィボレベルをカスタマイズできるようになった!)

このツールを使って、マーケットウォッチウィンドウに表示されている全銘柄を自動的にスキャンするスキャナーをセットアップしたい場合、EAを作成する必要があると思うのですが? 私はコーダーではないのですが、このEAを作成するためにコードを書く知識や能力は必要でしょうか?このEAを構築するために、コードを書いたり、知識が必要なのでしょうか? これは、インジケーターに通常通りロードできる保存された設定になります。 これは可能で、簡単に作成できますか?

あるいは、全銘柄を一度にチャートフォームに読み込んで、このツールを単純に適用するもっと簡単な方法があるのでしょうか? 全銘柄を一度に読み込んで検索するのは、とても時間がかかります!(私はMTの初心者なので、まだすべてのキンクを解決できていません :) )

ご意見をお聞かせください。



また、サイファーパターンでXからDへの線がXAのフィボ・リトレースメントを示しているのを見たことがあります。 XAリトレースメントはポイントBにのみ適用され、ポイントDとは無関係です。

MTの最新バージョンには、チャートのドックを外す機能があるようですね。各銘柄のチャートを開き、インジケーターをロードし、次に必要になるまでチャートを最小化することが可能です。それでも、検索のために各ウィンドウを手動でクリックする必要があるが、少なくとも、毎回チャートとインジケーターを読み込むよりは面倒ではない。MTには、このためのスキャナーや機能が組み込まれていません。作成するにはコーディングが必要だが、スクリプトとして作成することもできる。

XからDへの線は、すべてのパターンで同じ手順で引かれます。サイファーの特殊性(あるいは、C点がA点を超える他のパターン)を考慮に入れていないのは、バグというより本当にバグなのだが、これには手が回らなかった。

Cypher用に修正するには、まず "HarmonicPatternFinderV3.mq5 "の880行目付近にこの行を追加する:

string xcd=IntegerToString((int) MathRound(100*MathAbs(D-C)/MathAbs(X-C)));

次に、現在の行番号992を次のように置き換える:

if(k!=FIVEO) ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XAD="+xad);

をこれに置き換える:

if(k!=FIVEO && k!=CYPHER)
  ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XAD="+xad);
else if(k!=FIVEO)
  ObjectSetString(0,name5,OBJPROP_TOOLTIP,prefix+_patternNames[k]+" XCD="+xcd);

これで、確認されたパターンに対して最も意味のあるツールチップが追加される。投影図に 追加して表示するには、投影図の描画手順で同じことを行う。つまり、行番号1130のところに最初の行を追加し、現在の1180を置き換える。


 
Andre Enger:

MTの最新バージョンには、チャートをドッキング解除する機能があるようだ。銘柄ごとにチャートを開き、インジケーターを読み込んで、次に必要になるまでチャートを最小化することができる。それでも、検索のために各ウィンドウを手動でクリックする必要があるが、少なくとも、毎回チャートとインジケーターを読み込むよりは面倒ではない。MTには、このためのスキャナーや機能が組み込まれていません。作成するにはコーディングが必要だが、スクリプトとして作成することもできるだろう。

XからDへの線は、すべてのパターンで同じ手順で引かれます。サイファーの特殊性(あるいは、CポイントがAポイントを超える他のパターン)を考慮に入れていないのは、実際にはバグというべきものだが、これには手がつけられていない。

Cypher用に修正するには、まず "HarmonicPatternFinderV3.mq5 "の880行目付近に次の行を追加する:

次に、現在の行番号992を置き換える:

をこれに置き換える:

これで、確認されたパターンに対して最も意味のあるツールチップが追加される。投影図に追加して表示するには、投影図の描画手順で同じことを行う。つまり、最初の行を1130行目に追加し、現在の1180行を置き換える。


また助けてくれてありがとう!残念ながら、上記をすべてコピー&ペースト(881行目に最初のコードを入力し、元の992行目を置き換える)して、コンパイルして再起動しましたが、何も変わりませんでした。 大したことではないのですが...。そもそもxからcに行くジグザグ線がないことと関係があるのかもしれません。 いろいろとありがとうございました!

とにかく、このインジケーターはバックテストに 最適です。 いつかスキャナーを購入しなければならないかもしれません(それほど高くないものを見つけたら!)。

 
jojo151579:

また助けてくれてありがとう! 残念ながら、上記をすべてコピー&ペースト(881行目の最初のコードを入力し、元の992行目を置き換えた後、コンパイルして再起動)しましたが、何も変わりませんでした。 大したことではないのですが...。そもそもxからcに行くジグザグ線がないことと関係があるのかもしれません。 いろいろとありがとうございました!

とにかく、このインジケーターはバックテストには 最適でしょう。 いつかスキャナーを購入しなければならないかもしれません(それほど高くないものを見つけたら!)。

HPFDrawingObserver.mqh "に追加して、300行目を410行目に置き換えてください。あるいは、現在プッシュされているアップデートをダウンロードすれば、すべてのパターンで修正されます。もし "HPFDrawingObserver.mqh "ファイルをダウンロードするだけなら、Cypher用に修正したパターン-ディスクリプタを再入力する必要はない。
 
Andre Enger:
HPFDrawingObserver.mqh "の300行目を追加して、410行目を置き換えてください。あるいは、現在プッシュされているアップデートをダウンロードすれば、すべてのパターンで修正されます。HPFDrawingObserver.mqh "ファイルをダウンロードするだけなら、Cypher用に修正したパターン-ディスクリプタを再入力する必要はない。
ああ、わかった......ありがとう......上記もすべて試してみたが、変化はなかった。まだXADの情報が表示される。とにかくありがとう。