新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1087

 
Sysmart:

关于测试的问题(见测试员提供的图片)

- 我们打开一个卖出订单(图片中的绿色箭头),它的获利是1.10439。

- 我们添加一个挂起的 卖出止损单(图中黄色箭头),价格为1.10441。

问题是,为什么获利订单没有在1.10439触发,而卖出止损(红色箭头)却在1.10441触发?

当你在1.3000买入时,你在糟糕的价格1.3003(例如)昂贵地买入,当你平仓时,你设置TP在1.2020卖出,你的交易将以Bid在1.2017,Ask在1.2020的价格关闭,也就是说,你为管理你的位置支付2倍的差价,而差价进入办公室的口袋。另外,你可以在流动性更强的账户中进行交易,如NDB(5位数)。

 
novichok2018:
你好!我的问题不是关于支部的主题,但我不知道在哪里问,这样我可以得到一个真正称职的答案。谷歌并没有提供帮助。问题是:今天DAX30指数突然不是在上午9点开始交易,而是在凌晨2点15分。在任何地方,包括法兰克福证券交易所的网站上,我都没有找到任何解释或警告。也许有人更了解情况,可以给我一个提示,在哪里可以找到这些信息?

好吧,既然没有人意识到这个问题,那么请告知如何将EA的开始与某个符号的交易开始绑定。现在我有一个简单的与时间的绑定:if(Hour()==9) {CODE}。因此,当我把开始时间从9:00改为2:15时,开仓 条件就停止工作了。而且,如果我简单地改变时间,也不能保证交易开始时间会再次改变,而我不会注意到这一点。

 
novichok2018:

好吧,既然没有人意识到这个问题,那么请告知如何将EA的开始与某个符号的交易开始绑定。现在我有一个简单的与时间的绑定:if(Hour()==9) {CODE}。因此,当我把开始时间从9:00改为2:15时,开仓 条件就停止工作了。而如果我们简单地改变时间,也不能保证交易开始时间会再次改变,我也不会注意到。

搜索kodobase。

这里是第一个https://www.mql5.com/ru/code/27315

 
Sysmart:

关于测试的问题(见测试员提供的图片)

- 我们打开一个卖出订单(图片中的绿色箭头),它的获利是1.10439。

- 我们添加一个挂起的 卖出止损单(图中黄色箭头),价格为1.10441。

问题是,为什么获利订单没有在1.10439触发,而卖出止损(红色箭头)却在1.10441触发?

请记住,卖单是以买入价开仓,以卖出价平仓,买单则反之。这就是全部。

 
Igor Makanu:

搜索代码库

这里是第一个https://www.mql5.com/ru/code/27315

当然,谢谢你,但这个例子是偏离主题的。我们需要一个链接,链接到某一特定工具的交易开始时间 或交易该工具的交易所的开始时间。我在kodobase中找不到它。

 

你好,我在写代码时遇到了这个问题。

如果你排除了一行,该代码就能工作。

#property strict

有了同样的情况,它立即停止工作。

下面是检测到错误的代码片段本身。

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

下面是结果。

'whichBars' - 未声明的标识符;片段的第7行

whichBars'--未声明的标识符;片段的第8行


如何才能解决这个问题?

 
pykachilo:

你好,我在写代码时遇到了这个问题。

如果你排除了一行,该代码就能工作。

有了同样的情况,它立即停止工作。

以下是检测到错误的代码片段本身。

下面是结果。

'whichBars' - 未声明的标识符;片段的第7行

whichBars'--未声明的标识符;片段的第8行


如何才能解决这个问题?

whichBars应该定义在函数的开头,而不是在条件中。
 

下午好。

这里有一个问题:在 "图形事件类型"(https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)下的文档中
对于事件CHARTEVENT_KEYDOWN,定义参数sparam为 "描述键盘按钮状态的比特掩码的字符串值"。

然而,我找不到关于哪些位负责什么的信息。

对于CHARTEVENT_MOUSE_MOVE事件,sparam参数是一个 "描述鼠标按键状态的比特掩码的字符串值"。
在同一页上有详细描述...

我在哪里可以看到关于CHARTEVENT_KEYDOWN事件的sparam="描述键盘按钮状态的bitmask字符串值 "的文档?

谢谢你。

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

我在哪里可以看到CHARTEVENT_KEYDOWN事件的sparam="描述键盘按钮状态的字符串值bitmask "的文档?

你可以通过Print(sparam)对所需的按钮进行打印。

我不知道你的任务,但我自己更喜欢使用lparam,这样我就不用考虑语言、标题和其他变化。

 
Igor Zakharov:

你可以通过Print(sparam)对所需的按钮进行打印。

我不知道你的任务,但我自己更喜欢使用lparam,这样我就不用考虑语言、标题和其他变化。

这对一般情况来说是一个有趣的解决方案。很明显,对于一个特定的键,你可以通过所有可能的组合(语言、大写字母等)来看看会发生什么,甚至试图从中得出一些结论。
但是,这个问题应该反映在文件中。 对于鼠标事件,它是--一切都可以在文档中找到。键盘呢?