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

 
Sergey Golubev:

很多年前,在英语部分的主题中,有一个EA(很抱歉,现在要花很长时间才能找到它),当交易(和分析市场)时,产生和更新一个文本文件,在一定的时间间隔内被另一个在同一Metatrader中工作的EA读取,但在不同的货币对(或相同的,但在不同的图表)。而且双方都进行了交易,用这个文件互相沟通。

我这样做是为了让黄牛主站与其他终端上的黄牛从站通信。但它只传输来自交易商的控制命令,所以不需要在所有终端上手动点击相同的按钮。但没有什么能阻止传输数据。

你可以通过内存映射进行沟通,然后告别市场

 

我经常使用自定义字符。几乎总是需要杀死一个自定义的,但必须手动进行。我决定将其自动化。

而事实证明,这正是服务业的剧本。也许这不完全是服务的标准方法,但我想要一个不与图表挂钩的脚本。这就是原因

// Удаляет символ активного графика из Обзора рынка (кастомный - удаляет полностью).

#property service

// Находит чарт в фокусе.
long GetFocusChart()
{
  long Chart = ChartFirst();

  for (; Chart != -1; Chart = ChartNext(Chart))
    if (ChartGetInteger(Chart, CHART_BRING_TO_TOP))
      break;

   return(Chart);
}
   
// Удаляет чарты символа.
int DeleteCharts( const string Symb )
{
  int Res = 0;
  
  for (long Chart = ChartFirst(); Chart != -1; Chart = ChartNext(Chart))
    if (ChartSymbol(Chart) == Symb)
      Res += ChartClose(Chart);
  
  return(Res);
}

// Удаляет символ из Обзора рынка (кастомный - удаляет полностью).
bool DeleteSymbol( const string Symb )
{
  DeleteCharts(Symb);

  return(SymbolSelect(Symb, false) && (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM) || CustomSymbolDelete(Symb)));
}

void OnStart()
{
  const long Chart = GetFocusChart();
  
  if (Chart != -1)
    DeleteSymbol(ChartSymbol(Chart));
}

正在考虑在该脚本/服务上设置一个热键,当我看到一个不需要的符号图时,通过它钉住一个符号。将是非常方便的。然而,遇到了困难。

  • 不可能将一个热键钉在服务上。
  • 为了重新启动该服务,你必须在这之前删除它。这应该是在首次启动终端时启动服务的必要条件。但我的情况不同。
  • SymbolSelect不起作用 - 它不能删除符号。错误,很明显。
结果是,这是一个无奈之举。是否有可能以某种方式解决服务业的实际问题?


ZZY 有一个变通的办法来删除活动的图表符号。

 
fxsaber:

我经常使用自定义字符。几乎总是需要杀死一个自定义的,但必须手动进行。我决定将其自动化。

而事实证明,这正是服务业的剧本。也许这不完全是服务的标准方法,但我想要一个不与图表挂钩的脚本。这就是原因

正在考虑在该脚本/服务上设置一个热键,当我看到一个不需要的符号的图表时,通过它钉住一个符号。将是非常方便的。然而,遇到了困难。

  • 不可能将一个热键钉在服务上。
  • 为了重新启动该服务,你必须在这之前删除它。这应该是在首次启动终端时启动服务的必要条件。但我的情况不同。
  • SymbolSelect不起作用 - 它不能删除符号。错误,很明显。
结果是,这是一个无奈之举。是否有可能以某种方式解决服务业的实际问题?


ZZY 有一个从活动图表中删除一个符号的变通方法。

你不能把热键放在服务上,因为OnChartEvent()函数 在那里不起作用;但我猜你知道。因此,专家顾问应该使用热键工作,并通过资源将命令传递给服务。尝试用资源来管理服务。

当然,在这种情况下,我们将失去服务的意义。毕竟,你可以通过按热键关闭专家顾问的图表...

SZY.这样做的唯一原因不是为了在专家顾问系统中创建额外的功能。我们可以将各种EA的一般功能倾注到服务中,并通过资源来调用。给我们一个命令,让我们做什么。

 
Реter Konow:

不能把热键放在服务上,因为OnChartEvent() 在那里不起作用


 
fxsaber:


谢谢你。那么问题出在哪里?

你想让服务本身(不停地运行)对按键作出反应。

 
Реter Konow:

谢谢你。那么问题出在哪里?

你想让服务本身(不停地运行)对按键作出反应

不,你希望该服务能够在脚本模式下工作而不被约束在图表上。

 
fxsaber:

不,你需要该服务能够在脚本模式下工作而不被约束在图表上。

还有其他方法吗?

 
Реter Konow:

还有其他方法吗?

是的。

 
fxsaber:

是的。

所以他可以运行任何图表?很容易。

 
该服务对数据(报价)进行操作,并可对其进行修正,但它不允许管理任何东西,特别是终端的窗口,而这正是我们所需要的。因此,明显的结论是:如果有必要关闭一个或另一个窗口,该服务就会为这个窗口生成一个明显不可能的报价,当收到这个报价时,附在这个窗口上的脚本就会关闭它。