キャンバスとラベルの比較 - ページ 17

 
Mihail Matkovskij:

Gコードについてですが、私の言うことをいちいち反論していると、あなたのGコードを見つけることができるんですよお前らしくない、言いがかりだ... 見つけたか

私はプログラマーではありません。独学でやっています。私のコードをつつくのは自由ですが、どう見ても私のコードはg...からは程遠いものです。

 
Artyom Trishkin:
興味のあるトピックがゴミ箱に・・・。どんな人たちが...

題材は面白かったかもしれない。しかし、残念なことに、それは決して実現しません。

 
Alexey Viktorov:

私はプログラマーではありません。独学でやっています。私のコードは、どのように見ても、最も優れたものには程遠いのです。

でも、他のメンバーのコードは、あなたにとっては......。まあ、明らかに独学でしょうけど。だから、同僚をゴミ箱に入れては いけないという不文律は必要ないのです。

では、コードの質問です。https://www.mql5.com/ru/code/24076。 もちろん、あなたのように「クソコードだ」とは言いませんよ...。しかし、私の発言はすべて同じである。

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

BitmapLabelの更新頻度に制限がないのは、テスターで "all ticks "モデルで動作するのであれば、なぜでしょうか?現代の鉄がすべてを消化することを望んでいるのですか?)最適化はどうした?そして、高負荷な処理からテキストを出力する方法(テスターでの出力、「全ティック 」モデルでの出力、ループでの チャートでの出力)を探していたところ、これを提案してくれたのですね。

そして、私がうまくいかないと言ったら、ティック ごとに情報が更新されるのではなく、 ...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

そのために特別に設計されたCCanvasを使ってみてはいかがでしょうか。確かに、見てみると、不要な関数などを呼び出していると思われることをどこかに書いていましたね。テスターの更新頻度制限をやらなかったと同時に、CCanvasの機能でなんとなく支障があったということか...。:)

おかしいな...。


今度はあなたが、私のコードを「Gコード」だと思う理由を正確に教えてくれる番です。ただし、雑談ではなく、論拠が 必要です。

 
Artyom Trishkin:
せっかくの面白い話題なのに、ごちゃごちゃしてる...。どんな人たちが...

私がしたことは、テストに参加したいという申し出を 受けただけですが、そのために招待者にいくつか質問をする必要が出てきました...。

 
Mihail Matkovskij:

...

テスターで「全ティック」モデルで動作させるなら、なぜBitmapLabelの更新頻度に制限がないのでしょうか?現代の鉄がすべてを消化することを期待しているのでしょうか(笑)。最適化はどうした?そして、負荷の高い処理からテキストを出力する方法(テスターでの出力、全ティックモデルでの 出力、ループ内の チャートでの出力)を探していたところ、そのような提案をいただいたのですね。

...

なぜかというと、あなた自身が、ビットマップラベルの方が通常のラベルよりも高速だと主張しているからです。また、この場合の通常のラベル1枚では、性能的にほとんど見えません。

 
Dmitry Fedoseev:

私はテストに参加するという申し出を 受けただけで、その結果、招待者にいくつかの質問をすることになったのですが......。

「泥棒の帽子が燃えている」?...誰でもソースコードをダウンロードして、上で紹介した測定を繰り返すことができるのです不満と不平しかないんですね。発明された、「リンク切れ」など...。
ドミトリー・フェドセーエフ

なぜかというと、あなた自身が、ビットマップラベルの方が通常のラベルよりも高速だと主張しているからです。

そんなこと言ってませんよ。そして、情報を複数行に渡って出力するという話でした。だから、それを測るために、大量の線を出力するディスプレイを作ったんです。

Labelsへの出力でチャートを最適化。一方、BitmapLabelでは、ピクセルの配列を渡す必要があり、それをあらかじめ埋めておく必要があります。この場合、ピクセル 配列を埋めて、そこにテキストを出力しているのです。これらの操作は、頻繁に呼び出されると、アプリケーションに負担をかけることになる。一方、ラベルの場合は文字列を渡すだけでよい。このことは、すでに前述したとおりです。

異なるモードでの CCanvas とラベルの速度測定を比較することで、速度についてより詳しく知ることができます。https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij:

しかし、コミュニティの他のメンバーのコードは、あなたのためにg...まあ、明らかに独学でしょうけど。だから、同僚をゴミ箱に入れては いけないという不文律は必要ないのです。

そして、今度はコードに関する質問です。あなたのように、ガラクタコードとは言わせない...。...が、それでも私なりのコメントをさせていただきます。

BitmapLabelの更新頻度に制限がないのは、テスターで "all ticks "モデルで動作するのであれば、なぜでしょうか?現代の鉄がすべてを消化することを望んでいるのですか?)最適化はどうした?そして、高負荷な処理からテキストを出力する方法(テスターでの出力、「全ティック 」モデルでの出力、ループでの チャートでの出力)を探していたところ、これを提案してくれたのですね。

そして、私がうまくいかないと言うと、あなたは私に不満を言い始めた...。疑惑は、私は何も理解していない、容赦なくTextOut - ResourseCreate - ChartRedrawを呼び出す必要がありました。確かに、ChartRedrawはなぜかコメントアウト されていますね...。


そのために特別に設計されたCCanvasを使ってみてはいかがでしょうか?本当だ、どこかに不要な関数を呼び出していると思われるなどと書いてありましたね。テスターの更新頻度制限をやっていないわけですが、同時にCCanvasの機能で何となく支障が出ているような...。:)

