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

 
Nikolai Semko:

一方、MT4では、まったく様子が違います。
MT5でCommentとCanvasの動作がほぼ同じであれば、MT4ではCommentの方が1000倍速い。結論から言うと、MT5ではCommentは内部のBitMapで実装されていますが、MT4では違う仕組みになっています。その差は歴然としています。この質問はバグフォーラムに移そうかと思います。

詳しい説明はこちら: https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

MT4でのCommentは基本的にフェイクであり、チャートの再描画は発生しません。

 
Renat Fatkhullin:

詳しい説明はこちら: https://www.mql5.com/ru/forum/1111/page2102#comment_6156364

MT4でのコメントは基本的にフェイクであり、チャートの再描画は発生しません。


そして、現実的な結論を導き出すために

1.テスト時のパフォーマンスに影響を与える一連の関数を、#defineに対応するものに置き換えることができれば良いのですが......。

2.ここにいる女性・人の9割は、みかんの中のおいしそうなものを食べているようなデフォです。

4.フォーラムfxsaberの定義モンスターがあります。

5.そのような場合、プログラムがどのようなモードで動作するかについて、人間が考える必要がないように、似たような定義のライブラリを作って維持するように、彼に頼むのはどうでしょうか?

このような提案について、コミュニティやfxsaberはどのように考えているのでしょうか?

 

ツールを理解せず、テストできないものをスピードテストしようとする人に、定義がどうのこうのと。

コメントを呼び出して見るのは普通です。

1秒間に1000~10000回というのは、論理的にも技術的にも異常で、チャート全体(自分のラインだけでなく)を表示・再描画しないのはコストが高くなります。

自分のやっていることを理解する必要があります。というのは、私が返信で詳しく書いたことです。

 
Renat Fatkhullin:

ツールを理解せず、テストできないものをスピードテストしようとする人に、定義がどうのこうのと。

コメントを呼び出して見るのは普通です。

1秒間に1000~10000回というのは、論理的にも技術的にも異常で、チャート全体(自分のラインだけでなく)を表示・再描画しないのはコストが高くなります。

自分のやっていることを理解する必要があります。というのは、私が返信で詳しく書いたことです。

そして、その代わりに「考え続けるためのコードをください」と提案し、なぜそのやり方がいけないのかの説明は無視するのです。

Renat、ここに動くEAがあります。私は吸い寄せられるように、この絵のことを何も知らない。効果もあり、素晴らしいです。テストのために提出し、私が説明した問題によるパフォーマンスの低下を確認します。

どのモードで作業しているかを判断するdefineを作るのは意味がないのでは?また、テスト/最適化モード では、何も出力されないだけなのでしょうか?

 
Alexey Volchanskiy:

Renat、ここに動くEAがあります。私は吸い寄せられるように、この絵のことを全く知らない。効果もあり、素晴らしいです。私はそれをテストしており、私が説明した問題による性能の低下を確認しています。

どのモードで作業しているかを判断するdefineを作るのは意味がないのでは?また、テスト/最適化モード では、何も出力されないだけなのでしょうか?


そんな風に、人にすべてを理解してもらおうなんて思わないでください。このフォーラムにいる20%の人がOOPを理解しているなんて、神様の思し召しですね。車の知識に例えられるかもしれません。全員が運転しているのに、同じ内燃機関の仕組みを理解している人はごくわずかで、何割かの人がどうにかして何かを直そうとしているのです。

でも、みんなあなたのお客さんなんですよ(笑)。

 
Alexey Volchanskiy:

Renat、ここに動くEAがあります。私は吸い寄せられるように、この絵のことを全く知らない。効果もあり、素晴らしいです。私はそれをテストしており、私が説明した問題による性能の低下を確認しています。

どのモードで作業しているかを判断するdefineを作るのは意味がないのでは?また、テスト/最適化モード では、何も出力されないだけなのでしょうか?

そして、すべてを考え、劇的に改善するための問題とは何でしょうか?

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

そして今度は、考えるのではなく、「MT5の方が遅い」と言って持て囃されるような、別の手作り品を作ろうという提案なんでしょう。

 
Renat Fatkhullin:

すでにMQL4-MQL5のライブラリが「動く、すごい」モードになっており、思わず涙ぐんでしまうほどです。両プラットフォームの速度を比較するために、みんな真剣に使っているんですよ。

これは、理路整然とはしていない。

 
Alexey Volchanskiy:

どのモードで作業しているかを判断するdefineを作るのは理にかなっているのでは?また、テスト/最適化モード では、何も出力されないのですか?

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

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

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


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


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

 
Renat Fatkhullin:

ツールを理解していない人が、スピードテストができないものをテストしようとしているのだから、定義はどうなっているのだろう。

レナト・ファットフーリン

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


そして、個人的には、出来上がった作品に申し訳ない気持ちもありません。これらの一見無駄と思われるベンチマークは、実は全く無駄 ではないことがわかりました。先生の丁寧な説明 のおかげで、多くのことが明らかになり、その結果、いくつかのパズルが組み合わさっていきました。どこにもないので、ついつい :)) 。

例えば、恥ずかしながら、Kanvas の Update() 関数が、ウィンドウのサイズに関係なく全体を再描画することを知りませんでした。でも、それを理解するためには、CCanvasの内臓を覗くしかなかったんです。そして、少なくともこの事実だけでも知っていれば、仕事のロジックが変わり、グラフィック関連の実装で不要なジェスチャーをしなくて済むこともあります。そして、コメントは何の関係もなく、「ただ、真相を知りたいだけ」だったのです。いつもありがとうございます。

不明な点は、MT5のUpdate(false)関数が画面上に何も描画しないのに対し、MT4の関数はウィンドウ全体を描画せず、キャンバスそのもののみを描画することです。 MT5のResourceCreate関数がChartRedraw()なしでピクセル配列を描かないがMT4では描くということです。MT5でも使えそうな気がします。

 
Nikolai Semko:

MT5のResourceCreateはChartRedraw()しないとピクセルの配列を表示 しないが、MT4では表示される。

そして、それを正しく実行する。オブジェクトのプロパティを変更した後にChartRedrawを行わないのと同じ理屈です。の用語を使って

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

エラー、バグ、質問

レナート・ファットフーリン さん 2017.12.05 02:51

  • MT5は、チャート上のオブジェクトを変更するためのより正しいシステムを持っており、あなたは読み取り/書き込みコマンドを混在させた場合の結果を明確に理解する必要があります。
    は、読み出しと書き込みのコマンドを混在させず、別々に大量読み出しと大量書き込みを 行うことを推奨します。

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