初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1131

 
Alexey Viktorov:

Artyom,你没有注意到类型是DRAW_COLOR_HISTOGRAM2,它有两个数据缓冲器和第三个颜色缓冲器。

是的,这是正确的。没有注意到。

 
Artyom Trishkin:

是的,这是正确的。

一般来说,是的。第一个缓冲区用于计算,DRAW_COLOR_HISTOGRAM2使用两个坐标/缓冲区绘制+需要另一个用于颜色。


阿列克谢-维克多罗夫

为什么这一行被注释掉了

不过,它应该包括其他颜色。或者至少是一个,但声明应该是。

我使用的是

#property indicator_color2 GreenC,RedC

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC)。
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC)。

也就是说,这是一件事,我以为它们可以像MQL4那样互换,也就是说,没有颜色设置的预处理器指令被替换成PlotIndexSetInteger()。在MQL5中不是这样的吗?

 
The_Sheikh:

一般来说,是的。第一个缓冲区用于计算,DRAW_COLOR_HISTOGRAM2使用两个坐标/缓冲区绘制+需要另一个用于颜色。


我使用的是

#property indicator_color2 GreenC,RedC

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC)。
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC)。

即是一回事,我以为它们可以像MQL4那样互换,即没有颜色设置的预处理器指令,用PlotIndexSetInteger() 代替。在MQL5中不是这样的吗?

好吧,你给出的是文件的片段。你为什么不彻底研究它们呢?无论PlotIndexSetInteger如何,该指令都会出现在示例中。

 
Alexey Viktorov:

好吧,你给出了文件的摘录。你为什么不彻底研究它呢?无论PlotIndexSetInteger如何,该指令都会出现在示例中。

是的,我研究了文档,指令在例子中是存在的,但很抱歉,我没有看到其中有任何一段说指令必须存在,所以我习惯性地像MQL4一样排除了指令。

文件中还说,最多 可以使用 64种颜色 进行绘图。但我没有找到一种方法来分配这种调色板的数量,而不在指令后单调地列出每种颜色。

尽管如此,这个问题已经解决了。

 
The_Sheikh:

是的,我研究了文档,该指令在例子中是存在的,但很抱歉,我没有注意到有一段说明该指令必须存在,所以出于习惯,我像MQL4一样排除了该指令。

文件中还说,最多 可以使用 64种颜色 进行绘图。但我还没有找到一种方法来设置这种调色板的数量,而不在指令后单调地列出每种颜色。

尽管如此,我已经完成了这个问题。

而这

#define  GreenC 0x00FF00
#define  RedC 0x0000FF

不能在循环中改变?我对它一点也不熟悉,因此不知道。

毕竟,一个颜色数组也可以在循环中从另一个数组中填充。在这个例子中,有一个数组color colors = {};其中列出了颜色。然后用PlotIndexSetInteger(1,PLOT_LINE_COLOR, index_in_array, color)填充该 "服务 "数组。

 

我从不同的地方下载报价,经常看到有1-2条的差距,数据就是不存在。

如何才能以最小的信息损失来填充它们?是否有任何算法?

我确信Metatrader可以做到这一点。

 
Roman Sharanov:

我从不同的地方下载报价,经常看到有1-2条的差距,数据就是不存在。

如何才能以最小的信息损失来填充它们?是否有任何算法?

我确信Metatrader会这样做。

MetaTrader并不填补漏洞--如果有一个条形图,它将被画出来,如果没有条形图,它将被跳过。

 
Vladimir Karputov:

这是测试的考官--它都能正常工作。

和结果。

谢谢你的详细回答。结果发现,只有在历史上测试专家顾问 时才会观察到这个错误,如果我把它连接到真实数据上-- 一切正常。

如果在历史数据的调试下运行你的专家,它的计算是不正确的。

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 成交量0.5,利润->50.00


 
aveshoff:

谢谢你的详细答复。结果发现,只有在历史上测试专家顾问 时,才会观察到这个错误,如果连接到真实数据 则一切正常。

如果在历史数据的调试下运行你的专家,它的计算是不正确的。

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 成交量0.5,利润->50.00


请提供完整的信息:完整的代码、符号、时间框架、有多少仓位以及在哪些符号上开仓--总之要能重现这种情况。

 

下午好!

你能告诉我如何通过身份证找出是哪个专家吗?

ID 11032019,不知道在哪里可以找到它?