おかしいな...。


今度はあなたが、私のコードを「Gコード」だと思う理由を正確に教えてくれる番です。ただし、雑談ではなく、論拠が 必要です。

  1. あなたはどの惑星に住んでいるのですか?そのようなルールはどこで見つけたのですか?どこのサービスステーションに行っても、前回あなたの車を修理したのは誰なのか、すべて聞くことができます。たとえそれが、今話している人であっても。そして、それはクルマだけではありません。一番わかりやすい例だと思います。
  2. このコードは例として提供したもので、やみくもにコピーするものではありません。
  3. すべてのチェックと遅延がコードに過負荷をかけ、そのようなコードを例として使うことはより困難です。
  4. EAがトレーディング用でない場合、どのような最適化を行うのでしょうか?その中で最適化されるパラメータは何ですか?
  5. 私の提案を断った後、ニコライはあなたに細かいところまで説明し始めた。私はただ、彼のCanvasに関するトピックに目を通すようアドバイスしただけです。全部読んだというのは嘘ですね。嘘つき(大げさに言えば)にはどう接してほしいのか?

あなたのコードを、ハエやダンゴムシにつつき回させましょう。他に面白いこと、役に立つことは十分ありますから。

 
Mihail Matkovskij:
「泥棒の帽子に火がついた」?...誰でもソースコードをダウンロードして、上で紹介した測定を繰り返すことができるのです一方、あなたは不満と不平しかない。発明された、「リンク切れ」など...。

そんなことは言っていない。そして、情報を複数行に渡って出力するという話でした。そこで、計測のために、多くの行数を出力するディスプレイを作りました。

Labelsへの出力でチャートを最適化。一方、BitmapLabelでは、ピクセルの配列を渡す必要があり、それをあらかじめ埋めておく必要があります。この場合、ピクセル 配列を埋めて、そこにテキストを出力しているのです。これらの操作は、頻繁に呼び出されると、アプリケーションに負担をかけることになる。一方、ラベルの場合は文字列を渡すだけでよい。このことは、すでに前述したとおりです。

異なるモードでの CCanvas とラベルの速度測定値を比較することで、速度についてより詳しく知ることができます。https://www.mql5.com/ru/forum/364640/page13#comment_21314045

まあ、一般的には臆面もない恥知らずの不謹慎さですね。

 
このコメントには、リンク付きの引用があります。これらのリンクは、limitFpsフィールドを持たないクラスのファイルをダウンロードすることは可能ですが、参照されます。また、そのようなリンクを自分で「描いた」とも言ってください。
 
Alexey Viktorov:
  1. あなたはどの惑星に住んでいるのですか?そのようなルールはどこにあったのですか?どこの自動車販売店に行っても、前回誰が修理したかという話ばかりです。たとえそれが、今話している人であっても。そして、それはクルマだけではありません。一番わかりやすい例だと思います。

そのパラダイムに従えば、明らかに私たちは別の惑星にいる......!?

車のワークショップで例を挙げると...。:)少なくとも、今朝は元気が出ましたね。:)

アレクセイ・ヴィクトロフ

例としてこのコードを提示したのですが......。

では、もう一度聞きますが、カンヴァスと私の違いは何でしょうか?同じような仕組みで動いています。例のように必要な機能だけが排除されることはありません。ただ一つ違うのは、それがOOPであり、あなたの手続き型プログラミングとは全く別次元のものであるということです。:)

アレクセイ・ヴィクトロフ

すべてのチェックと遅延がコードに過負荷をかけ、そのようなコードは例として使うのが難しくなります。

もちろん、もちろん...。上書き...コードも苦手なんですねー。きっと、「私はプログラマーではないので......」という言い訳が返ってくるでしょう。:)人に教えたいだけ だろう。:)

アレクセイ・ヴィクトロフ

Expert Advisorがトレーディング用でない場合、どのような最適化を行うのでしょうか?どのようなパラメータを最適化すればよいのでしょうか?

用語が混乱しています :)Bitmap Labelのリフレッシュレートの最適化についてでした。それをせずに、高負荷のプロセスで使用するための例を提示してくれたのです。

アレクセイ・ヴィクトロフ
  1. 私の申し出が断られた後、ニコライはあなたに微妙なところをすべて説明し始めた。kanvasに関する彼のトピックを見るようアドバイスしたところです。全部読んだというのは嘘ですね。嘘つき(大げさに言えば)にはどう接すればいいのか?

この場合、嘘つきはあなたです!だって、そんなこと言ってないんだもん。私が言ったのは、なぜCanvasベースのライブラリがもう一つ必要なのかということだけです。実は、もうひとつのカンヴァス。同じCanvasを提供していただきましたが、全く同じように動作します。ニコライは、私のタスクでKanvasを高速に動作させるために何をすべきかを説明する気は全くありませんでした。そして、あなたは明らかに適切な知識を持っていません。ニコライに「無駄なことをするな」と言ったんですね。と言うと、「そうだね」と言われました。それが、あなたとニコライの説明です。プログラマ...

アレクセイ・ヴィクトロフ

あなたのコードを、ハエやダンゴムシにつつき回させましょう。他に面白いこと、役に立つことは十分 ありますから。

あなたのが本当だとは言いませんが...。でも、ひとつだけ同意できることがあるんです。本当に必要ないんです。なぜ、素人の結論が必要なのか...?自動車修理工場に行った方がいい...。

それだけです。これ以上詳しい回答は控えます。だって、もったいないじゃないですか。何か役に立つことをしたい!