错误、漏洞、问题 - 页 973

 
voix_kas:

...

我还能说什么呢?一个位图的工作速度(!)比26个普通标签慢一个数量级。我试图从OnTick()操作中排除将图案复制到工作画布(数组uint 250*410),即在一个画布上的操作。只有在实时的情况下才能感受到收益。在测试器中也 是如此,绝对的生产力下降。使用了COLOR_FORMAT_ARGB_NORMALIZE 模式,因为其他模式给人一种不太美观的感觉说到这里,我应该说,在一个画布上工作是很困难的,因为你必须跟踪以前的重叠部分(清晰的区域)。

...

你是否有像OBJ_BITMAP_LABEL 这样的对象在测试器的可视化模式下显示?
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
tol64:

谢谢你,我知道。vdv2001 有某种问题。

//---

想看看他是怎么做的,才发现他有个毛病。


然后是帮助中的另一句话

图表_mouse_scroll

用鼠标左键水平滚动图表。如果三个属性中的任何一个被设置为 "true",垂直滚动也是可用的:CHART_SCALEFIX、CHART_SCALEFIX_11或CHART_SCALE_PT_PER_BAR。

bool

 
啊,我知道这是什么了。))
vdv2001:

是的,对象被选中了,但它不能用鼠标移动(就像在终端4)。

或者现在移动所有由Expert Advisor创建的对象都必须由事件来处理。

在MT5中,我必须将鼠标光标精确地放在一个选定对象 的锚点上。在MT4中,它是自动完成的。我个人更喜欢通过事件来移动对象而不需要选择。上面Rosh 展示了启用/禁用图表滚动的属性,所以它不会干扰移动对象。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 
tol64:
啊,我知道这是什么了。)) 在MT5中,当一个对象被选中 时,我必须将光标准确地放在匹配点上。在MT4中,它是自动的。我个人更喜欢通过事件来移动对象而不需要选择。上面Rosh 展示了启用/禁用图表滚动的属性,所以它不会干扰移动对象。

把图形增加到最大,把鼠标放在所选物体的锚点上,把鼠标左键 "按 "到地板上,施加最大的努力,......。

该物体停留在原地。

要重复这个过程并不困难,创建一个对象CChartObjectTrend,设置它的属性并尝试移动它。我没有成功。

CHART_MOUSE_SCROLL 我试了一下,图表停止了移动,但对象还没有移动。

P.S.

虽然,如果通过事件处理一个物体的运动,它是正确的(我知道旧的坐标)。我将通过活动来做。谢谢你,问题结束。

 
vdv2001:

将图形增加到最大,将鼠标放在所选物体的锚点上,将鼠标左键 "按 "在地上,施加最大的努力,...

该物体停留在原地。

重复这个过程并不难,创建一个CChartObjectTrend对象,设置其属性并尝试移动它。这对我来说并不奏效。

...

这就是它的工作方式,如果有的话。

void OnStart()
  {
   double low[];
   datetime time[];
   string name_object="Trend_Test";
//---
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
//---
   CopyLow(_Symbol,_Period,0,50,low);
   CopyTime(_Symbol,_Period,0,50,time);
//---
   if(ObjectCreate(0,name_object,OBJ_TREND,0,time[0],low[0],time[49],low[49]))
      ObjectSetInteger(0,name_object,OBJPROP_SELECTABLE,true);
  }
 

有没有人设法重复voix_kas 的壮举?

voix_kas:
...
Что могу сказать? Один Bitmap работает (!)на порядок медленнее, чем 26 обычных меток. Пробывал исключить из OnTick() операцию копирования шаблона в рабочую канву (массив uint 250*410), т.е. работа на одной канве. Выигрыш чувствуется только в реал-тайме. В тестере всё также - абсолютная просадка по производительности. Использовался режим COLOR_FORMAT_ARGB_NORMALIZE, т.к. остальные дают менее эстетический вид. Забегая вперед, надо сказать, что работать на одной канве сложно, так как придётся отслеживать наложение предыдущих надписей (очищать области).

...


你的测试器中是否有OBJ_BITMAP_LABEL 类型的对象以可视化模式显示?

//---

或者是打错了?)))

 
对于位图性能的计算,最好是看一下代码。也许有额外的重绘操作。
 
tol64:

这就是它的工作方式,如果有的话。

对了,我想明白了为什么不动,我设置了对象属性OBJPROP_TIMEFRAMES,之后对象就不再动 了。

例如,对于分钟图,我设置的属性是

obj.Timeframes(OBJ_PERIOD_M1);

和物体停止移动,这似乎是一个故障。

切换图表周期后,一切都开始正常工作,比如切换到M2,然后切换到M1,一切都很好。

 

voix_kas:

我还能说什么呢?一个位图的工作速度(!)比26个普通标签慢一个数量级。我试图从OnTick()操作中排除将图案复制到工作画布(数组uint 250*410),即在一个画布上的操作。只有在实时的情况下才能感受到收益。在测试器中也是如此,绝对的生产力下降。使用了COLOR_FORMAT_ARGB_NORMALIZE 模式,因为其他模式给人一种不太美观的感觉展望未来,我应该说,在一块画布上工作是很困难的,因为你必须跟踪以前的铭文(清洁区)的叠加。


1.你如何衡量速度?

2.你能附上来源吗(在私人信息或CD中)?

 
alexvd:


1.你如何测量速度?

2.你能附上源代码吗(在私信或CD中)?

不幸的是,由于缺乏兴趣,我没有保存代码。一般来说

OnInit()。

1.在图表上创建一个位图。

2.创建两个画布(uint 250*410):一个模板和一个工作 画布。在模板上应用了13个带有统计参数名称的标签(TextOut)。

OnTick()。

1.模板被复制到工作画布上

2.13个带有相应统计参数值的标签被应用 到工作画布上(TextOut)

3.创建一个资源

4.工作画布被更新。

我没有特别计时,因为很明显,速度下降了一个数量级。在测试器中,以及在实时中(当滚动图相当明显的冻结/抽搐)。

我试图从OnTick()中删除第1点。在实时情况下,它变得可以容忍,但测试人员几乎没有爬行。同样,这也不能实时进行,因为在工作画布上以前的标记位置没有进行清洁。

同样,我使用了COLOR_FORMAT_ARGB_NORMALIZE 模式,因为标签(TextOut)在没有alpha通道的情况下看起来不美观