文章 "MetaTrader 5 中进行测试的原理" - 页 2

 
Rosh:
改为 "由技术指标IndicatorCreate() 函数创建的所有指标..."。

非常感谢,解决了这个问题。

 

我读了这篇精彩的文章,发现似乎有一处打错了字。

//+------------------------------------------------------------------+
//| 专家去初始化函数|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   bool hidden=IndicatorRelease(handle_ind);
   if(hided) Print("IndicatorRelease() successfully completed");
   else Print("IndicatorRelease() returned false. Error code ",GetLastError());
  }

我想,你想输入的是 "if(hidden) Print......" 而不是 "if(hided) Print...",这样代码看起来就像下面这样了

//+------------------------------------------------------------------+
//| 专家去初始化函数|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   bool hidden=IndicatorRelease(handle_ind);
   if(hidden) Print("IndicatorRelease() successfully completed");
   else Print("IndicatorRelease() returned false. Error code ",GetLastError());
  }

感谢您的文章。

山姆

[删除]  

为什么在 "测试基础 "一文中只字未提从哪里开始测试?

我说的是测试手动策略,就像在 ForexTester 中一样--至少不设置/运行/修改订单,但有刻度线(至少只是柱状图)和查看指标的功能,并能进行实时制图,还能切换时间框架。

[删除]  

当我使用先前保存的 tester.tpl 模板(2 个指标窗口)开始测试 ExpertMACD 智能 交易系统("内置")时,第一个窗口会将智能 交易系统的 MACD 指标与模板中的指标重叠。是这样设计的吗?

我没有检查过其他智能交易系统。我今天更新了 MT 版本。

 
VladMih:

为什么在 "测试基础 "一文中只字未提从哪里开始测试?

我说的是像 ForexTester 这样的手动策略测试--至少不设置/运行/修改订单,但有刻度线(至少只有柱状图)和查看指标的功能,并能进行实时制图,还能切换时间框架。

因为我们说的是测试自动交易系统。

在模板中使用指标的解决方案只是暂时的,不久指标将在可视化过程中自动显示。

[删除]  
Renat:

因为我们说的是测试自动交易系统。

在模板中使用指标的解决方案只是暂时的,很快指标就会在可视化过程中自动显示。

1.我明白,但文章标题中没有,所以我才问。

在哪里可以读到 "关于手动系统测试的讨论"?哪里都没有?很抱歉,这就像 "不是程序员就不是交易员"(如果不说 "不是人 "的话)。这是 "党的政策 "吗?是这样的,还是为凡人计划的?比如,对于初学者...

2.你不明白 - 它们会自动显示,但 EA 指示器会叠加在测试人员模板的指示器上。

不过,如果是临时叠加,当然没什么好讨论的。

 

Моделирование времени в тестере

测试期间,本地时间TimeLocal() 始终等于服务器时间 TimeTradeServer ( )。反过来,服务器时间也总是等于格林尼治标准时间 -TimeGMT()。因此,在测试过程中,所有这些函数都会产生相同的时间。

同时,在有关 MQ 模拟账户的论坛上,"MQ 服务器时间" == "欧洲平均时间" == GMT+1。

在我的笔记本电脑(674 版本)上离线运行脚本,显示 TimeTradeServer() == TimeGMT()。 得出 "MQ 服务器时间"== TimeGMT()而不是 GMT+1 的结论是否正确?

 

事物起起伏伏,不断变化。也许曾经是这样

В то же время, на форуме в отношении демо-счетов MQ утверждалось, что "серверное время MQ" == "среднеевропейское время" == GMT+1.

而现在是这样的

TimeTradeServer()== TimeGMT()

 

感谢您的澄清!因此,对于模拟账户,"服务器时间 MQ" ==TimeGMT()

 

Расчет индикаторов при тестировании

在实时模式下,指标值在每个刻度点上计算。测试器采用经济的指标计算模式--仅在启动智能交易系统执行前立即重新计算指标。这意味着指标值的重新计算是在调用 OnTick ()、OnTrade() 和 OnTimer()函数之前 进行的。

无论特定事件处理程序中是否有指标调用,其句柄由iCustom()IndicatorCreate () 函数创建的所有指标都将在调用 事件处理程序函数之前 重新计算。

因此,在 "All ticks "模式下进行测试时,每次调用 OnTick() 之前 都会对指标进行计算。如果使用EventSetTimer() 函数在智能交易系统中启用了计时器,则会在每次调用 OnTimer() 处理程序之前重新计算指标。

文章说,在调用三个函数(事件处理程序)之前,会重新计算指标值。我的 "智能交易系统 "中没有这些函数--它只与自定义事件一起工作。在测试器中,一切似乎都或多或少经过了计算。

出现了以下问题:挂在其他符号上的指标在什么时候重新计算?是否每次发送 NewTick事件时都会计算 ,即使 Expert Advisor 没有 OnTick() 函数?如果是这样,那么指标会随着另一个符号的跳动频率重新计算吗?