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

 
Askr:
MT5如何下载报价档案?在MT4中,例如F2,然后你按下刷新,但在这里?

你不需要下载任何东西到MetaTrader 5。你可以使用你所连接的交易服务器的报价。如果你愿意,你可以使用CopyRates,如果你愿意,你可以使用CopyTicks

 
Askr:
MT5如何下载报价档案?在MT4中,例如F2,然后你按更新,但在这里呢?

你不能直接这样做。除非你创建一个 可以导入历史记录的自定义符号。自定义符号只能用于与历史的工作。它不允许你通过它进行交易。

 
Ihor Herasko:

如果当时EA并不活跃呢?毕竟,我们希望从账户历史中获得数据。但不幸的是,这不能以一种毫不含糊的方式进行。这只能在有很多保留的情况下进行。

很奇怪,为什么开发人员没有在MT5中 实现OrderCloseTime()显然,这是有严肃原因的)。

 
lil_lil:

很奇怪,为什么开发人员没有在MT5中 设置OrderCloseTime()显然,这是有严肃原因的)。

因为在MT5和Mql5方面,订单有不同的含义。为了找到一个头寸的平仓时间,我们需要选择这个头寸的订单和交易,在其中找到一个带有修改器DEAL_ENTRY_OUT的 交易,这个交易的时间将等于头寸的平仓 时间。

 

下午好,请指教,我无法对以下条件进行构建:指标启动后,蜡烛中出现合适的价格参数,画出图形指示,但假设,如果在蜡烛收盘前还很远,指标可以在这个地方检测到另一个蜡烛组合。问题是如何在每秒监测的过程中编写代码,以便在这个蜡烛的条件停止工作时删除之前的结果?

这里是一个适当的渲染例子,但如果我在这里运行测试器,它将给我一个不正确的蜡烛图读数。你如何解决这个问题?

还有一个问题--如何根据下面的设计理念制作一个警报。

任务--给定:TF 1小时。

条件是--只运行指标的搜索部分,比如说,在当前蜡烛的55分钟和最多60分钟之后,然后重新开始循环。

如何实现这一结构?

 
clickaider:

下午好,请指教,我无法对以下情况进行构建:指标启动后,蜡烛中出现合适的价格参数,画出图形指示,但比方说,如果离蜡烛收盘还很远,指标可以在这个地方检测到另一个蜡烛组合。问题是如何在每秒监测的过程中编写代码,以便在这个蜡烛的条件停止工作时删除之前的结果?

这里是一个适当的渲染例子,但如果我在这里运行测试器,它将给我一个不正确的蜡烛图读数。我怎样才能解决这个问题?

1.测试器过去和现在都工作正常,没有错误。

2.你对测试过程的理解有误:当指标或分页历史的第一次运行发生时(记住,其标志是prev_calculated==0),你在一个循环中绕过所有条形。因此,在这个循环中,你使用数组-时间序列

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[])

对于循环中的每一个第i个成员,只有一个值,即开盘、高盘、低盘和收盘。

但是,当所有的柱子都通过后,测试器开始在每个柱子上以tick模式工作--这就是为什么你可以看到High上升和Low下降。

 
Vladimir Karputov:

1.测试器工作了,而且工作正常,没有错误。

2)你对测试过程的理解有一个错误:当指标的第一次运行或历史分页发生时(记住,其标志是prev_calculated==0),你绕过了循环中的所有条形。因此,在这个循环中,你使用数组-时间序列

对于循环中的每一个第i个成员,只有一个值,即开盘、高盘、低盘和收盘。

当所有的条形图都通过后,测试器开始在每个条形图上以tick模式工作--这就是为什么你可以看到High上升和Low下降的情况。

是的,我同意当测试器开始时,由于价格值的填充,结果是不同的,但问题是当在一个蜡烛图中,例如,首先形成一个模式,但在最后出现另一个模式时,如何插入一个条件,但它不能被另一个指标条目取代,因为没有写适当的条件。如何规定?

if(Cmp(shadow_upper_1,shadow_lower_0)<0 && body_size_0 < body_size_1 && shadow_lower_0 >= 0.7*shadow_upper_0 && 8*body_size_0 >= shadow_lower_0 && 7*body_size_0 <= shadow_upper_0 && close_0 >= Upper1_0 && close_0 <= body_Upper_Upper1_mediane75_0 && Upper1_1 >= Upper1_2)
         if(InpEnablePAT_DOJIUP_UPPER1) DrawPattern(index,PATTERN_TYPE_DOJIUP_UPPER1,high,low,time);

这里是形成蜡烛图指示的代码,但如何使其可重新绘制?

 
clickaider:

是的,我同意当你运行测试器时,由于价格值的填充,结果是不同的,但问题是如何在结构中设置一个条件,当在一个蜡烛中,例如,首先形成一个模式,但在最后出现另一个模式,但它不能被另一个指标条目取代,因为没有规定适当的条件。如何规定?

这里是形成蜡烛图指示的代码,但如何使其可重新绘制?

在索引中存储栏位号。绘图前要检查。如果栏上有一个物体,就删除它。对象删除(ObjectDelete)。

 
clickaider:

是的,我同意当你运行测试器时,由于价格值的填充,结果是不同的,但问题是如何在结构中设置一个条件,当在一个蜡烛中,例如,首先形成一个模式,但在最后出现另一个模式,但它不能被另一个指标条目取代,因为没有规定适当的条件。如何规定?

这里是形成蜡烛图指示的代码,但如何使其可重新绘制?

只是为了提供三个州。

  • 绘制图案1
  • 绘制图案2
  • 不画任何东西(例如,对于DRAW_ARROW,将"0"传入指标缓冲区,如果你已经写了

//--- установим пустое значение 
   PlotIndexSetDouble(индекс_построения_DRAW_ARROW,PLOT_EMPTY_VALUE,0);
 
Vladimir Karputov:

只需提供三种状态。

  • 绘制图案1
  • 绘制图案2
  • 不画任何东西(例如,对于DRAW_ARROW,你把"0"传给指标缓冲区,如果你已经写了

我把源代码发给你了,请你看看放在哪里?
附加的文件:
PatternsBB.ex5  81 kb