ライブラリ: Report - ページ 13

 
fxsaber #:
今のところ b4070を使っている。

4067でコンパイルしています。スリッページの欄の欠損値は、スリッページがゼロという意味なのでしょうか?

ファイル:
 
leonerd #:

スリッページ欄の欠損値は、スリッページがゼロであることを意味するのでしょうか?

成行注文のスリッページは、ティック履歴を分析することによってのみ判断できます。これはまだ実装されていません。ディファラルとSL/TPは一度にスリッページに関する情報を提供しますが、成行注文はスリッページに関する情報を提供しません。

 
fxsaber #:
今のところ b4070を使っている。

4075にアップグレードする必要があると書かれている。私は4076を持っているが、うまくコンパイルできない。mismatched #ifdef/#endif pair "のようなエラーが出ます。


 
leonerd #:

4075にアップグレードしなければならないらしい。私は4076を持っていますが、うまくコンパイルできません。mismatched #ifdef/#endif pair "のようなエラーが出ます。

 
大量のトランザクションを使ったテストをしなければならなかった。それが50,000件を超えると、テスターはレポートファイルを作成する間にギガバイトのメモリーを消費し、ブラウザも同じことをした。そして、そのようなファイルを表示するのは非常に困難で、常に再描画され、フリーズする。そして約8万行で完全にメモリが尽きてしまった。
このようなことを避けるために、私はこのコードを追加した。デフォルトでは、最初と最後の1000行がファイルに出力される。通常、一行ずつ目を通すことで、それ以上チェックする必要はなかった。本当に必要なら、入力によって出力を全行に変更できる。
enum showType {Show_1000_First_and_Last_Deals, Show_All_Deals };
sinput showType Report_Print_First_Last_1000 = 0; // すべての行を表示するか、部分的に表示する。

....
// 文字列検索のループ内で文字列を変更 (~2130)
          StrSum += "<tr " + ((bool)(Count & 1) ? "" : "bgcolor=#E0E0E0 ") +
                 ((OrderType() >= OP_BALANCE) ? "style=\"color:blue\" ": "") + "align=right>" + REPORT::OrderToString(Count, Filter) + "</tr>\n";

// 行に

if( Report_Print_First_Last_1000 == Show_All_Deals) {
          StrSum += "<tr " + ((bool)(Count & 1) ? "" : "bgcolor=#E0E0E0 ") +
                 ((OrderType() >= OP_BALANCE) ? "style=\"color:blue\" ": "") + "align=right>" + REPORT::OrderToString(Count, Filter) + "</tr>\n";
}else{/Show_1000_First_and_Last_Deals
   if(i<1000 || i > Total-1001){
          StrSum += "<tr " + ((bool)(Count & 1) ? "" : "bgcolor=#E0E0E0 ") +
                 ((OrderType() >= OP_BALANCE) ? "style=\"color:blue\" ": "") + "align=right>" + REPORT::OrderToString(Count, Filter) + "</tr>\n";
   }else{REPORT::OrderToString(Count, Filter);}// 印刷せずに残高を計算する
}
他のユーザーにも役に立つかもしれない。
 
Forester #:
大量のトランザクションを使ったテストをしなければならなかった。それが50,000件を超えると、テスターはレポートファイルを作成する間にギガバイトのメモリーを消費し、ブラウザも同じことをした。そして、そのようなファイルを表示するのは非常に困難で、常に再描画され、フリーズする。そして約8万行で完全にメモリが尽きてしまった。 このようなことを避けるために、私はこのコードを追加した。デフォルトでは、最初と最後の1000行がファイルに出力される。通常、一行ずつ目を通すことで、それ以上チェックする必要はなかった。本当に必要なら、入力によって出力を全行に変更することができる。他のユーザーには便利かもしれない。

ブラウザのネタバレになる。大きなレポートには役立ちます。

取引、自動取引システム、取引戦略のテストに関するフォーラム。

エラー、バグ、質問

fxsaber, 2023.10.18 15:00

大きなhtmlテーブルを開いたときに最も速いブラウザの評価 - steutments.35K行のテーブルの要約結果。

ブラウザ 長さ時間 (秒)
マイパル 24
バジリスク 35
ペイルムーン 50
Kメレオン 52
トリウム 55

私が選ぶのはマイパル


 
Forester #:
私は大量のトランザクションをテストしなければならなかった。それが50,000件を超えると、テスターはレポートファイルを作成する間にギガバイトのメモリーを消費し、ブラウザも同じことをした。そして、そのようなファイルを表示するのは非常に困難で、常に再描画され、フリーズする。そして約8万行で完全にメモリが尽きてしまった。 このようなことを避けるために、私はこのコードを追加した。デフォルトでは、最初と最後の1000行がファイルに出力される。通常、一行ずつ目を通すことで、それ以上チェックする必要はなかった。本当に必要なら、入力によって出力を全行に変更することができる。他のユーザーにとっても便利かもしれない。

このようなhtmlファイル(50000のエントリーのためにブレーキがある)を見てみたい。

テスターに関しては、おそらくmql5もプロファイリングして、メモリのボトルネックがあるかどうか調べることができるだろう。

 
Stanislav Korotky #:

そのようなhtmlファイル(50000のエントリーに起因するブレーキ)を見てみたい。

テスターに関しては、おそらくmql5もプロファイリングして、メモリのボトルネックがあるかどうかを調べることができるだろう。

https://www.mql5.com/ru/blogs/post/755500

OnTickMulti - с добавленными пересчетом прибыли в валюту депозита, свопами, комисссией в % за лот.
OnTickMulti - с добавленными пересчетом прибыли в валюту депозита, свопами, комисссией в % за лот.
  • 2023.12.25
  • www.mql5.com
Текущий вариант OnTickMulti https://www.mql5.com/ru/code/47647 считает прибыль в валюте каждого символа или можно получить в пипсах. Но на общий баланс они влияют в другой пропорции, согласно текущему
 
Report-aのコードを少し最適化することにした。ブレーキが少なくなることを願っている。

Main:

2行目ごとに align=rightと bgcolor=#E0E0E0を 入れる代わりに、HTMLコードに属性なしでそれを行うスタイルを作った。

.at {text-align:right;}
.at tr:nth-child(odd) {background: #e0e0e0 !important;}

表を3つに分けた:最初の2行は追加情報、メインの表は取引、最後の表はテスト統計。これらの表が接着されている場合、colspan=6、colspan=14などのようないくつかの列のユニオンがあります。これではブラウザがレンダリングしにくい。

追加: (あまりスピードアップしないはずです)
ハイライトの色style="color:#00A000" があることがあるので、これをより短いclass="sl" に置き換えました。SL/TPハイライトの色を太字にして見やすくした。

また、最初と最後の3行にスタイルを追加した。

また、サマリーと平均の列では、括弧内の値の改行を追加した。長い場合があるからだ。その後、表はよりコンパクトになった。

お買い得商品のテーブルはclass="at "にした。全CSSコード:

.at {border-spacing:1; border:0;text-align:right;}
.at tr:nth-child(odd) {background: #e0e0e0;}
.at td {padding: 2 px;}
.at tr:nth-child(1), .at tr:nth-last-child(1) {color:magenta;background:#eee;}
.at tr:nth-child(2), .at tr:nth-last-child(2) {color:red;background:transparent;}
.at tr:nth-child(3) td, .at tr:nth-last-child(3) td {background:#c0c0c0;text-align:center;}

.at .sl {color:red;    font-weight:bold;}
.at .tp {color:#00 A000;font-weight:bold;}
.at .r {color:red;}
.at .g {color:#00 A000;}
.at .b {color:blue;}
.at .m {color:magenta;}


以前は

となった。


見た目の色使いは変わっていないが、コードが短くなり、5万件以上の巨大なレポートの再描画の確率が減った。 3万5千件のファイルを比較したところ、サイズが6.5%減った(新バージョン11.7MB、旧バージョン12.5MB)。 また、すべての行を印刷するか、最初と最後の1000行を印刷するかを選択できるようにしました。





enum showType {Show_1000_First_and_Last_Deals, Show_All_Deals };
sinput showType Report_Print_First_Last_1000 = 0; // すべての行を表示するか、部分的に表示する。

最終ファイルを添付する。もしかしたら誰かの役に立つかもしれない。

ファイル:
Report.mqh  293 kb
 
Forester #:
Report-aのコードを少し最適化することにした。

私はHTMLの知識はゼロに等しいので、改善の提案があれば歓迎する。

もちろん、視覚的な判断はセンスのいいものもある。しかし、サイズとレンダリング速度という点では、客観的な指標だ。