服务。他们已经启动并运行了吗? - 页 22

 
当终端中没有开放的图表时,该服务会打印什么?
#property service

void OnStart()
{
  Print(ChartID());
}
 
在服务领域,获得终端处理是很困难的。
// Получение хендла Терминала в Сервисе.

#property service

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

void OnStart()
{
  printf("%X", MTTESTER::GetTerminalHandle());
}
 
服务的主要问题不是终端处理,而是所有的边缘用例。
一个更重要的领域--建立后台交易支持系统(执行自己的REs计算、整个投资组合的风险指标等)需要像OnTradeTransaction 等事件--现在根本没有这种针对账户的事件;忘记添加这些事件是很奇怪和不愉快的。
在服务功能中添加这些事件应该是MT5对象开发的首要任务,因为MT5的基本桌面功能实际上是前台功能,根本没有后台,了解交易策略的交易者必须用手做后台
 
Sergey Lebedev:
服务的主要问题不是终端处理,而是所有的边缘应用案例。
一个更重要的领域--建立后台交易支持系统(做自己的GO的计算,整个投资组合的风险指标等)需要像OnTradeTransaction 等事件--现在根本没有这种针对账户的事件;很奇怪,也很令人沮丧的是,它们被忘记添加。
在服务功能中加入这些事件应该是开发这种MT5对象的首要任务,因为基本的MT5桌面功能基本上是前台的,根本没有后台,了解交易策略的交易者必须手工完成后台

我不明白。

 
fxsaber:

我什么都不明白。

服务需要额外的事件功能,或者最好是一个用于自定义事件的功能。
而且这些事件不应该是终端的常量,这样用户就可以为这个函数定义自定义事件。

 
Roman:

服务需要额外的事件功能,最好有一个用于自定义事件的功能。

最好的办法可能是先写出服务的使用方案。例如,什么是"建立后台贸易支持系统"。

 
fxsaber:

最好的办法可能是先写出服务的使用方案。例如,什么是'建立后台贸易支持系统'。

我首先想到的是最近的一件事。
例如,请看,在相邻的交易所分支机构,他们不明白为什么余额会随着一个不起眼的条目而变化。
因为MT服务器端不计算美元工具的清算重新计算的净结果。
通过这项服务,可以计算出净结果,并保持你的累积资金和CS的余额,同时考虑到清算的重新计算。
这是后台,即那些应该由经纪人或终端功能完成的行动,但由于这样或那样的原因,没有完成。

 
Roman:

我想到的第一件事是,在我的脑海中出现了一个新的想法。
看,例如在邻近的股票分行,他们不明白为什么余额会随着不明确的输入而变化。
因为MT服务器端不计算美元工具的清算重新计算的净结果。
通过这项服务,可以计算出净结果,并保持你的累积资金和CS的余额,同时考虑到清算的重新计算。
这是后台,即那些应该由经纪人或终端功能完成的行动,但由于这样或那样的原因,没有完成。

目前还不清楚这看起来像什么。假设这个想法得以实施。用户启动了它。接下来会发生什么?

 
Sergey Lebedev:
服务的主要问题不是终端处理,而是所有的边缘用例。
一个更重要的领域--建立后台交易支持系统(做自己的GO的计算,整个投资组合的风险指标等)需要像OnTradeTransaction 等事件--现在根本没有这种针对账户的事件;很奇怪,也很令人沮丧的是,它们被忘记添加。
在服务功能中加入这些事件应该是开发这种MT5对象的首要任务,因为基本的MT5桌面功能基本上是前台的,根本没有后台,了解交易策略的交易者必须手工完成后台
有了这种程度的理解,你可以通过资源将所有事件从EA转移到服务。而现在,也是通过数据库。
 
fxsaber:

目前还不清楚这看起来像什么。假设这个想法得以实施。用户启动了它。接下来会发生什么?

然后,你保持你自己的净余额和CS统计的开放位置。包括所有每天重新计算的清算工作。
例如,将这些统计数据写入Sqlite数据库,然后用它来显示或进行其他计算。
在mt5中对股票市场进行清算重新计算的问题是我首先想到的。
但你可以从交易所网站,或通过专门的渠道收集任何可用的数据,并保持你自己的统计和计算,以便进行算法交易。
服务中的自定义事件对于从外部接收这类信息而不阻塞主服务周期是很方便的。

下面是一张图片,以了解它在终端的样子。(取自一个交易所的分支机构)
该终端不计算清算重新计算的净结果,累计收入和未平仓合约的CS。

b