チャート上に等幅フォントで出力するにはどうしたらいいですか? - ページ 7

 
Renat Fatkhullin:

考えて抜本的に改善することの何が問題なのでしょうか。

すでにMQL4-MQL5のライブラリが「動くからすごい」モードで、身の毛もよだつ思いをしているのです。両プラットフォームの速度を比較するために、みんな真剣に使っているんですよ。

そして今度は、考えるのではなく、「MT5の方が遅い」と言って持て囃されるような、新たな最先端ツールを作ろうという提案ですね。


私は何も理解していません。fxsaberに時間と欲望があれば、もう一度提案します。

1.テスター/オプティマイザーモードで不要な機能(今のところグラフィック)を無効にするMT5用ライブラリ(MT4はオプション)を作る。

2.そのためには、これらのコストのかかる機能をdefineで囲み、動作モードに応じて、有効または無効にします。

そんなに感情的になる必要はなく、誰もMT5を攻撃しているわけではありません。

 
fxsaber:

テスターでコードの性能を1行で測定できる万能ツールがあります。そこでなんとかいろいろなものを見ることができました。特に、1回の実行が最適化実行より遅いこと。

コメントの件では、開発者の方から回答が ありました。今のところ、私自身は1行で 1.5~2倍ほど最適化を加速しています。

そして、SDが教えてくれたのは、パフォーマンスにとって重要なニュアンス でした。


関数実行のマイクロ秒を気にするのは、最適化モードにおいてのみ合理的です。リアルタイムでは、何の違いもない。また、CommentはExpert Advisorのリアルタイムでのパフォーマンスに影響を与えず、たとえ一桁遅くなったとしても、その影響はありません。


しかし、テスターで最速で動くようにEAを書いて いる人はほとんどいないのが事実です。

どうすれば実現できるのか、FAQを書いてください。あなたの想いをひとつにまとめてください。ブログ、他の場所、youtubeでビデオクリップを作り、MQチャンネルに載せるかもしれません。皆さんは、このようなシステムに関する豊富な経験を持っているはずです。
 
Alexey Volchanskiy:
どうすれば実現できるのか、FAQを書いてください。すべての想いをひとつに。

そのためだけの素晴らしいスレッドがあるのです。おそらく、誰かがこのスレッドの多くの投稿をもとに、多くの時間と労力を費やしてセクションごとのFAQをまとめるでしょう。


そして、パフォーマンスに関しては、いつも同じレシピ - TesterBenchmark +プロファイラ- を使っています。そしてもちろん、テスターの機能と実取引との適度なバランスを見つけることです。MT4Ordersはそのように書かれています。テスターでの素早い作業と、実際のアカウントでの理想的な作業を目指したプログラムです。そのためには、同じテスターでも、実際の取引には必要のない(時には高価な)チェックがあることを理解する必要があります。その結果、大きな節約につながります。そして、同じ履歴のキャッシュなど。つまり、テスター用と実機用で異なるロジックを内蔵したライブラリを書く必要があるのです。Trade.mqhは、残念ながらそのようなライブラリではありません。

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.02.24
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
fxsaber:

そのためだけの素晴らしいスレッドがあるのです。おそらく、誰かがこのスレッドの多くの投稿をもとに、多くの時間と労力を費やしてセクションごとのFAQをまとめるでしょう。


そして、パフォーマンスに関しては、いつも同じレシピ - TesterBenchmark +プロファイラ- を使っています。そしてもちろん、テスターの機能と実取引との適度なバランスを見つけることです。MT4Ordersはそのように書かれています。テスターでの素早い作業と、実際のアカウントでの理想的な作業を目指したプログラムです。そのためには、同じテスターでも、実際の取引には必要のない(時には高価な)チェックがあることを理解する必要があります。その結果、大きな節約につながります。そして、同じ履歴のキャッシュなど。つまり、テスター用と実機用で異なるロジックを 内蔵したライブラリを書く必要があるのです。Trade.mqhは、残念ながらそのようなライブラリではありません。

以前の記事で言いたかったのは、そういうことです。上記ブランチのFAQを作成するのがせいぜいです。最適化の高速化に関するFAQを作るという地味な作業をやってみよう。あなたは自分の考えを書くだけで、コードがあればコードを追加します。まとめてブラッシュアップして、合意して掲載するようにします。クリップは私が作ります、経験も豊富ですし、問題ありません。
 
Alexey Volchanskiy:
最適化の高速化に関するFAQを作るという、ささやかな作業をやってみましょう。

利他主義というのは、時に良いことなんです。しかし、時間は私のものではなく、ファミリーのものです。

謙虚なコードとレシピを共有します。これで十分だと思います。

私は秘密は持っていません。

 
fxsaber:

そして、それは正しく行われます。オブジェクトのプロパティを変更した後にChartRedrawを行わないのと同じような意味です。専門用語を使うなら

ChartRedrawは、書き込みのたびに呼び出されるのではなく、大量の書き込みの後に呼び出されるべきです。

しかし、例えば130x80ピクセルというウィンドウ全体の1%にも満たない小さなキャンバスに、現在の情報を出力する必要がある場合。そのため、MT4ではUpdate(false)で画面全体を再描画せずにできるのですが、MT5では毎回画面全体を再描画しなければなりません。しかも、数桁もリソースを消費する。そして、これはテストではなく、ワーキングトピックです。
 
Nikolai Semko:
はい、しかし、例えば130x80ピクセルというウィンドウ全体の1%にも満たない小さなキャンバスがあり、そこに現在の情報を表示する必要がある場合。そのため、MT4ではUpdate(false)で画面全体を再描画せずにできるのですが、MT5では毎回画面全体を再描画しなければなりません。しかも、数桁もリソースを消費する。そして、これはテストではなく、ワーキングトピックです。

kanvasなどの動作時に画面が部分的に再描画されることはないと思いますが、いかがでしょうか。

 
fxsaber:

利他主義というのは、時に良いことなんです。しかし、時間は私のものではなく、ファミリーのものです。

謙虚なコードとレシピを共有します。これで十分だと思います。

秘密はないんです。


謙虚さは素晴らしい私も謙虚な人間です。利他主義とは、ほとんどの場合、亡くなったマザー・テレサのためにある。でも、この悪い病気の根源である利他主義が、私の中にも芽生えることがあるんです )))

 
fxsaber:

kanvasなどの動作時に画面が部分的に再描画されることはないと思いますが、いかがでしょうか。


そう、私が間違っていたのだ。MT4でChartRedrawを使わないResourceCreateは 毎回キャンバスを再描画するというのは私の勘違いでした。MT5が全くやらないのに対して、たまにしかやらないんです。

ええ、もちろん、私は頭が悪いです。ハードウェアレベルでは、画面コンテキストは画面の一部だけを変更することはできず、画面全体を変更することができます。
小さな遅延Sleep(10)を導入すると理解できました。

ファイル: