MT4からMT5への乗り換えの問題。正確には、MT5で一部のアルゴリズムをerrなしで実行できないことです。

 

まずMQL5の言語ガイドから引用します。データアクセスを整理する」という見出しで。

"...データアクセシビリティ

HCCフォーマット、あるいはHCレディ・フォーマットのデータが入手できても、これらのデータをグラフに表示したり、mql5プログラムで使用したりすることが必ずしも無条件に可能であるとは限りません。

mql5-programから価格 データやインジケータの値にアクセスする場合、「ある瞬間、ある時点から利用できることが保証されていない...」ということを覚えて おく必要があります。

すぐに、記載されている問題を回避するためのアドバイスをすることはご遠慮ください。これは主にMQL5の開発者向けに書かれたものです。

ZUP for MT4では、フラクタルフィルタリングアルゴリズムが実装されています。ZUPはペサベント柄の万能ジグザグ です。グラフィカルなインターフェースは、少し書いてありますね。しかし、ここでもう一度、そのアルゴリズムを説明します。

グラフィカルインターフェースを使って、選択したグラフィカルツール(Andrew's Pitchforkなど)をジグザグの極値や波模様に結合してチャート上に表示すると、フラクタルフィルタリングのアルゴリズムが作動します。

フラクタルフィルタリングは、作成したグラフィカルツールの出力が意味を失うような時間軸で、作成したグラフィカルツールを削除するものである。

例えば、いくつかの時間枠で選択された極値に対する相場がない(これは低い時間枠に関連する)、または高い時間枠で1つのバーの本文に2つ以上の極値が現れ、バー内の位置がさまざまに変化している。

このようなタイムフレームで、以前に作成したグラフィカルツールを表示するのは意味がありません。機能が失われてしまうのです。そんなとき、フラクタルフィルタリングは自動的に「困ったときの」グラフィックツールの表示を防いでくれる。ニューラルネットワーカーのために、順次追加していきますが...。ニューラルネットワークでの実装について、非常に興味深いアイディアがあります。...が、それはまた別の話。

MQL5の問題点は、チャートツールに付属する全ての極値に対して全ての時間枠で時系列を生成しても、データアクセスの特殊性により、選択した極値の一部の時間枠にアクセスできなくなる瞬間があることです(上図参照)。その結果、フラクタルフィルタリングアルゴリズムの時間軸に関する誤ったデータが生成される。つまり、例えば全てのタイムフレームにアクセスした場合、フラクタルフィルタリング用データの上限cfは、月足タイムフレームの上限cfの値を与える。しかし、アクセスが保証 されない現時点では、この極値に対する上限tfは現在の時間枠に限定される。

ユーザーは、グラフィカルツールが取り付けられているシンボルをクリックする。チャートマークが表示されます。ユーザーが古い時間軸に切り替わる。フラクタルフィルターアルゴリズムは、グラフィカルツールを削除します。ユーザーは困惑している。極限はすべて見えるが、グラフィカルなツールは消えてしまう。

そして、ここでは、ユーザーが選択したシンボルをクリックしてから、現在のタイムフレームとは異なるタイムシリーズにアクセスするまでのチャートシンボル結合の待ち時間を整理することは不可能です。

MT4ではそのような問題はありません。

この状況が、今回、私がMT5用のプログラムを開発することを阻んでいる問題なのです。この問題は、MT5が市場に導入されたときから明らかだった......。

ZUPコードをMT5に変換しました。そして、My Marketに置きました。しかし、そこには上記のような問題が存在する。迂闊に松葉杖を作ったりはしませんでした。この問題がわかっている場合は、作成したグラフィカルツールを削除すればよいのです。そして、それを新たに表示する。でも、これは、なんというか、やさしく言えば......。

上記の問題は、やはりMQL5言語やMT5端末の不完全性だと思います。いつでも、すでに生成されたタイムシリーズにアクセスできることが保証されるべきなのです!

余談ですがZUPで波動分割を作成する場合、フラクタルフィルタリングが有効になります。ここでは、以下のようになります。すべての時間枠のすべての時間軸にアクセスした場合、波模様は正しく表示されます。しかし、時系列へのアクセスを突然終了させると、予測不可能な波形が出力されることがあります。つまり、波のパーティションが作られるときは、すべてが整然とした状態だったのです。そして、その後の他のタイムフレームへの移行時に波動分割が行われた際に、予測できない形で表示されることがありました。 また、誤った端末操作を排除するための松葉杖を作ることは簡単ではありません。

 
グラフィカルなオブジェクトは忘れてください。とても不便で限界があります。kanvasを使えば、すべてがより簡単に、より速く、そして無限のグラフィックの可能性で動作するようになります。
 

そういえば、ちょうど昨日、W1から1年単位で定期的にデータをコピーするインジケーターを書いていたところでした。コピーに失敗することが非常に多かった。結局、うまくいかず、すべて別の原理でやることになりました。

 
Eugeni Neumoin:

...

また、4以降のデータアクセスにも不慣れで不便を感じる。

5のデータアクセスはTFに限定されます。

TF D1やW1にかなり長いトレンドラインを引いた後、M1やM5に行くと、遠いトレンドポイントへのアクセスに制限が あるため、それを見ることができません。

簡単に確認することができます。

キャンバスをどうにかしないと。しかし、そこにもそのような待ち伏せが待ち構えている可能性がある。

 
データが入手できないことを再現性高く示せるか?

再現性のある証拠もなく断言する。
 
素晴らしいインジケーターを整え、余計なものを排除して、メインを見せたいと思ったのです。しました。しかし、突然スイス時計のように動くようになったのです。
 
Uladzimir Izerski:

また、4.以降もデータアクセスに不慣れで不便を感じる。

5のデータアクセスはTFに限定されます。

TF D1やW1にかなり長いトレンドラインを引いた後、M1やM5に行くと、遠いトレンドポイントへのアクセスに制限が あるため、それを見ることができません。

簡単に確認することができます。

キャンバスをどうにかしないと。でも、もしかしたらそこにも待ち伏せが待っているかもしれない。

全く別物です。ファーポイントには、トレンドを示す小額での履歴があるはずです。

W1フォークを参考に描こう。最小のタイムフレームはm20です。これを示すのが、フラクタルフィルタリングのアルゴリズムである。この場合、ツールチップに表示されます。 下部のtfにあるピッチフォークの最初のポイントを参考にして何かを作るのは意味がないのです。

m20の次の写真で上向き矢印で示した場所に、縦線が引かれています。すべて正常に表示されます。しかし、より浅いフレームでは、フラクタルフィルタリングによってそれらのピッチフォークが表示されることはないでしょう。履歴は、より浅いフレームではTERMINAL_MAXBARSを 超えます。 そのためm20以下のTFでは表示されません。

すべてが完璧にディスプレイされています。シフトなし。そして、MT5でも問題なく動作します。しかし、そのように表示するためには、フォークを表示する際に、最小の時間枠、我々の場合はm20で、極値の正確な時刻を設定する必要があります。

ちなみに、2018年09月11日に回線SLM318(点線)が正常に動作していることがわかります。ミンスク発のFXアカデミーが宣伝しているスナイパーテクニックのようなものです。しかし、ここで市場はSLM318というラインを「見て」、ただ見事に動いたのです......。

 
Renat Fatkhullin:
データにアクセスできないことを再現性よく証明できるか?

再現性のある証拠もなく断言する。

画像を保存していないでも、いざとなったら写真を載せるつもりです。いくつかのテストコードでは再現できません。作成するコードが多すぎるのです。

その様子だけを記すことにする。H3にピッチフォークを描きました。高フレームでも利用可能なエクストリームにバインドしました。H4へ移行しました。投石器が消えた。なぜそうなったのか、理由がわかってきたのです。フラクタル濾過のTF境界がどこにあるのか、ツールチップで確認しました。 上限の境界は H3上にあるように見えた。チャートからピッチフォークを削除しました。ピッチフォークを同じエクストリームに再リンク。上限を確認しました。1ヶ月のタイムフレームであることが判明しました。そして、そのような状況が繰り返された。しかし、頻繁ではありません。

プログラムはジグザグを表示する際、最初の10個の極値に対してすべての金庫にアクセスする。そのたびにジグザグが描き直される。ジグザグは、価格がゼロバーから離れるときのみ再描画されます。すべてのティックにではありません。

端末を終了します。コンピュータのメモリからアンロードしています。履歴のあるフォルダにアクセスすると、*.hcファイルがあるんです。全時間軸の時系列ファイルは、端末をコンピュータのメモリーからアンロードした時点の日時を持つ。つまり、すべての時系列が形成される。

 
画像に興味がない、あなたのコードから派生したものです。

気になるのは、ログが明確なデータの提供を拒否している点です。
 
Renat Fatkhullin:
私の興味のある画像ではなく、あなたのコードから派生したものです。

気になるのは、ログが明確なデータの提供を拒否している点です。

これをモデル化する必要があるのです。ログを作成するにはどうすればいいのか考えてみます。

 
Renat Fatkhullin:
データにアクセスできないことを再現性よく証明できるか?

再現性のある証拠もなく断言する。

もし、それが私への質問なら?

では、ここで簡単な例を再現してみましょう。

D1.

v1

H4へ

H4


H1へ

H1


小さなTFにわかりやすいチャートが表示されます。

オブジェクトはリストに入っているが、チャートにはない。

m1

理由: