错误、漏洞、问题 - 页 2339

 
pavlick_:

编译失败,出现错误。
'a' -太复杂了,简化宏 temp.mq5 24 10
's' - 结构成员未定义 temp.mq5 24 10
...

也就是说,预处理器似乎在试图递归展开a.m

回到背光灯的话题上

#define a       s.a

如果 ...a没有被突出显示--那么编译器就不认为它是一个宏。同时,这也是一个错误。事实证明,高亮本身......和实际编译本身,而它们应该像下面的例子那样同步工作。

#define b       b.x

void OnStart()
{
        int b = 1;
#define b   b + 2
        Print( b ); //Error: 'b' - too complex, simplify the macro
}
这本身就是错误的(因为在C++中,它的编译没有错误,结果是:3),但至少它是同步的(照明器和编译器都由相同的逻辑指导)。
 
fxsaber:

它在真实数据上对我也不起作用。

我创建了一个测试的EA。

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input int BreakTick = 5;
int OnInit()
  {
   count = 0;
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
static int count = 0;
void OnTick()
  {
   if(count++>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
   
  }
//+------------------------------------------------------------------+

如果在MetaEditor中按下 "在真实数据上开始剖析 "按钮,DebugBreak()不起作用,但如果按 "在真实数据上开始/继续调试F5 "则起作用。

在测试器中完全不起作用--不能停止程序的执行,不能退出调试器和日志。

2018.12.05 14:46:19.413 tst EURUSD,H1: count = 6 , Ask = 1.13397

2018.12.05 14:46:18.740 tst EURUSD,H1: count = 5 , Ask = 1.13396

2018.12.05 14:46:09.004 tst EURUSD,H1: count = 4 , Ask = 1.13396

2018.12.05 14:46:03.079 tst EURUSD,H1: count = 3 , Ask = 1.13395

2018.12.05 14:46:02.830 tst EURUSD,H1: count = 2 , Ask = 1.13395

2018.12.05 14:46:02.595 tst EURUSD,H1: count = 1 , Ask = 1.13394

2018.12.05 14:45:53.889 tst EURUSD,H1: 已初始化

2018.12.05 14:45:53.869 tst EURUSD,H1 输入: BreakTick=5;

2018.12.05 14:45:52.131 expert tst EURUSD,H1: 载入成功

2018.12.05 14:45:45.899 Expert tst EURUSD,H1: 删除

2018.12.05 14:45:45.814 tst EURUSD,H1: uninit reason 1

2018.12.05 14:45:44.510 tst EURUSD,H1: count = 14 , Ask = 1.13393

2018.12.05 14:45:44.177 tst EURUSD,H1: count = 13 , Ask = 1.13392

2018.12.05 14:45:42.966 tst EURUSD,H1: count = 12 , Ask = 1.13393

2018.12.05 14:45:42.152 tst EURUSD,H1: count = 11 , Ask = 1.13393

2018.12.05 14:45:41.996 tst EURUSD,H1: count = 10 , Ask = 1.13392

2018.12.05 14:45:39.544 tst EURUSD,H1: count = 9 , Ask = 1.13393

2018.12.05 14:45:39.345 tst EURUSD,H1: count = 8 , Ask = 1.13392

2018.12.05 14:45:35.605 tst EURUSD,H1: count = 7 , Ask = 1.13394

2018.12.05 14:45:32.049 tst EURUSD,H1: count = 6 , Ask = 1.13394

2018.12.05 14:45:29.085 tst EURUSD,H1: count = 5 , Ask = 1.13393

2018.12.05 14:45:27.735 tst EURUSD,H1: count = 4 , Ask = 1.13393

2018.12.05 14:45:27.580 tst EURUSD,H1: count = 3 , Ask = 1.13393

2018.12.05 14:45:26.212 tst EURUSD,H1: count = 2 , Ask = 1.13393

2018.12.05 14:45:25.853 tst EURUSD,H1: count = 1 , Ask = 1.13392

2018.12.05 14:45:25.684 tst EURUSD,H1: 已初始化

2018.12.05 14:45:25.664 tst EURUSD,H1 输入: BreakTick=5;

2018.12.05 14:45:24.163 expert tst EURUSD,H1: 载入成功

首先,通过 "在真实数据上运行剖析 "从元编辑器中运行--我用手删除了专家,然后才进入编辑器,然后在F5上运行--这里一切正常,但令人困惑的是,Print("count = ",count," , Ask = ",Ask); 这在断点 后被执行
 
Igor Makanu:

创建了一个测试的EA。

如果在MetaEditor中按下 "在真实数据上开始剖析 "按钮,DebugBreak()不起作用,但如果按 "在真实数据上开始/继续调试F5 "则起作用。

在测试器中完全不起作用--不能停止程序的执行,不能退出调试器和日志。

首先,通过 "在真实数据上运行分析 "从元编辑器中运行--用手删除了EA,然后才进入编辑器,然后在F5上运行--在这里一切正常。

谢谢你,它确实有效。一些令人恐惧的东西经常开始发布错误的声明......

 
fxsaber:

谢谢你,它真的很有效。发布错误的声明是很常见的事情......。

我的祖父总是说:只有什么都不做的人,才是没有错的。

;)

我的例子应该是这样工作的,或者说,它应该在5点后停止。

void OnTick()
  {
   if(++count>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
  }

记载。

2018.12.05 15:27:06.815 tst EURUSD,H1: count = 5 , Ask = 1.13563

2018.12.05 15:27:06.488 tst EURUSD,H1: count = 4 , Ask = 1.13563

2018.12.05 15:27:05.469 tst EURUSD,H1: count = 3 , Ask = 1.13563

2018.12.05 15:27:04.795 tst EURUSD,H1: count = 2 , Ask = 1.13563

2018.12.05 15:27:04.288 tst EURUSD,H1: count = 1 , Ask = 1.13563

2018.12.05 15:27:03.057 tst EURUSD,H1: 已初始化

2018.12.05 15:27:03.024 tst EURUSD,H1 输入: BreakTick=5;

2018.12.05 15:27:01.376 expert tst EURUSD,H1: 载入成功

 

我需要测试虚拟交易环境的同步器是否能与真实的交易环境正常工作。

要做到这一点,我需要在 "展示台 "中运行一个测试EA,并开始手工干预它--放置头寸、删除挂单,等等。


很明显,MT5由于有几个限制,绝对不适合这样做(只能按按钮,指标不能交易)。

我要求为MT4提供一个指标(不是专家顾问或不难改成指标的EA),可以放在visualizer窗口中,用来 "捣乱",用手向Tester发送交易指令


如果你有这样的EX4-指标,请以私人信息的形式发给我。市场上有很多这样的人,但他们都是顾问。

SZY寻找如此,指标找不到,却找到了一本圣经。我会想办法的,谢谢你。

 
fxsaber:

我需要测试虚拟交易环境的同步器是否能与真实的交易环境正常工作。

要做到这一点,我需要在 "展示台 "中运行一个测试EA,并开始手工干预它--放置头寸、删除挂单,等等。


很明显,MT5由于一些限制,绝对不适合这样做(只能按按钮,指标不能交易)。

我要求为MT4提供一个指标(不是专家顾问或不难改成指标的EA),可以放在visualizer窗口中,用来 "捣乱",用手向Tester发送交易指令


如果你有这样的EX4-指标,请以私人信息的形式发给我。市场上有很多这样的人,但他们都是顾问。

深夜搜索 指标找不到,却发现了一本圣经。我会去查的,谢谢你。

禁止在指标中使用交易功能。就是说,他们不能进行交易。

 
Andrey Barinov:

指标不允许使用交易功能。也就是说,他们不能交易。

即使是在MT4中?

 
fxsaber:

即使是在MT4中?

不幸的是,在任何指标中调用交易函数 都是被禁止的。
你有没有试过我的图书馆,你有什么发现?

 
Vladislav Andruschenko:
不幸的是,在任何指标中,都不允许调用交易函数
你有没有试过我的图书馆,你有什么发现?

我还没有研究过这个问题。带有库的变体应该可以工作--我将在我要搞的专家顾问中编写库,以便有一个面板用于手动交易。


是否可以在MT4展示台的测试专家顾问上附加(运行)一个无限的交易脚本?

 
fxsaber:

我还没有研究过这个问题。库选项应该是可行的--我将在我要搞的EA中写一个库,以便有一个面板用于手动交易。

好的。偶尔,我也会把圣经更新到最新版本。