新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1274 1...126712681269127012711272127312741275127612771278127912801281...1953 新评论 Maxim Kuznetsov 2020.10.14 11:30 #12731 alex_xss:1)我个人同意,如果由我来决定,我会简单地关闭它,并禁止它被包含在代码中。但你不能)2) 谢谢,但我还没有找到任何解决方案(到处都是通过OBJ_VLINE对象 来解决,这不适合我),我正在挖掘自己的方法 你可以在一些人喜欢的Canvas上做一个网格。把画布作为图表的背景(或前面),在上面作画,并遵循几何/价格/时间关系。 这是一个痛苦的过程,但只要有一定的品味和时间,它就可以是美丽的。 [删除] 2020.10.14 16:53 #12732 Maxim Kuznetsov:你可以在一些Canvas的最爱上制作一个网格。将画布布置成图表的背景(或前面),在上面画图,并遵循几何/价格/时间关系。它是痛苦的,但如果有一些品味和时间,它可能是美丽的。 你能在kanvas上写一个简单的例子吗? 拜托了 我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线 Maxim Kuznetsov 2020.10.14 17:24 #12733 alex_xss:你能在kanvas上写一个简单的例子吗? 拜托了我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线。 应该给@Nikolai Semko 打电话,他对Kanvas更在行。当他在路上时--看看他的资料,画布上有很多东西 Nikolai Semko 2020.10.14 18:42 #12734 alex_xss:你能在kanvas上写一个简单的例子吗? 拜托了我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线 有趣的是。这样的故障只在MT4中出现,而且只在垂直线 上出现。 唯一神秘的是它为什么会干扰。在我的生活中,我不会注意到它。 你能否更详细地制定问题,以了解解决这个问题的最佳方法。图形对象与画布的互动有细微差别。 顺便说一下,解决这个问题的可能方法之一是更换经理。)) 如果他/她认为变色是一种拐杖,那么坎布就越是会成为他/她的拐杖。 虽然我承认你的经理是一个虚构的人物或一个寓言故事。)) Nikolai Semko 2020.10.14 21:50 #12735 alex_xss:你能在kanvas上写一个简单的例子吗? 拜托了我对它一无所知,我只想得到一个像图表一样大小的长方形,并在上面画一条垂直线。 在性能方面不是最佳的(重新绘制的频率比它应该发生的要高--只是懒得让代码复杂化),但它可以工作。 你可以为屏幕的大小(而不是窗口的大小,例如1920x1080)实现一个画布,并且完全不重绘。它只需占用8兆字节的内存。 顺便说一下,改变网格的颜色不会有帮助。 #include <Canvas\iCanvas.mqh> //https://www.mql5.com/en/code/23840 int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_CHART_CHANGE) DrawGrid(); } //+------------------------------------------------------------------+ void DrawGrid() { Canvas.Erase(0); if (ChartGetInteger(0,CHART_SHOW_GRID)) { Canvas.SetBack(false); ChartSetInteger(0,CHART_FOREGROUND,0,true); uint clr = ColorToARGB((color)ChartGetInteger(0,CHART_COLOR_GRID),255); for (int y=0;y<W.Height;y++) if (y%6<2 || y%6>4) { for (int x=32;x<W.Width;x+=32) Canvas.m_pixels[y*W.Width+x]=clr; } } Canvas.Update(); } 附加的文件: iCanvas.mqh 48 kb GridVerticalCanvas.mq4 3 kb Aleksey Vyazmikin 2020.10.15 00:49 #12736 有没有人有一个按字母顺序排列数组(字符串)的函数? Vitaly Muzichenko 2020.10.15 08:21 #12737 Aleksey Vyazmikin: 也许有人有一个按字母顺序排列数组(字符串)的函数? 我有一个这样的东西,曾经的军刀写道 //=============================================================================================== //--------------------------------- Сортирует строковой массив ---------------------------------+ //=============================================================================================== void ArraySortStr(string &Str[]) { string Min; int jMin, Size = ArraySize(Str); for(int i=0; i<Size-1;i++) { Min = Str[i]; jMin = i; for(int j=i+1; j<Size; j++) if(Str[j] < Min) { Min = Str[j]; jMin = j; } if(jMin > i) { Str[jMin] = Str[i]; Str[i] = Min; } } } Aleksey Vyazmikin 2020.10.15 09:17 #12738 Vitaly Muzichenko:我有一个这样的东西,曾经是一把军刀写的 谢谢你。 [删除] 2020.10.15 10:06 #12739 Maxim Kuznetsov:我们应该给垂直线 上。 这是一个谜,为什么它阻止我使用它。我永远不会注意到它。 你能否更详细地制定问题,以了解解决这个问题的最佳方法。图形对象与画布的互动有细微差别。 顺便说一下,解决这个问题的可能方法之一是更换经理。)) 如果他/她认为变色是一种拐杖,那么坎瓦就越是会成为他/她的拐杖。 虽然我承认你的经理是一个虚构的人物或寓言。)) 是的,一个很酷的噱头,我已经花了将近一个星期的时间)我的屁股着火了) 那么,为什么会成为一个障碍呢。有一个指标是用三角形来画的。这一切都变的很好,颜色也被挑出来了,现在你注意到了这样一个错误。 该指标不供个人使用,带着这个错误发布是无稽之谈。我必须改变整个绘图,这相当复杂,因为我是一个初学者,或者修复这个错误。 改变颜色网格并没有帮助,正如你所注意到的,我自己也是这样过来的)最初,一些颜色组合似乎有帮助 改变网格颜色(如果它有帮助的话)是一个不可接受的拐杖,因为用户可能对它有影响,万一他们想改变颜色。 为用户屏蔽这个功能的选项也不合适,我想这是很清楚的原因)))。 任务:如果网格被启用,要让用户看到屏幕上始终 有相同的颜色。考虑到MT4的垂直网格+填充对象的错误。我 不知道还有什么可以补充的) 基本上你上面写的varic是没有问题的。我可以擦亮它。你是一个金子般的人!!!。根本没有什么话可以表达我的感激之情。我给你五块钱作为你的帮助。 只有几个小问题: 我在弱小的PC上会得到多少滞后?我知道这是一个抽象的问题,但我很乐意听到你的意见。"它只会吃掉8MB的内存"--我猜你说的不是内存?))如果是这样的话,8MB根本就不像 iCanvas是必须的,普通的就不行了?这只是另一个用户说 "这个文件在这里,这个文件在那里"。他们太笨了,不知道该把它放在哪里)。 ulpromo73 2020.10.15 18:44 #12740 日安请指教 - 回答问题在Metatrader中有一个Bulls.mq4指标。为什么需要一个额外的缓冲区,为什么不能直接使用一个中间变量dd = iMA(NULL,0,InpBullsPeriod,0,MODE_EMA,PRICE_CLOSE,i);ExtBullsBuffer[i]=dd;问题是ExtBullsBuffer[i]只是用来存储iMA函数结果的计算值,在下一行这个值被分配给指标缓冲 元素。ExtBullsBuffer在其他地方没有使用。为什么这里需要这个中间缓冲区ExtBullsBuffer,而不只是一个变量,因为它在图中用绿色标出*** 1...126712681269127012711272127312741275127612771278127912801281...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1)我个人同意,如果由我来决定,我会简单地关闭它,并禁止它被包含在代码中。但你不能)
2) 谢谢,但我还没有找到任何解决方案(到处都是通过OBJ_VLINE对象 来解决,这不适合我),我正在挖掘自己的方法
你可以在一些人喜欢的Canvas上做一个网格。把画布作为图表的背景(或前面),在上面作画,并遵循几何/价格/时间关系。
这是一个痛苦的过程,但只要有一定的品味和时间,它就可以是美丽的。
你可以在一些Canvas的最爱上制作一个网格。将画布布置成图表的背景(或前面),在上面画图,并遵循几何/价格/时间关系。
它是痛苦的,但如果有一些品味和时间,它可能是美丽的。
你能在kanvas上写一个简单的例子吗? 拜托了
我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线
你能在kanvas上写一个简单的例子吗? 拜托了
我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线。
应该给@Nikolai Semko 打电话,他对Kanvas更在行。当他在路上时--看看他的资料,画布上有很多东西
你能在kanvas上写一个简单的例子吗? 拜托了
我对它一无所知,我只需要一个像图表一样大小的矩形,并在上面画一条垂直线
有趣的是。这样的故障只在MT4中出现,而且只在垂直线 上出现。
唯一神秘的是它为什么会干扰。在我的生活中,我不会注意到它。
你能否更详细地制定问题,以了解解决这个问题的最佳方法。图形对象与画布的互动有细微差别。
顺便说一下,解决这个问题的可能方法之一是更换经理。))
如果他/她认为变色是一种拐杖,那么坎布就越是会成为他/她的拐杖。
虽然我承认你的经理是一个虚构的人物或一个寓言故事。))
alex_xss:
你能在kanvas上写一个简单的例子吗? 拜托了
我对它一无所知,我只想得到一个像图表一样大小的长方形,并在上面画一条垂直线。
在性能方面不是最佳的(重新绘制的频率比它应该发生的要高--只是懒得让代码复杂化),但它可以工作。
你可以为屏幕的大小(而不是窗口的大小,例如1920x1080)实现一个画布,并且完全不重绘。它只需占用8兆字节的内存。
顺便说一下,改变网格的颜色不会有帮助。
也许有人有一个按字母顺序排列数组(字符串)的函数?
我有一个这样的东西,曾经的军刀写道
我有一个这样的东西,曾经是一把军刀写的
谢谢你。
我们应该给垂直线 上。
这是一个谜,为什么它阻止我使用它。我永远不会注意到它。
你能否更详细地制定问题,以了解解决这个问题的最佳方法。图形对象与画布的互动有细微差别。
顺便说一下,解决这个问题的可能方法之一是更换经理。))
如果他/她认为变色是一种拐杖,那么坎瓦就越是会成为他/她的拐杖。
虽然我承认你的经理是一个虚构的人物或寓言。))
是的,一个很酷的噱头,我已经花了将近一个星期的时间)我的屁股着火了)
那么,为什么会成为一个障碍呢。有一个指标是用三角形来画的。这一切都变的很好,颜色也被挑出来了,现在你注意到了这样一个错误。
该指标不供个人使用,带着这个错误发布是无稽之谈。我必须改变整个绘图,这相当复杂,因为我是一个初学者,或者修复这个错误。
改变颜色网格并没有帮助,正如你所注意到的,我自己也是这样过来的)最初,一些颜色组合似乎有帮助
改变网格颜色(如果它有帮助的话)是一个不可接受的拐杖,因为用户可能对它有影响,万一他们想改变颜色。
为用户屏蔽这个功能的选项也不合适,我想这是很清楚的原因)))。
任务:如果网格被启用,要让用户看到屏幕上始终 有相同的颜色。考虑到MT4的垂直网格+填充对象的错误。我 不知道还有什么可以补充的)
基本上你上面写的varic是没有问题的。我可以擦亮它。你是一个金子般的人!!!。根本没有什么话可以表达我的感激之情。我给你五块钱作为你的帮助。![]()
只有几个小问题:
我在弱小的PC上会得到多少滞后?我知道这是一个抽象的问题,但我很乐意听到你的意见。
"它只会吃掉8MB的内存"--我猜你说的不是内存?))如果是这样的话,8MB根本就不像
iCanvas是必须的,普通的就不行了?这只是另一个用户说 "这个文件在这里,这个文件在那里"。他们太笨了,不知道该把它放在哪里)。
请指教 - 回答问题
在Metatrader中有一个Bulls.mq4指标。
为什么需要一个额外的缓冲区,为什么不能直接使用一个中间变量
dd = iMA(NULL,0,InpBullsPeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtBullsBuffer[i]=dd;
问题是ExtBullsBuffer[i]只是用来存储iMA函数结果的计算值,在下一行这个值被分配给指标缓冲 元素。ExtBullsBuffer在其他地方没有使用。为什么这里需要这个中间缓冲区ExtBullsBuffer,而不只是一个变量,因为它在图中用绿色标出
***