程序库: Report - 页 13

 
fxsaber #:
现在 使用的是 b4070。

它是在 4067 上编译的。请告诉我,Slippage 一栏中的缺失值是否意味着零滑移(进入和退出)?

附加的文件:
 
leonerd #:

能否请您告诉我,"滑点 "一栏中的缺失值是否意味着零滑点(入境和出境)?

市场订单的滑点只能通过分析交易历史记录来确定。这一点尚未实现。递延和 SL/TP 可立即提供滑点信息,而市价则不能。

 
fxsaber #:
现在 使用的是 b4070。

他们说你需要升级到 4075。我用的是 4076,但编译效果不佳。会出现 "#ifdef/#endif 对不匹配 "之类的错误。


 
leonerd #:

他们说你必须升级到 4075。我用的是 4076,但编译效果不佳。会出现 "#ifdef/#endif 对不匹配 "之类的错误。

 
我必须对大量事务进行测试。如果交易量大于 50,000 次,测试人员在创建报告文件时就会消耗数千兆字节的内存,然后浏览器也会消耗同样的内存。而且查看这样的文件非常困难--不断重绘和冻结。
为了避免这一切,我添加了这段代码,默认情况下,它会将前 1000 行和后 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 次,测试人员在创建报告文件时就会消耗数千兆字节的内存,浏览器也是如此。而且查看这样的文件非常困难--不断重绘和冻结。 为了避免这一切,我添加了这段代码,默认情况下,它会将前 1000 行和后 1000 行输出到文件中。通常情况下,只需逐行查看即可,无需检查更多内容。如果确实需要,可以通过输入将输出改为所有行。这对其他用户可能会很有用。

这将成为浏览器的 "破坏者"。对于大型报告很有帮助。

交易、自动交易系统和交易策略测试论坛。

错误、bug、问题

fxsaber, 2023.10.18 15:00

打开大型 html 表格时的最快浏览器评级 - steutments.35K 行表格的汇总结果。

浏览器 时长(秒)
我的钱包 24
Basilisk 35
苍月 50
K-Meleon 52
55

我的明确选择是MyPal


 
Forester #:
我必须对大量事务进行测试。如果交易量大于 50,000 次,测试人员在创建报告文件时就会消耗数千兆字节的内存,浏览器也是如此。而且查看这样的文件非常困难--不断重绘和冻结。 为了避免这一切,我添加了这段代码,默认情况下,它会将前 1000 行和后 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 代码。希望能减少刹车的次数。

主要内容:

我制作了一种样式,在 HTML 代码中不使用任何属性,而不是每隔一行就加上 align=rightbgcolor=#E0E0E0

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

我把表格分为三份:前两行是附加信息,主表是交易信息,最后一行是测试统计信息。如果把这些表格粘在一起,就会出现一些列的联合,如 colspan=6、colspan=14 等。这样浏览器就很难呈现。我制作了 3 个不带联合的简单表格。

附加:(应该不会加快很多)
有时有高亮颜色style="color:#00A000",我用更短的class="sl" 替换了它 - 没有区别,只是最终文件的代码会更短。SL/TP高亮颜色加粗以提高可视性。



此外,在 "摘要 "和 "平均值 "栏中,我还为括号中的值添加了换行符。它们有时会很长。之后,表格变得更加紧凑。

包含交易的表格设置为 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;}


曾经是

变成


从外观上看,着色没有变化,但代码变短了,而且对于大于 50k 交易的巨型报告,重新绘制的概率降低了。 我比较了 35k 交易的文件,大小减少了 6.5%(新版 11.7 mb,旧版 12.5 mb)。主要问题不是大小,而是绘图速度,我希望由于使用了样式和表格而没有合并单元格,绘图速度会更快。 还增加了上述建议的打印所有行或打印前 1000 行和后 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 完全一窍不通,因此欢迎大家提出任何改进建议。

当然,有些视觉决定是有品位的。但就大小和渲染速度而言,这是客观指标。