如何使图表上的输出为单行字体? - 页 3 1234567 新评论 Alexey Volchanskiy 2017.12.03 14:35 #21 Victor Ziborov:在测试和优化参数的阶段,输出到评论和输出到标签可以被禁用,但当在现实生活中使用EA的时候,输出到评论和输出到标签应该被再次启用。谢谢,帽子 )))))) 我们不知道 Ihor Herasko 2017.12.03 15:01 #22 Victor Ziborov:在测试和优化参数的阶段,注释中的输出和标签上的输出可以关闭,但当在实际生活中使用EA时,注释中的输出和标签上的输出应该重新打开。一般来说,这是自动完成的。bool bIsComment = (!IsTesting() || IsVisualMode());然后我们在代码中检查bIsComment,如果评论要被输出或要执行任何图表。因此,不需要手动切换任何东西。 Yury Kirillov 2017.12.03 16:55 #23 Ihor Herasko:这是自动完成的。然后,当需要输出Comment或进行任何图形构造 时,我们检查代码上的bIsComment。因此,不需要手动切换任何东西。哪里说过你必须手动操作?我错过了什么吗? Ihor Herasko 2017.12.03 17:40 #24 Yury Kirillov: 哪里说过你必须手动操作了?我错过了什么吗?对这个 帖子作出回应。那里基本上是模棱两可的。但不知何故,它似乎更像是 "禁用 "和 "启用 "是一个配置参数,由用户根据程序的运行方式来改变。刚刚澄清了,不需要这样的参数。 Yury Kirillov 2017.12.03 18:13 #25 Artem Virskiy: 你可以用piskels测量每个字符的宽度(会有几组具有相同的宽度)。编写一个函数,将任何带有空格的字符串追加,直到达到给定宽度。然后从这些子字符串中组合出评论。如果你做了这样的功能,请在kodobase上发布,很多人都会感激。我也是。我太懒了,懒得麻烦自己。在这种情况下,符号(x200A)将是有用的--空间的最小宽度,以实现精确配合。并用符号/1--宽空格代替常规空格(毕竟评论的长度是有限的)。也许还有其他有用的空间,但我不知道它们。谢谢你的主意! Nikolai Semko 2017.12.03 20:48 #26 Yury Kirillov: 评论的运行速度明显快于图形化字体。这很符合逻辑,但事实并非如此。 而且很容易检查。 这是一个关于MQL5的脚本(没有在MT4上试过)。#property script_show_inputs #include <Canvas\Canvas.mqh> input uint FontSize=12; // размер шрифта input ENUM_COLOR_FORMAT format=COLOR_FORMAT_ARGB_NORMALIZE; //Способ обработки цвета void OnStart() { CCanvas Text; ulong ColorScreen=ChartGetInteger(0,CHART_COLOR_BACKGROUND,0); Text.FontSet("Arial",FontSize); string str="Соотношение времени выполнения Canvas/Comment = 0.00000"; int H=Text.TextHeight(str); int W=Text.TextWidth(str); if(!Text.CreateBitmapLabel(0,0,"FONT",2,130,W,H,format)) Print("Error creating canvas: ",GetLastError()); ulong t1=1,t2=1,t0; int i=0; color clr=(color)ARGB(255,255^GETRGBR(ColorScreen),255^GETRGBG(ColorScreen),255^GETRGBB(ColorScreen)); while(!IsStopped()) { t0=GetMicrosecondCount(); Text.Erase((color)ColorScreen); Text.TextOut(0,0,str,clr); Text.Update(); t1+=GetMicrosecondCount()-t0; t0=GetMicrosecondCount(); Comment(str); t2+=GetMicrosecondCount()-t0; str="Соотношение времени выполнения Canvas/Comment = "+DoubleToString((double)t1/(double)t2,5); if(i==1000) {Print("Canvas - ",t1," Comment - ",t2); i=0; t1=1; t2=1; } else i++; } Text.Destroy(); Comment(""); }测试结果显示,图形输出的速度约为10%。但有趣的是,即使你将字体大小 设置为30(而不是12),速度仍会更快。这对我个人来说是个谜。 附加的文件: TestSpeedText.mq5 4 kb Nikolai Semko 2017.12.03 21:51 #27 Alexey Volchanskiy: 我不做60K/秒的漫画,我只是把它们放出来就可以了。帆布也可以做卡通。 附加的文件: TestSpeedCanv.ex5 68 kb TestSpeedCanv.mq5 8 kb Nikolai Semko 2017.12.03 23:22 #28 Nikolai Semko: 这是一个关于MQL5的脚本(没有在MT4上试过)。我在MT4上试过。 在MT4上,事实证明,Comment 比其图形对应的速度快5倍左右。而事实证明,Comment()在MT5上比在MT4上慢了5-6倍。现在,这是一个令人不快的奇怪的惊喜。因此,我的问题是给开发商的。怎么会呢?这显然是5的一个错误!!!。 Alexey Volchanskiy 2017.12.04 02:44 #29 Nikolai Semko: 它是符合逻辑的,但它不是。 而且这很容易检查。 这里有一个用于MQL5的脚本(我没有在MT4上试过)。测试结果显示,图形输出的速度约为10%。但有趣的是,即使你将字体大小 设置为30(而不是12),速度仍会更快。这对我个人来说是个谜。这些测量是关于什么的。我们应该为《评论》和《画布》分别运行数万次的循环,然后我们就能判断出一些东西。而要打印的文本应该改变,例如,让计数器的值被打印出来。你就不能这样重做吗? Nikolai Semko 2017.12.04 02:47 #30 Alexey Volchanskiy: 这些测量结果算不上什么。我们应该为 "评论 "和 "画布 "分别做几万次的循环,然后我们就可以判断一些东西。而要打印的文本应该改变,例如,让计数器的值被打印。你能以这种形式重做吗?我也试着做了单独的循环,觉得结果相当奇怪。同样的结果。无论是一般的循环还是单独的循环,都没有任何区别。在我的样本中,文本每次都会改变,我想知道为什么没有人注意到这一点。我也知道编译器的优化。)) 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在测试和优化参数的阶段,输出到评论和输出到标签可以被禁用,但当在现实生活中使用EA的时候,输出到评论和输出到标签应该被再次启用。
谢谢,帽子 )))))) 我们不知道
在测试和优化参数的阶段,注释中的输出和标签上的输出可以关闭,但当在实际生活中使用EA时,注释中的输出和标签上的输出应该重新打开。
一般来说,这是自动完成的。
然后我们在代码中检查bIsComment,如果评论要被输出或要执行任何图表。因此,不需要手动切换任何东西。
这是自动完成的。
然后,当需要输出Comment或进行任何图形构造 时,我们检查代码上的bIsComment。因此,不需要手动切换任何东西。
哪里说过你必须手动操作?我错过了什么吗?
哪里说过你必须手动操作了?我错过了什么吗?
对这个 帖子作出回应。那里基本上是模棱两可的。但不知何故,它似乎更像是 "禁用 "和 "启用 "是一个配置参数,由用户根据程序的运行方式来改变。刚刚澄清了,不需要这样的参数。
你可以用piskels测量每个字符的宽度(会有几组具有相同的宽度)。编写一个函数,将任何带有空格的字符串追加,直到达到给定宽度。然后从这些子字符串中组合出评论。
如果你做了这样的功能,请在kodobase上发布,很多人都会感激。我也是。我太懒了,懒得麻烦自己。
在这种情况下,符号(x200A)将是有用的--空间的最小宽度,以实现精确配合。并用符号/1--宽空格代替常规空格(毕竟评论的长度是有限的)。也许还有其他有用的空间,但我不知道它们。
谢谢你的主意!
评论的运行速度明显快于图形化字体。
这很符合逻辑,但事实并非如此。
而且很容易检查。
这是一个关于MQL5的脚本(没有在MT4上试过)。
测试结果显示,图形输出的速度约为10%。但有趣的是,即使你将字体大小 设置为30(而不是12),速度仍会更快。这对我个人来说是个谜。
我不做60K/秒的漫画,我只是把它们放出来就可以了。
帆布也可以做卡通。
这是一个关于MQL5的脚本(没有在MT4上试过)。
我在MT4上试过。
在MT4上,事实证明,Comment 比其图形对应的速度快5倍左右。而事实证明,Comment()在MT5上比在MT4上慢了5-6倍。现在,这是一个令人不快的奇怪的惊喜。因此,我的问题是给开发商的。怎么会呢?这显然是5的一个错误!!!。
它是符合逻辑的,但它不是。
而且这很容易检查。
这里有一个用于MQL5的脚本(我没有在MT4上试过)。
测试结果显示,图形输出的速度约为10%。但有趣的是,即使你将字体大小 设置为30(而不是12),速度仍会更快。这对我个人来说是个谜。
这些测量是关于什么的。我们应该为《评论》和《画布》分别运行数万次的循环,然后我们就能判断出一些东西。而要打印的文本应该改变,例如,让计数器的值被打印出来。
你就不能这样重做吗?
这些测量结果算不上什么。我们应该为 "评论 "和 "画布 "分别做几万次的循环,然后我们就可以判断一些东西。而要打印的文本应该改变,例如,让计数器的值被打印。
你能以这种形式重做吗?
我也试着做了单独的循环,觉得结果相当奇怪。同样的结果。无论是一般的循环还是单独的循环,都没有任何区别。在我的样本中,文本每次都会改变,我想知道为什么没有人注意到这一点。我也知道编译器的优化。))