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

 
Renat Akhtyamov:

好吧,那么指标周期,其中的条数 就是这个非常线。

我想知道--什么是清楚的(?),即在哪里可以读到关于MT5在离线模式下的特殊性,请你告诉我好吗?

rates_total指标--在OnCalculate()循环中成功代替Bars()使用。
 
Artyom Trishkin:
在rate_total指标中,在OnCalculate()的循环中,它成功地代替了Bars()。

好的。是的,有这样一个东西。

因为我有一个多货币指标,不同的工具/时间框架会有相同数量的条形图 吗?

我可以在这里改变参数

Bars(_Symbol,_Period);

但是,对于不同的时间段和符号,rate_total如何计算指标?

 
Renat Akhtyamov:

好的。是的,有这样一个东西。

因为我有一个多货币工具,不同的工具/时间段会有相同数量的条形图 吗?

要获得一个非当前 时间框架或多货币/多时间框架指标 中的非当前 符号的历史条数,我们应该使用Bars()。
 
Artyom Trishkin:
要获得多货币/多时间框架指标 中的非当前 时间框架或非当前 符号的历史条数,你应该使用Bars()。

这正是我所写的--这个功能在离线情况下不工作,尽管有一个引用历史

因此,该指标不能进行离线测试。

事实证明,MT5中的报价是亲自发送给每个IP的,可能与历史上的报价不同,而历史上的报价已经画在图表上?/so goes the logic...

 
Renat Akhtyamov:

然后是指标,其中的条数 就是这根线。

我想知道--什么是清楚的(?),即在哪里可以读到关于MT5在离线模式下的特殊性,能否请您告诉我们?

很明显,MT5。目前还不清楚在调用Bars() 之前做了什么。这个简单的脚本可以工作,即使在没有连接到服务器或根本没有网络的情况下也不会返回零。

我没有在指标中试过,这就是为什么我问在你的情况下是如何做的。最有可能的是,当重新调用将是真实的条数时,第一次调用将导致缓存中的数据更新。

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
 
Vitalie Postolache:

很明显,MT5。我们不清楚在调用Bars() 之前做了什么。这个简单的脚本对我来说很有效,即使在没有连接到服务器或根本没有网络的情况下也不会返回零。

我没有在指标中试过,这就是为什么我问在你的情况下是如何做的。

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
清楚地
 

有什么简单的方法可以链接到蜡烛的收盘价来运行EA?重新计算指标,删除/放置订单,等等?

通过定时器?

但如何在正确的时间启动定时器,使其每小时在HH:00:00被触发?而不是每小时从定时器的激活开始?

 
dimnik:

有什么简单的方法可以链接到蜡烛的收盘价来运行EA?重新计算指标,删除/放置订单,等等?

通过定时器?

但如何在正确的时间启动定时器,使其每小时在HH:00:00被触发?而不是每小时从定时器的激活开始?

检查当前蜡烛的开盘时间,并与上次检查的开盘时间进行比较。如果它们相等,意味着新的条形图还没有打开,并从OnTick()返回。如果不相等--我们已经确定了一个新栏的开放--做一切在专家顾问中写的事情,并记住新的开放时间,以便下次检查。
 
Vitaly Muzichenko:

图形问题。

有一种设计是这样的

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

我怎样才能发现该图表不是主图表,而是以测试者模式打开,并跳过它?

作为一个建议。

为图表创建一个模板,并在标签上写上名称,例如 "TesterChart "或任何其他对象,你可以使用零坐标,这样它就不可见了。将此模板命名为 "测试者"。现在,所有来自测试的图表都将有一个 具有这个名字的对象。接下来问图表是否有这个对象,如果有,就是 "我们的测试者",跳过它。

贯穿始终,但我不知道有什么其他办法。

 
Vasiliy Pushkaryov:
作为一个建议。

为图表创建一个模板,并给它贴上一个名字,如 "TesterChart "或任何其他对象,可能在零坐标处,这样它就不可见了。将此模板命名为 "测试者"。现在,所有来自测试的图表都将有一个 具有这个名字的对象。接下来问图中是否有这个对象,如果有,就是 "我们的测试者",跳过它。

我不知道怎么做,但我不知道有什么其他办法。

谢谢你,但这个方案不适合我在多个模板上测试,但这是一半的麻烦,但事实上,这个指标不仅对我有用,人们只是厌倦了在测试器上填写标签。

事实证明,没有办法以编程方式确定图表在测试器中运行?你们是哪里的开发者?

.