错误、漏洞、问题 - 页 841

 
faton:

下午好。你能告诉我吗,我写了一个简单的指标......当一个新的条形图出现时,指标线 是这样表现的。问题可能是什么?

CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1);
CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
检查CopyRates 所返回的内容。复制的元素数量不一定等于要求的。 因此,数组可以超限,缓冲区这个地方的数据将是空的,这种情况发生了。
 

似乎在更新新版本的终端时,Program Files\Meta Trader 5\MQL5文件夹被完全 复制到C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5(这是Win7,虽然其他操作系统可能有相同的文件夹,也许还有其他)。否则,我无法解释,这一对小时的工作在哪里,几天前已经完成,并成功测试了水果。

问题是,我有一个习惯,就是通过.mqh-file格式化类,然后把它们连接起来。不知不觉中,我把我的mqh和mq5扔进了Program Files\Meta Trader 5\MQL5,看到它们没有出现在Navigator中,于是把它们移到了工作文件夹(C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5)。一切都很好,直到终端被更新--我运行专家顾问进一步测试,然后我想调整其他东西,看到了一个旧代码,是Program Files/Meta Trader 5/MQL5中的副本。正确的版本已经被优化,因为mq5没有改变,终端也没有猜到mqh中已经有了变化。重新编译的结果是回到了旧版本。

结果我非常恼火,要为我已经做的事情花一两个小时。

我认为摆脱这种局面的方法是。

1)复制整个文件夹,但只复制标准包中包含的文件列表。

2)以某种方式警告用户它将被覆盖(尽管,如果你在标准库中 改变了很多文件,这将是一个痛苦的过程)。

3) 以某种方式确定(例如计算crc)Program Files中的mql5文件夹已经改变,在安装新版本之前,发出警告,以便保存数据。

4)在Terminal\00C5B588590D4A2C89EFC1E0C5301ECA中复制一个旧的MQL5(例如,添加MQL5.384版本)--最简单。

这个问题很罕见,但该死的,这是个糟糕的问题。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
notused:

似乎在更新新版本的终端时,有一个FULL 副本的文件夹.................................。

........................... ......................

.............................

一句话--非常生气,将不得不在我已经完成的事情上再花一两个小时。

我可以看到摆脱这种局面的方法 - ................

....................

这是一个罕见的问题,但该死的,这是个糟糕的问题。

对开发者的建设性反馈:请在安装新的版本 时,对前一个版本的整个MQL5文件夹 进行自动备份。 使用期--直到下一个版本,然后替换。 这并不取消在安装版本时对客户端文件的仔细处理。 这是为了在不可抗力的情况下(如上面所述)+保存标准库 的客户端版本。
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

恢复系数- 该指标显示策略的风险性,专家顾问为赚取利润而承担多少风险它被计算为获得的利润与最大跌幅的比率;(它没有说是哪一个)。

状态恢复因子(stat_recovery_factor

恢复的因素 - 比率STAT_PROFIT/STAT_BALANCE_DD



Print("Factor=",TesterStatistics(STAT_RECOVERY_FACTOR));                                    // Выводим Фактор Восстановления
Print("Profit/BalanceDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD)); // Отношение профита к просадке по балансу
Print("Profit/EquityDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_EQUITY_DD));   // Отношение профита к просадке по средствам

我们通过实验确定,回收系数是按权益计算的利润与提款的比率,而不是按余额计算。

参考资料中是否有错误?

 
ilunga:
嗯,对了,就是这样,你已经看到了最后的5万个。当天有1440个柱子。

谢谢你,呃...

这不是问题所在。这不是一个问题,是一种悲哀的叹息......

如果我 选择 6月份 进行测试(30天X1440<50,000),我应该在图表上看到什么原因?8月

顺便说一下,测试器中的定时器有一个令人不快的特性,即在一秒钟后自动关闭 - 另一个...

这不是致命的--反正你可以用手更快地挑选日期,但是......。

 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

int Tick_All;

MqlTick           last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Tick_All=0;

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(!SymbolInfoTick(_Symbol,last_tick))
     {
      Print("Failed to get Symbol info!");
     }

   Tick_All++;
   Print(Tick_All,"   ",last_tick.bid,"   ",last_tick.ask,"  ",last_tick.last," ",last_tick.volume);
  }
//+------------------------------------------------------------------+

我不明白为什么虽然价格没有变化,但OnTick却被触发了?????。

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
EQU:

谢谢你,呃...

这不是问题所在。这不是一个问题,是一种悲哀的叹息......

如果我 选择 6月份 进行测试(30天X1440<50,000),我应该在图表上看到什么原因?8月

写信给服务台。我也不明白为什么图表上的条数_总是从实际情况算起,而不是从测试器中设置的结束日期算起。
 
sion:
体积 - 可以改变,还有更多)

你可以看到,音量并没有改变!!。

 
dentraf:

你可以看到,音量并没有改变!!。

已经看了一下代码。
 

我不明白它是如何工作或不工作的)


Print("<><><><><",request_action.magic);//Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000
RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732   <-поидее числа равны и условие не должно срабатывать

评论打印

Print("<><><><><",request_action.magic);Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><>73200011000
PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- 而这个数字我不知道是怎么来的,显然是在第一次计算时"(ulong)MathMod(request_action.)"。magic-MathMod(request_action.magic,100000000),100000000000)/100000000 "的情况下,出现了一些奇怪的情况。

<条件不成立,打印不出来,所以数字是相等的。

直到凌晨1点左右,这一点都没有问题。

P.S. 我在我的笔记本电脑上试了一下,687的构建仍然存在,同样的派头。

原因: