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

 
Artyom Trishkin:

我在上面展示了该怎么做。既然有开发商推荐的方法,为什么还要搞这么多麻烦?

这是不是一个选择在哪些时间段显示对象,哪些不显示的问题?

比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。

我手动建立的一切都将应用于交易面板。所有对象都在同一时间框架内。

而在这种情况下,"开发者推荐的方法 "有什么帮助?

 
Aliaksei Karalkou:
你好。

我想把ATP指标转移到价格图上。但我不知道该怎么做。我希望它能显示出从同一时期的中线开始的最大波动幅度。如果有人有代码,谢谢你的分享。

https://www.mql5.com/ru/code/23304

Multi_ATR_Bands
Multi_ATR_Bands
  • www.mql5.com
Индикатор Three ATR Bands with multiple selection
 
Artyom Trishkin:

属性 OBJPROP_TIMEFRAMES。

OBJ_NO_PERIODS - 在所有时期都不可见。

OBJ_ALL_PERIODS - 在所有时期都可见

谢谢你。

这个方法果然有效,而且非常紧凑。

该对象现在在视觉上保持在所有其他对象之上。

 
Maksym Mudrakov:

这是不是一个选择在哪些时间段显示对象,哪些不显示的问题?

比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。

我手动建立的一切都将应用于交易面板。所有对象都在同一时间框架内。

在这种情况下,"开发人员推荐的方法 "有什么用?

我注意到了你的建议,但我在删除和重新绘制一个物体时出现了闪烁。

Artyom Trishkin 建议的方法实际上是有效的。

现在,对象没有重绘和闪烁,它在视觉上保持在所有之上。

顺便说一下,在我的案例中,也是一个交易面板被箭头挡住了,没有打开和关闭的交易。

我是如何解决这个问题的。

// Глобальное объявление
int last_tick_objects = 0;                // количество объектов на прошлом тике
// имена графических объектов:
string tp_rctngl = "TP Rectangle";
string sl_rctngl = "SL Rectangle";
string vol_rctngl = "Volume Rectangle";

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   long cid = ChartID();
   if(ObjectsTotal() != last_tick_objects)  // количество объектов поменялось
     {
      last_tick_objects = ObjectsTotal();   // запоминаем новое количество объектов
      // выводим на передний план объекты: tp_rctngl, sl_rctngl, vol_rctngl
      if(ObjectFind(cid, tp_rctngl) > -1) // объект существует
        {
         ObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);  // делаем невидимым на всех таймах
         ObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
        }
      //---
      if(ObjectFind(cid, sl_rctngl) > -1) // объект существует
        {
         ObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);  // делаем невидимым на всех таймах
         ObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
        }
      //---
      if(ObjectFind(cid, vol_rctngl) > -1) // объект существует
        {
         ObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймах
         ObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);// делаем видимым на всех таймах
        }
      ChartRedraw(cid);// перерисовка графика для применения изменений
     }
  }
//+------------------------------------------------------------------+
 

我正在编写一个EA,它不时地需要执行几个长周期的不同重新计算(例如每12、24、48小时)。 每一次这样的重新计算在一个核心上需要1.5-2个小时(即在一个线程中)--当然这也就停止了对新点数的处理和该EA的交易。

...这种计算可以委托给另一个线程中的另一个EA,最终的数据可以通过EventChartCustom函数 和OnChartEvent事件处理程序在EA之间传输。


但我需要能够在市场上发布EA--所以在同一个线程中委托重新计算和重新计算是不合适的。在MQL5中,是否有类似于C++的线程库或其他版本的线程库来实现这样一个特定的EA?(我在搜索引擎的网站上输入了带有 "文档 "过滤器的 "线程 "一词,但没有任何结果)。

 
Oleg Remizov:

我注意到了你的建议,但我在删除和重绘一个物体时出现了闪烁。

Artyom Trishkin 建议的方法实际上是有效的。

现在,对象没有重绘和闪烁,它在视觉上保持在所有之上。

顺便说一下,在我的案例中,也是一个交易面板被箭头挡住了,没有打开和关闭的交易。

我是如何解决这个问题的。

关键是,闪烁是由于删除和渲染非常频繁地发生,你只需要抓住新对象的出现。如果这个方法可行,我当然也会采纳,但由于文档中没有提到这样一个有用的属性,所以我从来没有注意过它。

尽管问题仍然存在,如果你将自己的交易面板与同样构建对象的第三方指标结合使用。

 
Maksym Mudrakov:

问题是要选择在哪些时间段显示对象,在哪些时间段不显示?

比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。

我手动建立的一切都将应用于交易面板。所有对象都在同一时间段内。

而在这种情况下,"开发者推荐的方法 "有什么帮助?

关于交易、自动交易系统和策略测试的论坛

新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论

Oleg Remizov, 2020.04.26 14:44

谢谢你。

该方法确实被证明是有效的,而且非常紧凑。

现在,该物体在视觉上比其他所有物体都高。


 
Maksym Mudrakov:

关键是,闪烁是由于删除和渲染经常发生,你只需要抓住新对象的出现。如果这个方法可行,那么我当然也会采用,但由于文档中没有提到这样一个有用的属性,所以我从来没有注意过它。

尽管问题仍然存在,如果你将自己的交易面板与同样构建对象的第三方指标结合使用。

斯拉瓦推荐的方法是唯一可以接受的方法。你可以搜索他的帖子--就在他的个人资料中--出版物/所有帖子。

而且,是的,在同样的情况下,你重新创建所有对象的方法有什么帮助?

 
Artyom Trishkin:

斯拉瓦推荐的方法是唯一最适合的方法。你可以搜索他的帖子--就在他的个人资料中--出版物/所有帖子。

而且,是的,在同样的情况下,你重新创建所有对象的方法会有什么帮助?

我会这样做,用第三方指标你需要跟踪ObjectsTotal(),如果我的面板对象的最大索引小于ObjectsTotal()-1,那么就重新创建面板。需要先在各种情况下尝试你的方法,但到目前为止,我没有看到使用对象可见性有 什么更多的自由。
 
Artyom Trishkin:

我不能建立Meta Trader 5