//+------------------------------------------------------------------+//| OBJ_HLINE change properties on the fly.mq5 |//| Copyright 2021, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//--- input parametersinputstring InpName="HLine"; // Line name//--- an array for storing colors contains 14 elementscolor colors[]=
{
clrRed,clrBlue,clrGreen,clrChocolate,clrMagenta,clrDodgerBlue,clrGoldenrod,
clrIndigo,clrLightBlue,clrAliceBlue,clrMoccasin,clrWhiteSmoke,clrCyan,clrMediumPurple
};
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create timerEventSetTimer(1);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy timerEventKillTimer();
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---
}
//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+voidOnTimer()
{
//--- the number of colorsint size=ArraySize(colors);
//--- get a random valueint number=MathRand();
//--- get an index in the col[] array as a remainder of the integer devisionint i=number%size;
//--- set line colorObjectSetInteger(ChartID(),InpName,OBJPROP_COLOR,colors[i]);
ChartRedraw();
}
//+------------------------------------------------------------------+
Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
再次感谢,现在的线就像一条线,很好看。只有ObjectDelete(0, name);;是需要的,否则一旦画出的线就不会重画。在mql4中也一样,我只是忘了。
我本可以这样做
真是一派胡言。绘制的图形对象平稳地移动。每个对象的帮助中都有例子(对于水平线OBJ_HLINE)。
你也可以改变已经画好的对象的任何属性:颜色、风格、气味......。它是手动完成的,我不争论。但专家顾问是按德马克点来画趋势线的。通过函数ObjectDelete(0, name);,当点发生变化时,旧的趋势线被删除,新的趋势线被绘制。如果没有这个函数,第一次绘制的线条就不再重绘。这不是胡说八道,而是一个事实。
手动的,我不争论。而专家顾问则是通过德马克点绘制趋势线。通过函数ObjectDelete(0, name);,当点发生变化时,旧的趋势线被删除,新的趋势线被绘制。如果没有这个函数,第一次绘制的线条就不再重绘。这不是胡说八道,而是一个事实。
你为什么不读一下帮助?并运行该例子。
我会这样做的。
谢谢,但我要留下我的变体,它是有效的。尽管我会尝试用它来代替ObjectDelete(0, name);。
ChartRedraw();
看在上帝的份上,读读帮助吧!并运行该例子。
我读过参考资料。只有你是愤慨的,而我是在实践中写的。另一件事是使用ChartRedraw() 而不是ObjectDelet(),我没有争论,会检查一下。这是你唯一需要参照例子来指出的事情。
我已经阅读了该简报。只有你在用文字愤愤不平,而我是在实践中写的。另一件事是用ChartRedraw() 代替ObjectDelet(),我没有争论和检查。这是你唯一需要参照例子来指出的事情。
人们通常在这个主题中征求建议,当他们得到建议时,他们会听从。至少要阅读帮助和应用实例。拜托,如果你不想听别人的意见,就不要问什么。
举个例子,你可以即时改变"水平线"图形对象的任何属性--你不需要删除该对象就可以做到这一点,你只需要改变该属性。
代码。
谢谢,但我要留下我的变体,它是有效的。尽管我将尝试用它来代替ObjectDelete(0, name);。
完全错误的决定。删除一个图形对象和刷新一个图表决不是相互替代的。
我的例子首先检查是否有一个对象,特别是有一个名字为tfyu的趋势,在俄罗斯键盘布局中是名字))。然后,如果它不存在,就画出趋势。如果绘图尝试不成功,将显示该信息,并以返回false退出该函数。
之后的一切,无论趋势是已经存在还是刚刚被画出来,都会被分配到指定的参数、时间和坐标价格、类型、厚度和其他任何你可以添加的东西。之后,图表被更新,函数返回true。
就执行速度而言,检查趋势是否存在的成本将低于删除它并绘制新的趋势。
但是......最终的决定权在你手中,如果你喜欢用你的右手小指抓你的左耳,我无权阻止你。
再回过头来画趋势线。如果你需要代码。
非常糟糕的代码。
我想这样做。
如果是我就会这样做。