// Глобальное объявлениеint last_tick_objects = 0; // количество объектов на прошлом тике// имена графических объектов:string tp_rctngl = "TP Rectangle";
string sl_rctngl = "SL Rectangle";
string vol_rctngl = "Volume Rectangle";
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
long cid = ChartID();
if(ObjectsTotal() != last_tick_objects) // количество объектов поменялось
{
last_tick_objects = ObjectsTotal(); // запоминаем новое количество объектов// выводим на передний план объекты: tp_rctngl, sl_rctngl, vol_rctnglif(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);// перерисовка графика для применения изменений
}
}
//+------------------------------------------------------------------+
我在上面展示了该怎么做。既然有开发商推荐的方法,为什么还要搞这么多麻烦?
这是不是一个选择在哪些时间段显示对象,哪些不显示的问题?
比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。
我手动建立的一切都将应用于交易面板。所有对象都在同一时间框架内。
而在这种情况下,"开发者推荐的方法 "有什么帮助?
你好。
我想把ATP指标转移到价格图上。但我不知道该怎么做。我希望它能显示出从同一时期的中线开始的最大波动幅度。如果有人有代码,谢谢你的分享。
https://www.mql5.com/ru/code/23304
属性 OBJPROP_TIMEFRAMES。
OBJ_NO_PERIODS - 在所有时期都不可见。
OBJ_ALL_PERIODS - 在所有时期都可见
谢谢你。
这个方法果然有效,而且非常紧凑。
该对象现在在视觉上保持在所有其他对象之上。
这是不是一个选择在哪些时间段显示对象,哪些不显示的问题?
比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。
我手动建立的一切都将应用于交易面板。所有对象都在同一时间框架内。
在这种情况下,"开发人员推荐的方法 "有什么用?
我注意到了你的建议,但我在删除和重新绘制一个物体时出现了闪烁。
Artyom Trishkin 建议的方法实际上是有效的。
现在,对象没有重绘和闪烁,它在视觉上保持在所有之上。
顺便说一下,在我的案例中,也是一个交易面板被箭头挡住了,没有打开和关闭的交易。
我是如何解决这个问题的。
我正在编写一个EA,它不时地需要执行几个长周期的不同重新计算(例如每12、24、48小时)。 每一次这样的重新计算在一个核心上需要1.5-2个小时(即在一个线程中)--当然这也就停止了对新点数的处理和该EA的交易。
...这种计算可以委托给另一个线程中的另一个EA,最终的数据可以通过EventChartCustom函数 和OnChartEvent事件处理程序在EA之间传输。
但我需要能够在市场上发布EA--所以在同一个线程中委托重新计算和重新计算是不合适的。在MQL5中,是否有类似于C++的线程库或其他版本的线程库来实现这样一个特定的EA?(我在搜索引擎的网站上输入了带有 "文档 "过滤器的 "线程 "一词,但没有任何结果)。
我注意到了你的建议,但我在删除和重绘一个物体时出现了闪烁。
Artyom Trishkin 建议的方法实际上是有效的。
现在,对象没有重绘和闪烁,它在视觉上保持在所有之上。
顺便说一下,在我的案例中,也是一个交易面板被箭头挡住了,没有打开和关闭的交易。
我是如何解决这个问题的。
关键是,闪烁是由于删除和渲染非常频繁地发生,你只需要抓住新对象的出现。如果这个方法可行,我当然也会采纳,但由于文档中没有提到这样一个有用的属性,所以我从来没有注意过它。
尽管问题仍然存在,如果你将自己的交易面板与同样构建对象的第三方指标结合使用。
问题是要选择在哪些时间段显示对象,在哪些时间段不显示?
比方说,图表上有一个交易面板。然后我手动建立对象(交易水平、垂直线、矩形)。
我手动建立的一切都将应用于交易面板。所有对象都在同一时间段内。
而在这种情况下,"开发者推荐的方法 "有什么帮助?
关于交易、自动交易系统和策略测试的论坛
新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论
Oleg Remizov, 2020.04.26 14:44
谢谢你。
该方法确实被证明是有效的,而且非常紧凑。
现在,该物体在视觉上比其他所有物体都高。
关键是,闪烁是由于删除和渲染经常发生,你只需要抓住新对象的出现。如果这个方法可行,那么我当然也会采用,但由于文档中没有提到这样一个有用的属性,所以我从来没有注意过它。
尽管问题仍然存在,如果你将自己的交易面板与同样构建对象的第三方指标结合使用。
斯拉瓦推荐的方法是唯一可以接受的方法。你可以搜索他的帖子--就在他的个人资料中--出版物/所有帖子。
而且,是的,在同样的情况下,你重新创建所有对象的方法有什么帮助?
斯拉瓦推荐的方法是唯一最适合的方法。你可以搜索他的帖子--就在他的个人资料中--出版物/所有帖子。
而且,是的,在同样的情况下,你重新创建所有对象的方法会有什么帮助?