对MT5的祝愿 - 页 31

 

请考虑


建议在MQL5中增加允许从指标或专家或从脚本中改变的功能

窗户里的最大的铁栏杆...

使一个程序可控的极限可能是有用的



 
对开发者而言。请注意我的18097 号请求(我知道这件事是有争议的,但仍然)...


PS

另外,如果可以的话--请让优化结果 和优化图被删除,以防在正常模式下进行测试。

或者说,能够在任何时候观看,是这样的一种技巧吗?

 
Interesting:


PS

另外,如果可以的话--请让优化结果和优化图被删除,以防在正常模式下进行测试。

还是说,这只是一个能在任何时候看到它的诀窍?

我反对这样的建议。优化后,为了分析结果,我需要在正常模式下分别检查多个通道(通过点击相应的通道实现)。如果优化结果 在正常模式下的第一次测试后就消失了,那么就会失去一个宝贵的机会来处理结果。

 
Yedelkin:

我反对这个建议。在优化之后,我需要在正常模式下单独测试许多通道,以分析结果(通过点击相应的通道实现)。如果优化结果在正常模式下的第一次测试后就消失了,那么就会失去一个宝贵的机会来处理结果。

好吧,我不坚持,这句话是这么说的-->或者说,能够随时抬头看,就是这样的诀窍吗?

 

1)你需要添加正常的事件,而不是你所实现的那样。

我脑子里蹦出的第一件事

OnBar,OnBarClose,OnQuote,OnDomChanged...

打开位置时,关闭位置时...

连接时,断开连接时...

请求状态的变化,等等。

2)制作类似人类的文档,比如这里:http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "把API带给大众" -)

ps 看来,开发者要么是为新手制作软件,要么就是自己是

System.Data Namespace ()
System.Data Namespace ()
  • msdn.microsoft.com
The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
 
anubis:

1)你需要添加正常的事件,而不是你所实现的。

我脑子里蹦出的第一件事

OnBar,OnBarClose,OnQuote,OnDomChanged...

打开位置时,关闭位置时...

连接时,断开连接时...

请求状态的变化,等等。

2)制作类似人类的文档,比如这里:http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "把API带给大众" -)

ps 似乎开发者不是为新手做软件,就是自己像个新手。

有这样一种东西,即用户事件。你可以自己实施其中的任何数量。

我通过计时器捕捉OnConnected和OnDisconnected事件已经有很长一段时间了。如果你愿意,你也可以创建OnBar和OnBarClose或任何其他事件。

然后你就可以在OnChartEvent 中借助这样的块来轻松地捕捉它们(这些在帮助中都有,为什么要重新发明轮子呢)。

  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  }

PS

而在班级层面,你可以处理任何(嗯,几乎任何)事件......

 
Interesting:

有这样一种东西,即用户事件。你可以自己实施其中的任何一项。

我一直在用计时器捕捉OnConnected和OnDisconnected,已经有很长一段时间了。如果你愿意,你也可以创建OnBar和OnBarClose或任何其他事件。

之后,只需在OnChartEvent 中借助这个块来捕捉它们(帮助中都有,为什么要重新发明轮子?)

PS

而在班级层面,你可以处理任何(嗯,几乎任何)事件......

有意思的是,看你如何实现它(OnConnected?)

 

dentraf:

有意思的是,看你如何实现这个(OnConnected?)

是的,请 :)

下面是一个在专家顾问中用CMqlManagerConnect类处理这些事件的例子(帖子中附有模块)。

1.将模块复制到MQL5\Include\ 文件夹中(最好是在一个子目录下)。

我这里都有 - MQL5\Include\Units\Objects。

2.在 "专家顾问 "中添加一个链接到这个文件。

////////////////////////////////////////////////////////////////////////////////
//              Object classes, used in working the trade system              //
////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect

3.创建一个CMqlManagerConnect 类型的变量。

////////////////////////////////////////////////////////////////////////////////
//             Global variables, used in working the trade system             //
////////////////////////////////////////////////////////////////////////////////
//****************************************************************************//
//               Objects created on the grounds of the classes                //
//****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта

4.在定时器中,它是这样的

void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//
//****************************************************************************//
//                  Контроль состояния соединения с сервером                  // 
//****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}

5 你应该在OnChartEvent 中写下以下文字

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                  )
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//

//****************************************************************************//
//                          Processing user events                            //
//****************************************************************************//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  //Выводим текстовое сообщение о событии в комментарий
  Comment("User Event ",sparam);

    if(id==CHARTEVENT_CUSTOM+1)
    //Соединеие с сервером востановлено
    {
    //тут обрабатываем все что нам нужно
    }

    if(id==CHARTEVENT_CUSTOM+2)
    //Соединеие с сервером потеряно
    {
    //тут обрабатываем все что нам нужно
    }

  }
//----------------------------------------------------------------------------//  
}

PS

当然,你可以不把事件传递给OnChartEvent,而是直接在类中处理它们(无论是在基类还是在子类)。但即使采用这种方法,我也建议留下对OnChartEvent的引用,因为你可能需要告诉其他图表有关的事件...:)

附加的文件:
 
Interesting:

是的,请 :)

下面是一个例子,说明如何使用CMqlManagerConnect类在专家顾问中处理这些事件(该模块附在帖子后面)。

1.将模块复制到MQL5\Include\ 文件夹中(最好是在一个子目录下)。

我这里都有 - MQL5\Include\Units\Objects。

2.在 "专家顾问 "中添加一个链接到这个文件。

3.创建一个CMqlManagerConnect 类型的变量。

4.在定时器中,它是这样的

5 你应该在OnChartEvent中写下以下文字

PS

当然,你可以不把事件传递给OnChartEvent,而是直接在类中处理它们(无论是在基类还是子类)。但即使采用这种方法,我也建议留下对OnChartEvent的引用,因为你可能需要告诉其他图表有关的事件...:)

你是自己写的CMqlManagerConnect类吗? 当你失去与服务器的连接时,你有解决方案来检索服务器吗?
 
dentraf:
你是自己写的CMqlManagerConnect类吗? 当你失去与服务器的连接时,你有办法解决服务器的枚举问题吗?
当然是我自己写的(例如),但我有不同的方式来解决这个问题。没有蛮力的解决方案(至少现在是这样),但我们也需要解决这个问题(人们已经就这个问题联系了开发人员)...