記事"トレーダーのライフハック: インジケーターで作られたファストフード"についてのディスカッション - ページ 4

 
fxsaber:

ユーザーが一般的な方法でこのプロセスをスピードアップできるという確証はない。明らかに、オーバーヘッドはハッシュ関数の計算に費やされる。

その通りだ。ですから、OOPラッパーでハッシュ関数を作ることに共鳴はありません。この関数はMT5の裏側ですでに実装されており、高速に動作するからです。

fxsaber:

パフォーマンスについては気にしませんでしたが、ハッシュ関数の入力はMqlParam値の配列でなければならないことは明らかでした。そしてこれは、遅い文字列フィールドがあることを考慮すると、高速には動作しない。

つまり、ユーザー・レベルでシステム・ハッシュ関数に追いつくのはすでに難しく、かなりの差で追い越すのはほとんど不可能ということだ。

しかし、この中で重要なのは、クラシックMT5 vs. MT4スタイルには大きなオーバーヘッドがないということです。つまり、最適化は何もしない。

 
Vasiliy Sokolov:

MACD MQL4スタイルのEAが 追加でグラフィックサブシステムにアクセスしている ことに気づいたので、前の投稿を削除した:

つまり、行ったテストが誤っていたのです。コメント関数を コメントした後、パフォーマンスはほぼ等しくなりました。

この記事の著者が少なくとも一度プロファイリング(パフォーマンスを測定する際に必須である自己管理)を実行していれば、結論にこのような不幸な誤りは生じなかっただろう。

私自身は結果を信じてしまったが、そうすべきではなかった。私の責任だ。

 
fxsaber:

もしこの記事の著者が、少なくとも一度でもプロファイリング(パフォーマンス--自制心--を測定する際には必須である)を始めていれば、結論にこのような不幸な誤りは生じなかっただろう。

私自身は結果を信じてしまったが、そうすべきではなかった。私のミスだ。

+

 
fxsaber:

それにしても、インジケーターやバーは邪道だ。

その発想はなかった。

 
Rashid Umarov:

まあ、あなたは1つの記事で多くの情報を読者に投げかけてほしかったのだろう。

私は客観的な結論が欲しかった。

しかし、あなたの方法に関しては......それは真正面からの解決策だ。そしてパフォーマンスを比較した?

はい、それは正面からの方法で、正確さが要求され、性能はまったく必要なかったため、それ自体を十分に正当化することができました。課題は、MT5の干渉する巧妙さを排除することでした。


そして、他の人は、もちろん、試そうとしませんでした。

計算資源と メモリの点で超無駄であることは明らかです。しかし、同じコドベースのEAで、このようにハンドルに釘を刺すようなEAは見たことがない。すべてが「MQL5の賢さ」に委ねられているため、作者はまったく賢くないことを余儀なくされている。

私は、このようなトピックを記事リストに掲載するのは論理的だと思います。
 
Vasiliy Sokolov:

MACD MQL4スタイルのEAが 追加でグラフィックサブシステムにアクセスしている ことに気づいたので、前の投稿を削除した:

***


Comment "はテスト用に入力したものです。ビジュアルモードで"MACD MQL4 style EA short.mq5"を実行し、インデックス#1のバーにカーソルを置くと、テスターで動作を確認することができます:

「MACD MQL4スタイルEA short.mh5」をテスターで試す

図1.テスターでの "MACD MQL4 style EA short.mh5"

そして、テスターでのRATEのテストには参加しませんでした:

# n/aEA実際のティックに基づく各ティック全てのティックOHLC


テスト時間取引取引テスト時間取引時間取引時間試験時間取引取引
1MACDサンプル.mq50:01:19.4851222440:00:53.7501222440:00:03.735119238
2MACDサンプル 一度に一つの値.mq50:01:20.3441222440:00:56.2971222440:00:03.687119238
3MACDサンプル4~5 MQL4 style.mq50:02:37.4221222440:01:52.1711222440:00:06.312119238


 
Vasiliy Sokolov:

その発想はなかった。

バーやインジケータが画面上に描かれるのは大歓迎です。しかし、EAにおいては、それはほとんど馬鹿げています。

人々は実際のティックでEAをテストしますが、なぜか彼らはティックではなくバーに注目します。そして、価格の種類(ビッド、アスク、フリッパー)ごとにバーが作られていればいいのですが、そうではありません。

ヒストリカル・データに自主的に乗り換えるというのは、ある種のマゾヒズムである。そして、この断片について、彼らは機械学習の手法を使うなどして、何かを作り出そうとしている。

 
fxsaber:

スマートMQL5に関するもう一つのアイデアです。多くのExpert Advisorでは、同じインジケータが各バーで呼び出されますが、入力パラメータは異なります。MQL5は時間の経過とともに不要なハンドルを「シュート」します。しかし、これは普遍的な解決策です。そしてExpert Advisorでは、作者はこの責任を自分で負うことができ、自分でハンドルを殺すことができます。100のバーで100のハンドルの荷物を運ぶのは、計算資源と メモリの点で超無駄であることは明らかです。しかし、同じコドベースのEAで、このようにハンドルに釘を刺すようなEAは見たことがない。すべてが「MQL5の賢さ」に委ねられているため、作者はまったく賢くないことを余儀なくされている。

どんなに賢いハンドルワークでも、ここでは何の役にも立たない。インジケーターをパラメーターを持つExpert Advisorの内部関数に書き換えることだ。

このようなことは、実用にはほど遠い。もちろん、高速な内部関数を書いてそれを使用する代わりに、この可能性を使用できるような学術的な例を考えることはできます(イミフ)。

 
Vladimir Karputov:

コメント」はテスト用に入力したものです。ビジュアルモードで「MACD MQL4 style EA short.mq5」を実行し、インデックス#1のバーにカーソルを置くと、テスターで動作を確認することができます:

図1.テスターでの "MACD MQL4 style EA short.mh5"

そして、テスターでのRATEのテストには参加しませんでした:

# n/aEA実際のティックに基づく各ティック全てのティックOHLC


テスト時間取引取引テスト時間取引時間取引時間試験時間取引取引
1MACDサンプル.mq50:01:19.4851222440:00:53.7501222440:00:03.735119238
2MACDサンプル 一度に一つの値.mq50:01:20.3441222440:00:56.2971222440:00:03.687119238
3MACDサンプル4~5 MQL4 style.mq50:02:37.4221222440:01:52.1711222440:00:06.312119238


つまり、まだオーバーヘッドがあり、それも小さいものではない。ウラジミールの例の方がより信頼できる。なぜなら、そのコールはアドバイザーの実際の仕事で使われていたからだ。

 
Vasiliy Sokolov:

どんなに巧妙にハンドルを使っても、ここでは役に立ちません。インジケータをパラメータ付きのExpert Advisorの内部関数に書き換えることです。

これは「インジケータは悪である」を支持する議論でもあります。