关于改进MetaEditor的建议 - 页 6

 
Lizar:
试试吧。在测试器中工作。但在文章中规定的调整下。

而在测试者中,通过事件来发送什么?

A) 测试器中的图表未被打开

B)事件指标没有收到

专家顾问会向自己发送事件,那有什么意义呢?

 

Обработка событий в тестере

专家顾问中的OnTick()处理程序的存在对于在MetaTrader 5终端的策略测试器中测试历史数据是没有必要的。 专家顾问至少有一个上面列出的处理函数就足够了。

  • OnTick() - 新刻度线到达事件的处理程序;
  • OnTrade() - 交易事件的处理程序;
  • OnTimer() - 定时器信号到达的事件处理程序;
  • OnChartEvent()- 自定义事件的处理程序。

在专家顾问中测试时,自定义事件可以由OnChartEvent() 处理,但在指标中,这个函数在测试器中不被调用。即使该指标有OnChartEvent() 处理程序,并且该 指标被用于测试中的专家顾问,该指标本身也不会收到任何自定义事件。

测试期间的指标可以使用EventChartCustom() 函数生成自定义事件,而专家顾问可以在OnChartEvent() 中处理这些事件。

1.目前,在我的记忆中,测试器中的专家顾问并不处理使用EventChartCustom()函数发送的事件。

2.该文章包含了一个指示,即该功能在测试器中的指标中不会工作,但帮助文件中没有。你如何理解它?

3.好吧,当一些东西在演示/真实中工作而在测试器中不工作时,这是不对的。无论你想对我做什么,它仍然是错误的。

如果我在指标中做OnChartEvent(),让它在所有地方都工作,否则保留它就没有意义了......

PS

给开发者的问题--它在测试器中根本不起作用,或者只是用OnChartEvent() 发送的内容

 
Urain:

而在测试者中,通过事件来发送什么?

A) 测试器中的图表未被打开

B)指标不接收事件

专家顾问将向自己发送事件,这有什么意义?

有道理,比如我,我自己也成功地发送过,而且不止一次(直到测试人员破坏了事件接收)。

而当测试人员开始理解和处理图表时,接收事件也就顺理成章了......

 

这个问题并不清楚。你说的 "它在测试器中根本不工作,或者只处理OnChartEvent() 发送的内容 "是什么意思?

在测试器中没有任何机制可以将ChartEvent传递给指标向被测试的专家顾问 传递事件的周期正是测试器的主要部分。

 
Interesting:

有一点,我,例如,成功地发送自己,而且不止一个(直到事件接收在测试仪中被破坏)。

所以测试者曾经有活动接收,但后来被破坏了?
 
Interesting:

这是有道理的,比如我,成功地发送了我自己,而且不止一个(直到测试者破坏了事件接收)。

而当测试人员开始理解和处理图形时,接收事件将是合乎逻辑的。

在一个程序中,有许多传输信息的可能性,但事件的意义在于不同程序之间的信息传输。
 
Lizar:

自从文章 中正式宣布以来,已经过了几个星期。

官方算是在 "构建更新 "中宣布,而不是在文章中。"更新 "中是否有什么内容?
 
Urain:
在一个项目中,有很多机会转移信息,活动的重点是在不同项目之间转移信息。

问题的关键不是如何转移,而是在测试器中工作的东西(事实上它应该是)在大约6个月前停止了工作。

stringo

在测试器中没有任何机制可以将ChartEvent传递给指标向被测试的专家顾问 传递事件的周期是测试器的主要部分。

那么,在测试器中曾经有事件接收,然后它被破坏了?

我指的是Expert Advisors的测试器中 EventChartCustom()->OnChartEvent() 的问题。也许我不明白什么,但在冠军赛之前,它工作得很好,但现在不行。

同时,我想每个人都已经知道并理解了这一点,但 "火车头 "仍然没有移动(尽管这正是 "主要部分")。

一个简单的例子。

1 .我们通过每300秒(5分钟)启动一个定时器来初始化专家顾问。

//Function OnInit
int OnInit()
//Function for initialization of the trade system
{
//----------------------------------------------------------------------------//
int Result = 0; //Returned importance
//----------------------------------------------------------------------------//

EventSetTimer(300);

//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

2.在定时器中,我们规定发送代码为1001的事件。

//Event OnTimer
void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables
int customEventID; // номер пользовательского события для отправки
//----------------------------------------------------------------------------//
customEventID=CHARTEVENT_CUSTOM+1;

EventChartCustom(0,(ushort)(customEventID-CHARTEVENT_CUSTOM),0,0,"OnTimer - EventChartCustom");
//----------------------------------------------------------------------------//
}
3.在专家顾问中捕捉这一事件
//Event OnChartEvent
void OnChartEvent(const int id,
                  const long& lparam,
                  const double& dparam,
                  const string& sparam
                  )
{
//----------------------------------------------------------------------------//
//Work variables
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
//                          Processing user events                            //
//----------------------------------------------------------------------------//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received
  {
  Print("New event, ID ",id," - ",sparam);
  }
//----------------------------------------------------------------------------//  
}


其结果是,Demo获得了事件,但策略测试器却没有。

而这也是贸易体系的一种基本要素,即使在 "核战争 "的情况下也应该发挥作用。

1.带有1分钟计时器的演示


2. 一个带有1小时计时器的测试器


我还应该补充一点,测试是从2011年4月1日至2011年4月7日在时间框架1H进行的。

那他们在哪里?

PS

也许有人认为,如果一个信息没有从专家顾问那里得到,它就会从iinduke那里得到?


 
Yedelkin:
官方算是在 "更新构建 "中宣布,而不是在文章中。"更新 "中是否有什么内容?

是的,没有什么,因为虫子出现了,所以它的重量。

而关于在文章中,所以不应该在文章中说明,甚至不应该在新建筑的描述中说明,虽然也有。

事实上,这样的事情应该在语言手册中规定。 告诉我哪里有关于它的哪怕一个字(我个人找不到)...

 
stringo:
那么,在测试器中曾经有事件接收,然后它被破坏了?

这就是我应该做的,好好准备国家考试。我现在做的是在论坛上寻找我的帖子。:)

1.虫子,虫子,问题。

虫子,虫子,问题。

想找到关于这个问题的第一个帖子,但没有找到,虽然我记得在冠军赛期间已经不工作了。

让我们假设2010年9月5日的帖子是关于该主题的第一个帖子。 结论 - 已经过了8个月...:(

PS

这里有更多关于这个问题的信息。

我的例子来自2010年9月6日

甚至阿列克谢还承诺会思考问题的解决方案