错误、漏洞、问题 - 页 362

 
Lizar:
随着对象类型的增加,对这种功能的需求也会增加。而当你创建的对象无法通过其类型来确定锚点的数量时,它将成为必要的。例如,它可以是某种形式的多线。但现在还不是很关键,但它可以作为服务台的一个愿望来执行。

目前,更现实的做法是(如果有这样的需要),创建一个开关函数,按对象类型给出锚点的数量。

只要在开关中制作这个表格(MQL5参考/标准常量、枚举和结构/对象常量/对象类型)。函数的输入参数将是ObjectGetInteger(chart_id,name,OBJPROP_TYPE)。

由于所有的类型都被刚性地绑定在锚点上,所以没有任何隐患。但如果出现了点数可变的对象,那么就迫切需要这样的功能。

 
Urain:

现在,最现实的方法(如果你需要的话)是创建一个开关函数,根据对象类型 给出锚点的数量。


很久以前我就要求在ObjectGet中设置一个属性。

在我看来,这似乎与MT5内部的逻辑本身有关。

它可能只是穿过所有的点,并检查它们是否为空的。而如果一个点里有一个正常的数字,它就会建立起来。

所以对象类型和锚点数量之间没有直接关系。

这就是为什么你正确地指出,你必须自己进行转换。

 
Urain:

现在,最现实的方法(如果你需要的话)是创建一个开关函数,根据对象类型给出锚点的数量。

只要在开关中制作这个表格(MQL5参考/标准常量、枚举和结构/对象常量/对象类型)。函数的输入参数将是ObjectGetInteger(chart_id,name,OBJPROP_TYPE)。

由于所有的类型都被刚性地束缚在锚点上,所以没有任何隐患。但是,如果我们得到的新对象的点数是可变的,我们将真正需要这个功能。

sergeev:

很久以前我就要求在ObjectGet中设置一个属性。

如果有对象的点数是可变的,那么这样的功能将是极其需要的。

它可能只是穿过所有的点,并检查它们是否为空的。而如果一个点里有一个正常的数字,它就会建立起来。

所以对象类型和锚点数量之间没有直接关系。

如果有可变数量的点,那么对这种功能将有极大的需求。

是的,正如我在上面写的那样,我通过开关实现了它。它的工作没有任何问题。但这个想法更进一步,我想要更多的便利和普遍性。

顺便说一下,我认为让用户创建自己的对象是很好的。例如,至少允许将标准对象合并为具有共同 "品牌 "的组。这样,就有可能把一组物体称为一个。然后会有一些棘手的对象,如多线、环、环形......。等等。甚至一些控制面板的对象也可以被合并。而Ctrl-B不会产生一个对象表,而是对象组的整齐名称,或类似的东西。另外,在OnChartEven()处理程序中从被修改的对象中获取100000个事件的问题也将得到解决,因为这100000个对象可以合并成一个组,只接收一个CHARTEVENT_OBJECT_CHANGE 事件。总而言之,这将是一种美。当然,你可以通过类部分地实现所有这些,但不是全部。

 

Lizar:

........ 而Ctrl-B不会给出一张对象,而是整齐的对象组名称,或类似的东西...........。

.......,因为这100000个对象可以合并成一个组,只接收一个CHARTEVENT_OBJECT_CHANGE 事件。总而言之,一个美丽的.......

做梦吧,别抱太大希望。

:)

 

我正在编写一个指标,用于同时显示几个工具的烛台。启动后,在新条形图 出现之前,一切都显示正确。

但在新的酒吧出现后,有了转变。

而ChartRedraw并没有帮助。虽然,如果我按下正确的按钮--刷新,一切就都到位了。你能告诉我如何防止这种转变吗?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
附加的文件:
 

双重 price;MqlTradeRequest 中是否自动规范化?(这不太可能),如果不是,为什么标准库中 仍然没有规范化?(我在9个月前就提出了这个问题)。

我通过简单地在标准库中进行编辑而摆脱了这种情况,但你知道不是这样的(升级时被撕掉了)。

bool CTrade::PositionOpen(const string symbol,ENUM_ORDER_TYPE order_type,double volume,
                          double price,double sl,double tp,const string comment)
{
...
m_request.price       =price; // ??????????
...
}

如果我错了,那么请说明是什么?

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

我们没有自动进行归一化,因为我们不允许改变交易商的价格,以免被指责为任意妄为。

如果你使用的是计算出来的价格,你必须自己将其规范化。当一个订单的买入价/卖出价净值不变时,不需要归一化。

 
Renat:

我们没有自动进行归一化,因为我们不允许改变交易商的价格,以免被指责为任意妄为。

如果你使用的是计算出来的价格,你必须自己将其规范化。当一个订单的买入价/卖出价净值不变时,不需要归一化。

谢谢你,我已经找到了我想要的东西。我不得不在4中对甚至买入/卖出进行规范化。
 
Urain:
谢谢,我找到了我想要的东西。即使是买入/卖出也必须在4中进行规范化。

事实上,在MT4中,你不需要对买入和卖出进行标准化。默认情况下,它们总是被规范化。

如果你手头有一个例子,请给我看看。

 
Renat:

事实上,在MT4中,你不需要对买入和卖出进行标准化。默认情况下,它们总是被规范化。

如果你手头有一个例子,请给我看看。

我手头没有例子,那是很久以前的事了(也许现在的构建是好的),曾经有这样的问题,我在MT4中即使请求Bid和Ask也会得到重新报价,在规范化之后,一切都变好了,所以有一个规则,对任何请求进行规范。但你知道,习惯是第二性的。