错误、漏洞、问题 - 页 2174

 

自定义符号的利润货币(SYMBOL_CURRENCY_PROFIT)在终端重新启动后被重置。正因为如此,TickValue通常为零,这在策略测试器中产生了零利润的交易。每一次,我们都要把利润货币的价值恢复到一个正常的货币。


回放

void OnStart()
{
  const string Name = "EXAMPL";
  
  if (CustomSymbolCreate(Name))
    CustomSymbolSetString(Name, SYMBOL_CURRENCY_PROFIT, "JPY");

  Print(SymbolInfoString(Name, SYMBOL_CURRENCY_PROFIT)); // "JPY" - до перезагрузки Терминала, "MPL" - после.
}
 
在测试器中的自定义符号上,由于限价订单的正向滑移,你会得到重力。请禁用自定义符号的限价单滑点,或调整滑点(和佣金)。
 

没有禁用Core1-Agent的选项。

没有办法进行单次运行

2018.03.27 09:18:19.647 Core 1  agent process started
2018.03.27 09:18:28.380 Core 1  connecting to 127.0.0.1:3000
2018.03.27 09:18:45.562 Core 1  tester agent authorization error
2018.03.27 09:18:45.564 Core 1  connection closed

重新启动终端没有帮助。


HH 这就是优化是如何发生的,仅仅是两遍(动画)。

代理商上不断出现授权错误,直到出现正常连接。而这仅仅是在两个通道上!

 

严重缺乏可供选择的符号清单。

 
fxsaber:

没有选项可以停用Core1-Agent。


还想禁用第一个核心。
 

除此以外

关于交易、自动交易系统和交易策略测试的论坛

虫子、虫子、问题

Kirill Belousov, 2018.03.26 12:30

名称是不同的,删除时要考虑到这一点。


保存这个。

_______________________________________

当删除子窗口列表中的第一个指标时,子窗口中的对象被完全清除(甚至手动绘制的线条、箭头、文本标签也被删除)。

转载。

1.在构造函数中为一个单独的窗口创建一个空指标(或从标准交付集中提取任何现有的指标,例如MACD,等等)

2.在一个子窗口中增加5个指标/复印件

3.在一个子窗口(或任何对象)中手动绘制一条垂直线。

如果你从指标列表中删除任何不是第一个的指标,该线将保留,但如果第一个指标在列表中,所有子窗口对象将被删除(画出垂直线)。

如果你在删除第一条线后再次画线,那么在删除剩余的第一条线时,它将再次被删除。当不是第一个被删除时,子窗口中的对象不会被删除。


文件中哪里写到了这一点?是什么让它如此特别--子窗口列表中的第一个指标?

看起来有一个完全重新初始化的子窗口。


由MT4/MT5转载。

不同的是,在MT5中,指标文件的名称应该是不同的。在MT4中,你可以把同一个指标文件放在一个子窗口中,而不用改变文件名。


第一个子窗口指标的问题

如果指标在删除时是子窗口指标列表中的第一个,则子窗口中的所有对象都被删除。

当从子窗口的指标列表中删除第一个指标时,所有的子窗口对象在OnDeinit()之前被删除。

void OnDeinit(const int reason)
  {
  int window=ChartWindowFind();
  if(window==2)
  {
  int count=0;
  for(int i=ObjectsTotal()-1;i>=0;i--)
    {
     if(ObjectFind(ObjectName(i))==window) count++;
    }
  Alert("Осталось объектов в подокне #2 - ",count," _StopFlag=",_StopFlag," REASON=",reason);
  }
//....
}

让我们不要删除第一个,而是删除列表中的第一个

所有对象都被删除

所有对象都会被删除,无论它们是指标还是子窗口中手动创建的对象。
 

在MQ-Demo上以 "所有刻度 "模式运行EA

void OnTick()
{
  static int i = 0;
  
  if (i < 2)
  {
    MqlTick Tick;
    
    if (SymbolInfoTick(_Symbol, Tick))
      Print(Tick.time_msc);
      
    i++;
  }
  else
    ExpertRemove();
}


结果

Si-6.18,M1 (MetaQuotes-Demo): every tick generating
Si-6.18,M1: testing of Experts\fxsaber\LimitsSlippage.ex5 from 2018.03.25 00:00 to 2018.03.27 00:00 started
2018.03.26 10:00:00   1522058400378
2018.03.26 10:00:00   1522058400013
2018.03.26 10:00:00   ExpertRemove() function called

第一个生成的刻度线的时间比第二个长 - 错误。

 
优化器进入无限循环,出现以下重复信息(所有三个通道都已启动): 1.
2018.03.27 23:13:54.520 Core 2  TESTER_EURUSD: history for 2017 year synchronized
2018.03.27 23:13:54.578 Core 1  pass 0 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.125
2018.03.27 23:13:54.580 Core 2  pass 1 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.580 Core 3  pass 2 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.600 Core 5  common synchronization completed


ZS回放


附件中的档案 内容复制到沙盒中。

在MQ-Demo上运行脚本

#include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> // https://www.mql5.com/ru/code/20225

void OnStart()
{
  THIRDPARTYTICKS ThirdPartyTicks; // Подключились к локальному архиву котировок

  const string Name = ThirdPartyTicks["EURGBP"].ToCustomSymbol(true); // Создали кастомный символ на основе локального архива  
  
  if (Name != NULL)
  {
    const SYMBOL Symb("TESTER"); // Создали символ
  
    if (Symb.IsExist()) // Если символ создан
    {
      Symb.CloneProperties("Si-6.18");      
      Symb.SetProperty(SYMBOL_DIGITS, 5);
      
      Symb.CloneHistory(Name);
  
      if (Symb.On()) // Включили в Обзор рынка
        ChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа
    }   
  }
}


一个自定义的TESTER符号将被创建。在测试器中选择它。设置:优化速度慢,所有刻度线。

添加此EA

input int Range = 0;

void OnTick() {}


选项标签


开始优化,看到无限循环


附加的文件:
Archive.zip  1729 kb
 

在测试器中,"无钱 "的远程订单被分配为零关闭时间。

当然,这是一个错误。

 

我是唯一一个在这个帖子中的 图片没有在新的弹出窗口中打开的人吗?Mozilla FireFox 59.0.2 (64bit)

就是说,引用中的图片没有打开。